Karakeep 快速捕获与分享全指南:移动端、浏览器扩展与源码级机制解析

发布时间:2026/9/10 8:58:27
Karakeep 快速捕获与分享全指南:移动端、浏览器扩展与源码级机制解析 Karakeep 快速捕获与分享全指南移动端、浏览器扩展与源码级机制解析【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarderKarakeep自托管书签收藏应用的核心设计目标是让囤积内容这件事变得足够轻量——无论你在手机、平板还是浏览器里都能以最快的路径把链接、文字、图片或文件存入自己的书签库。本文围绕官方文档 quick-sharing.md 展开系统梳理官方移动应用、浏览器扩展与社区 Safari 扩展三条捕获通道并结合仓库源码apps/mobile与apps/browser-extension深入讲解分享意图处理、自动保存、上下文菜单与快捷键等底层实现帮助你在部署 Karakeep 后立刻搭建起随见随存的高效工作流。为什么 Karakeep 把快速捕获放在第一位官方文档开门见山The whole point of Karakeep is making it easy to hoard the content.Karakeep 的全部意义在于让囤积内容变得简单。这句话直接决定了产品形态——如果保存一个书签需要打开网页、登录后台、填写表单用户的收藏冲动早已消散。因此 Karakeep 的捕获通道被设计为系统级原生入口而非网页表单移动端通过 iOS/Android 的系统**分享面板Share Sheet / Share Intent**接收内容浏览器端通过扩展弹窗、右键上下文菜单、键盘快捷键三种方式一键收藏所有通道最终都调用同一套 tRPC 接口如bookmarks.createBookmark、assets.upload落库保证捕获链路一致、可追踪书签请求中的source字段会标记mobile或extension见 apps/mobile/app/sharing.tsx 与 apps/browser-extension/src/SavePage.tsx。官方移动应用iOS 与 Android官方文档提供了两款移动应用入口iOS 应用可在 App Store 搜索 Karakeep 下载安装Android 应用可在 Google Play 商店搜索 Karakeep应用包名app.hoarder.hoardermobile下载安装。需要说明的是移动应用是自托管实例的客户端而非云端服务安装后你需要在其设置中填入自己部署的 Karakeep 服务地址与 API Key即可将系统分享的内容直接推送到你的服务器。移动端仓库位于 apps/mobile基于 Expo / React Native 构建包配置见 apps/mobile/app.config.js。移动端如何接收系统分享内容移动端随见随存的关键是expo-share-intent插件。在 apps/mobile/app.config.js 中可以找到完整声明iOS 激活规则iosActivationRules声明应用可以接收网页 URL、网页、单张图片、纯文本与文件PDF/图片并通过一条NSExtensionActivationRule谓词限制可分享的 UTI 类型com.adobe.pdf、public.image、public.url、public.plain-text——这也是系统分享面板决定是否向你展示 Karakeep 图标的依据Android 意图过滤器androidIntentFilters声明接收text/*、image/*、application/pdf三类 MIME 类型的分享 Intent。当用户在任意 App 中点击分享并选择 Karakeep 后应用会被唤起并进入专用的分享页面 apps/mobile/app/sharing.tsx。该页面的核心组件SaveBookmark会根据分享内容自动分流见 apps/mobile/app/sharing.tsx分享内容处理逻辑shareIntent.webUrl网页 URL直接创建LINK类型书签source: mobileshareIntent.text文本先用 URL 正则校验是 URL 则存为LINK否则存为TEXT笔记shareIntent.files文件走uploadAsset上传为ASSET资产图片/PDF上传成功后自动创建书签保存完成后页面会给出即时反馈LoadingAnimation/SuccessAnimation/ErrorAnimation保存成功显示Hoarded!若该 URL 已存在则显示Hoarded again!并提供Manage跳转到该书签详情页与Dismiss按钮保存失败显示错误信息保存成功后约 2.5 秒自动关闭并返回 Dashboard若 5 秒仍未完成例如服务器不可达会显示 Still saving... 与 Dismiss 逃生出口见 apps/mobile/app/sharing.tsx。反向场景把 Karakeep 书签分享出去捕获之外移动端同样支持把已收藏内容分享给其他应用实现在 apps/mobile/lib/shareBookmark.ts链接书签直接调用系统Share.share分享 URL文本书签复制到剪贴板并提示 Text copied to clipboard图片/PDF 资产先从你的服务器下载资产/api/assets/{assetId}携带 API Key 与自定义请求头再通过expo-sharing调起系统分享面板分享完成后自动删除临时文件。这一实现同时印证了 api 文档中 attach-asset 与 get-asset 接口 的实际使用场景移动端通过资产 ID 即可取回文件内容。官方浏览器扩展Chrome 与 Firefox官方文档提供的浏览器扩展Chrome 扩展可在 Chrome 网上应用店搜索 Karakeep 安装Firefox 附加组件可在 Mozilla Add-ons 网站搜索 Karakeep 安装。扩展源码位于 apps/browser-extension采用 Manifest V3 架构Firefox 兼容见 apps/browser-extension/manifest.json运行时需要你在扩展设置页OptionsPage配置自托管地址与 API Key。它提供三种捕获姿势1. 点击工具栏图标自动保存当前页面点击扩展图标会打开SavePage弹窗apps/browser-extension/src/SavePage.tsx。弹窗加载后会读取当前活动标签页的 URL 与标题自动构造LINK书签请求若你在设置中开启了autoSave页面会无任何确认直接保存并跳转到保存结果页关闭 autoSave 时则会先展示一个可编辑的确认界面允许修改标题、填写备注后再点击Save Bookmark见 apps/browser-extension/src/SavePage.tsx。2. 右键上下文菜单不离开当前页完成收藏背景脚本 apps/browser-extension/src/background/background.ts 会动态注册以下菜单项仅当配置了地址与 API Key 后才会注册Add to Karakeep出现在link链接、page页面、selection选中文本、image图片四种上下文上。选中的文本会被保存为TEXT书签右键链接/图片时保存srcUrl或linkUrl右键空白处则保存当前页面 URLOpen Karakeep打开配置好的 Karakeep 实例View this page in Karakeep开启显示已收藏角标后出现若当前 URL 已在库中则直接打开该书签详情页否则跳转到url:当前地址的搜索结果页Clear Current Page Cache / Clear All Cache清理角标缓存。上下文菜单的请求不会立即弹出页面而是先写入chrome.storage.session键名定义见 apps/browser-extension/src/background/protocol.ts再打开弹窗由SavePage消费——这样即使弹窗加载较慢请求也不会丢失。3. 键盘快捷键CtrlShiftE 一键入库apps/browser-extension/manifest.json 声明了add-link命令默认快捷键CtrlShiftE可在浏览器扩展快捷键设置中自定义。触发后背景脚本会把当前标签页 URL 加入书签队列并打开弹窗见 apps/browser-extension/src/background/background.ts实现键盘一按、当前页入库。进阶配合 SingleFile 客户端抓取归档扩展还支持可选的客户端归档能力若在设置中开启 SingleFile 且授予了all_urls可选主机权限保存时会先用 SingleFile 抓取当前页完整 HTML含图片上传为归档资产后随书签一并保存见 apps/browser-extension/src/SavePage.tsx抓取失败则自动降级为普通链接书签保证保存永远可用。社区扩展Safari除了官方移动端与浏览器扩展社区还提供了Safari 扩展Karakeeper Bookmarker适用于 macOS 与 iOS同样用于向自托管 Karakeep 实例快速添加书签可在 App Store 搜索 Karakeeper Bookmarker 下载。由于该扩展由社区维护、不在当前仓库中具体安装与授权流程以 App Store 页面说明为准使用前同样需要配置你的自托管实例地址与 API Key。全链路回顾一次分享背后发生了什么综合上述源码一次典型的快速捕获会经历如下链路入口触发移动端经系统分享面板唤起sharing.tsx浏览器端经扩展弹窗、右键菜单或快捷键唤起SavePage类型识别分享内容被识别为LINK/TEXT/ASSET三种书签类型之一类型定义见 packages/shared/types/bookmarks落库请求通过 tRPC 调用bookmarks.createBookmark或先assets.upload再建书签并携带source标记来源即时反馈移动端播放成功/失败动画并自动返回 Dashboard浏览器端跳转到保存结果页并刷新工具栏角标缓存见 apps/browser-extension/src/background/background.ts。这三条通道共享同一套书签模型与 API意味着无论内容从哪个入口进来都能统一获得 Karakeep 的自动标签、全文搜索与列表归类的后续能力。小结Karakeep 的快速捕获体系由三部分组成官方移动应用iOS/Android基于系统分享意图、官方浏览器扩展Chrome/Firefox弹窗 右键菜单 快捷键、社区 Safari 扩展。通过 apps/mobile/app/sharing.tsx 与 apps/browser-extension/src/SavePage.tsx 两份核心实现可以看到Karakeep 将识别内容类型 → 构造书签请求 → 即时反馈这条流水线打磨得非常顺滑配合可选的客户端 SingleFile 归档与去重提示Hoarded again!真正做到了官方文档所强调的——让囤积内容变得简单。【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考