让你的 AI Agent 连接 Karakeep

让助手查找收藏的主题资料、总结可读内容,或将新链接加入收藏。

55 个工具 API key

试试这些 Karakeep 任务

将提示词复制到已安装 oo Skill 的 Agent,补充页面链接和原始笔记后执行。

oo Skill Karakeep

总结收藏文章

搜索收藏,并分段读取文章内容,结合来源生成摘要。

/oo Karakeep: 在 Karakeep 搜索[主题],读取相关书签内容,整理主要观点并附书签链接。

保存并标记新链接

先检查链接是否已收藏,再创建链接书签并添加标签。

/oo Karakeep: 检查 Karakeep 是否已有[链接]。已有时显示 ID,不修改;否则以标题[标题]和笔记[笔记]保存,并添加标签[标签]。

开始使用 Karakeep

  1. 安装 OOMOL

    在 Agent 中配置 oo CLI 和 oo Skill。

    安装 OOMOL →
  2. 连接 Karakeep

    使用有完整访问权限的 Karakeep API Key 连接,可提供自己的公开实例地址。

    连接 Karakeep →
  3. 向 Agent 交代任务

    使用 /oo,说明要读取的页面、修改的内容和保存位置。

    连接指南 →

选择你的 Agent

  • Karakeep API Key;自托管时还需公开可访问的实例地址。
  • 使用 Karakeep 生成摘要需要实例配置推理服务,并会替换书签已保存的摘要。语义搜索取决于实例配置。

Karakeep 工具

Karakeep 保存链接、文本笔记和文件。此连接可搜索和读取书签、维护内容和分类,并提供文件、订阅源、备份及管理员操作。

收藏搜索与阅读

查找书签,读取已保存正文、资料和高亮。

书签整理

保存链接和笔记、编辑书签资料、添加或移除标签,并维护列表。

55 个工具

Get Current User

获取连接所用 Karakeep API 密钥所属用户的资料,包括名称、邮箱和头像。

karakeep.get_current_user

Get Current User Stats

获取连接所用 Karakeep API 密钥所属用户的使用统计,包括书签、标签、列表和资源数量。

karakeep.get_current_user_stats

List Bookmarks

列出当前连接的 Karakeep 用户的书签,可按归档或收藏状态筛选,按创建时间排序并用游标翻页。除非确实需要抓取到的正文,否则保持 includeContent 为 false,因为返回体可能非常大;文本书签始终会带上 content.text。

karakeep.list_bookmarks

Create Bookmark

从链接、文本笔记或已上传的资源创建书签。type 为 link 时传 url,为 text 时传 text,为 asset 时传 assetType 和 assetId。当同一个 URL 已经被收藏时,Karakeep 不会创建重复项:它会返回已存在的书签并把 alreadyExists 置为 true,同时重新保存该书签,把 createdAt 更新为当前时间、把 archived 重置为 false,并用你传入的值覆盖 title、favourited、note 和 summary。只有 source 为 rss 或 import 时会跳过这次重新保存。如果不希望已存在的书签被改动,请先调用 check_bookmark_url。

karakeep.create_bookmark

Search Bookmarks

在当前连接的 Karakeep 用户的书签中做全文、语义或混合搜索。翻页使用搜索专用游标,不能与 list_bookmarks 共用。除非确实需要抓取到的正文,否则保持 includeContent 为 false,因为返回体可能非常大;文本书签始终会带上 content.text。

karakeep.search_bookmarks

Check Bookmark Url

检查一个 URL 是否已被收藏,返回已存在书签的 id,未收藏时返回 null。适合在调用 create_bookmark 之前使用。

karakeep.check_bookmark_url

Get Bookmark

获取单个书签,包含它的标签、内容和附加资源。除非确实需要抓取到的正文,否则保持 includeContent 为 false,因为返回体可能非常大;文本书签始终会带上 content.text。要分段读取长文正文,请使用 get_bookmark_content。

karakeep.get_bookmark

Update Bookmark

更新书签。只有传入的字段会被修改,传 null 会清空对应的可空字段,因此原有内容会被覆盖。与书签变体不匹配的字段不会被忽略:Karakeep 会以 400 拒绝整个请求,例如 Attempting to set link attributes for non-link type bookmark,并且什么都不写入,所以只传与书签类型匹配的字段。

karakeep.update_bookmark

Delete Bookmark

永久删除一个书签,同时删除它的标签、高亮和附加资源。

karakeep.delete_bookmark

Get Bookmark Content

以 markdown 或纯文本分段读取书签的可读内容。这是读取长文的安全方式:把 nextCursor 传回来获取下一段,而不是用 includeContent 一次性取回全文。如果翻页过程中书签内容发生变化,Karakeep 会以 CONTENT_CHANGED 拒绝游标,此时需要从第一段重新开始。

karakeep.get_bookmark_content

Summarize Bookmark

为链接书签生成 AI 摘要并返回。Karakeep 会把生成的摘要保存到书签上,覆盖它原有的摘要,并重建该书签的搜索索引,所以这不是只读预览。调用期间会阻塞等待所配置的模型运行,可能耗时较长;当 Karakeep 实例没有配置推理服务时会返回 invalid_input 错误。当前服务端会先写入摘要再应答并同步返回,因此 summary 通常带有最终文本。已发布的 OpenAPI 规范则声明返回整条书签记录,遵循该形状的实例可能返回 summary 为 null;这种情况下请用 get_bookmark 反复读取书签,直到 summarizationStatus 为 success,再从中取出摘要。

karakeep.summarize_bookmark

Attach Tags To Bookmark

给书签附加标签。每个标签用 tagId 指定,或者用 tagName 指定,让 Karakeep 在标签不存在时自动创建。

karakeep.attach_tags_to_bookmark

Detach Tags From Bookmark

从书签上移除标签。每个标签用 tagId 或 tagName 指定。标签本身会保留,只解除与该书签的关联。

karakeep.detach_tags_from_bookmark

Get Bookmark Lists

列出包含指定书签的 Karakeep 列表。

karakeep.get_bookmark_lists

Get Bookmark Highlights

列出书签上保存的高亮。

karakeep.get_bookmark_highlights

Attach Asset To Bookmark

把已经上传的资源附加到书签上,例如截图或 PDF。需要先上传文件拿到资源 id。只有 screenshot、pdf、assetScreenshot、precrawledArchive、bannerImage、video 和 userUploaded 这些角色可以被附加;linkHtmlContent、bookmarkAsset、fullPageArchive、avatar 和 unknown 由 Karakeep 自己维护,附加时会被判 400。

karakeep.attach_asset_to_bookmark

Replace Asset On Bookmark

用另一个已上传的资源替换书签上已附加的资源。被替换的资源会被删除,新资源接替它的角色。被替换的资源必须属于可附加角色,即 screenshot、pdf、assetScreenshot、precrawledArchive、bannerImage、video 或 userUploaded;由 Karakeep 自己维护的资源,包括 linkHtmlContent、bookmarkAsset、fullPageArchive、avatar 和 unknown,会被判 400。

karakeep.replace_asset_on_bookmark

Detach Asset From Bookmark

从书签上移除一个资源。Karakeep 会同时删除资源记录和已存储的文件,因此该资源 id 之后不再可用,字节内容也一并消失;书签的其他资源保持不变。只有 screenshot、pdf、assetScreenshot、fullPageArchive、precrawledArchive、bannerImage、video 和 userUploaded 可以被移除;linkHtmlContent、bookmarkAsset、avatar 和 unknown 由 Karakeep 自己维护,移除时会被判 400。

karakeep.detach_asset_from_bookmark

List Lists

获取当前 Karakeep 用户的全部书签列表,包含手动列表和智能列表。该接口不分页,一次返回所有列表。

karakeep.list_lists

Create List

创建一个新的书签列表。手动列表只包含显式添加的书签,智能列表则由保存的搜索查询自动填充。

karakeep.create_list

Get List

按 id 获取单个 Karakeep 列表。

karakeep.get_list

Update List

部分更新一个 Karakeep 列表。只修改输入中出现的字段,description 或 parentId 传 null 表示清空已保存的值。

karakeep.update_list

Delete List

删除一个 Karakeep 列表。只删除列表本身,列表中的书签会被保留。

karakeep.delete_list

Get List Bookmarks

获取 Karakeep 列表内的一页书签。对智能列表来说,书签由列表保存的查询实时计算得出。

karakeep.get_list_bookmarks

Add Bookmark To List

把书签加入手动维护的 Karakeep 列表。该操作是幂等的,重复添加已在列表中的书签会成功且不产生任何变化。

karakeep.add_bookmark_to_list

Remove Bookmark From List

把书签移出手动维护的 Karakeep 列表。书签本身会被保留。如果书签不在该列表中,Karakeep 会拒绝这次请求。

karakeep.remove_bookmark_from_list

List Tags

获取一页 Karakeep 标签。可以按名称片段和打标签来源筛选,并按名称、使用次数或相关度排序。只有传了 limit 才会真正分页:不传 limit 时 Karakeep 会一次返回全部标签,并且不返回游标。

karakeep.list_tags

Create Tag

创建一个新的 Karakeep 标签。名称会被去除首尾空白,并按账号配置的标签风格归一化。

karakeep.create_tag

Get Tag

按 id 获取单个 Karakeep 标签,包含带有它的书签数量以及打标签的来源。

karakeep.get_tag

Update Tag

重命名一个 Karakeep 标签。名称是这个接口唯一能改的字段,因此必填。新名称会被去除首尾空白并归一化,所有带有该标签的书签都会看到新名称。

karakeep.update_tag

Delete Tag

删除一个 Karakeep 标签。该标签会从所有带有它的书签上解除,书签本身会被保留。

karakeep.delete_tag

Get Tag Bookmarks

获取带有指定 Karakeep 标签的一页书签。

karakeep.get_tag_bookmarks

List Highlights

获取当前 Karakeep 用户在所有书签上创建的一页高亮。

karakeep.list_highlights

Create Highlight

在 Karakeep 书签上创建一条文本高亮。高亮由它在书签正文中覆盖的字符偏移量定义,并可以带颜色和备注。

karakeep.create_highlight

Get Highlight

按 id 获取单条 Karakeep 高亮。

karakeep.get_highlight

Update Highlight

部分更新一条 Karakeep 高亮。只能修改颜色和备注,备注传 null 表示清空。

karakeep.update_highlight

Delete Highlight

删除一条 Karakeep 高亮,并返回被删除的记录。高亮所属的书签会被保留。

karakeep.delete_highlight

Upload Asset

把文件作为独立资源上传到 Karakeep。连接器会在服务端下载 fileUrl,再以 multipart/form-data 的 file 字段把字节提交给 Karakeep。Karakeep 只接受 image/gif、image/jpeg、image/png、image/webp、video/mp4、video/webm、video/x-matroska、text/html 和 application/pdf。二进制类型由 Karakeep 直接从字节本身嗅探,声明值会被忽略;但 HTML 没有特征字节无法嗅探,所以只有声明的类型正好是 text/html 时才会被接受为 HTML 上传。超过实例资源大小上限时返回 Asset is too big 错误;该上限是 MAX_ASSET_SIZE_MB 乘 1024 * 1024,默认即 50 MiB。上传后的资源不会关联任何书签,需要归属书签时再调用 attach_asset_to_bookmark。

karakeep.upload_asset

Get Asset

下载 Karakeep 资源的二进制内容,并以临时的连接器文件地址返回。连接器会把字节从 Karakeep 流式写入文件中转,而不是直接内联返回,因此大图片、视频、PDF 和压缩包同样适用。Karakeep 不返回 Content-Disposition 响应头,因此文件名回退为资源 id 加上按内容类型推断的扩展名。

karakeep.get_asset

Get Asset Signed Url

为 Karakeep 资源生成短期有效的签名下载地址。该地址自带令牌,拿到地址的人无需 API key 即可下载资源,签发后 15 到 75 分钟内过期。Karakeep 使用实例自身配置的公开地址来拼接该 URL,而不是本连接保存的实例地址,因此配置不当的自托管实例可能返回外部无法访问的主机。

karakeep.get_asset_signed_url

List Backups

列出当前 Karakeep 用户的全部账号备份记录,包含仍在进行和已失败的备份。

karakeep.list_backups

Create Backup

为当前 Karakeep 用户触发一次完整的账号备份。Karakeep 记录请求后立即返回 status 为 pending 的备份记录,归档本身由实例的备份 worker 异步生成,完成前 assetId、size 和 bookmarkCount 都为空。请轮询 get_backup 直到 status 变为 success 或 failure。如果该实例禁用了备份 worker,记录会一直停留在 pending,因此轮询必须自带超时。Karakeep 对该操作限流为每小时 5 次。

karakeep.create_backup

Get Backup

按 id 获取单个 Karakeep 备份,包含当前状态、归档大小、书签数量和失败原因。它是 create_backup 的轮询目标:持续读取直到 status 为 success 或 failure;如果记录长期停留在 pending,说明该实例的备份 worker 没有运行。

karakeep.get_backup

Delete Backup

永久删除一条 Karakeep 备份记录以及它生成的归档文件。Karakeep 返回空响应体,因此该 action 改为回报被删除的备份 id。

karakeep.delete_backup

Download Backup

下载已完成的 Karakeep 备份归档,并以临时的连接器文件地址返回。该 action 会先读取备份记录:状态仍是 pending 时以输入错误失败,并提示继续轮询 get_backup;备份已失败时同样以输入错误失败,并带上上游的失败原因,因为该状态是终态,继续轮询没有意义;状态为 success 却没有归档资源时以 provider 错误失败。通过这些检查后才把归档从 Karakeep 流式写入文件中转。Karakeep 自带的下载端点只会重定向到需要鉴权的相对地址,多数 HTTP 客户端无法跟随,因此连接器改为自行解析归档资源 id。

karakeep.download_backup

List Feeds

列出当前 API key 所属 Karakeep 用户的全部 RSS 订阅源。该接口不分页,一次返回所有订阅源。

karakeep.list_feeds

Create Feed

创建一个 RSS 订阅源。Karakeep 会定期抓取该订阅源,并把符合条件的条目导入为书签。当用户的订阅源数量已达上限时,Karakeep 返回 400。

karakeep.create_feed

Get Feed

按 id 获取单个 RSS 订阅源。

karakeep.get_feed

Update Feed

更新一个 RSS 订阅源。只会修改输入中出现的字段,未提供的字段保持原值。

karakeep.update_feed

Delete Feed

删除一个 RSS 订阅源。该订阅源此前已导入的书签不受影响。

karakeep.delete_feed

Fetch Feed Now

立即触发一次 RSS 订阅源抓取。该请求只是把抓取任务入队并异步执行,新导入的书签会稍后出现;可以轮询 get_feed 并观察 lastFetchedAt 判断是否完成。

karakeep.fetch_feed_now

Admin Update User

更新另一个 Karakeep 用户的角色、书签配额、存储配额或浏览器抓取开关。只会修改传入的字段,且至少要提供其中一个。Karakeep 不允许更新 API key 自身所属的用户,会返回 400。需要使用属于 Karakeep 管理员用户的 API key,其他 key 会得到 403 provider_error,并原样带上上游提示 Forbidden - Admin access required。

karakeep.admin_update_user

Admin Trigger Recrawl

对整个 Karakeep 实例的链接书签触发重新抓取。可以按抓取状态筛选目标书签,例如只重试失败的,也可以按最近修改时间筛选。抓取任务入队后异步执行。需要使用属于 Karakeep 管理员用户的 API key,其他 key 会得到 403 provider_error,并原样带上上游提示 Forbidden - Admin access required。

karakeep.admin_trigger_recrawl

Admin Trigger Reindex

在 Karakeep 搜索引擎中触发书签重新索引。不传 modifiedWithinSeconds 时,Karakeep 会先清空整个搜索索引,再把全部书签重新入队,因此在队列消化完之前整个实例的搜索结果都是不完整的;传了该参数时只有在该时间窗内被修改过的书签会重新入队,已有索引会被保留。重新索引异步执行。需要使用属于 Karakeep 管理员用户的 API key,其他 key 会得到 403 provider_error,并原样带上上游提示 Forbidden - Admin access required。

karakeep.admin_trigger_reindex

Admin Trigger Inference

对整个 Karakeep 实例的书签触发 AI 推理,可选打标签或生成摘要。可以按推理状态和最近修改时间筛选目标书签。推理任务入队后异步执行。需要使用属于 Karakeep 管理员用户的 API key,其他 key 会得到 403 provider_error,并原样带上上游提示 Forbidden - Admin access required。

karakeep.admin_trigger_inference

常见问题

重复保存已有链接会怎样?

普通创建会重新保存已有书签,可能修改日期、归档状态、标题、笔记和摘要。需要保留已有书签时,请先检查链接。

可以读取长文章吗?

可以。可分段获取可读正文;读取期间内容发生变化时,需要从头重新读取。

从书签移除标签会删除标签本身吗?

不会。移除只取消标签与该书签的关联,保留标签本身。

连接 Karakeep

关于 Karakeep ↗