mcpField
C
chat-recall

chat-recall

远程服务
chatrecall.dev记忆与知识21 天前更新

关于 chat-recall

chat-recall 汇总 AI 编码工具的对话记录,提供可搜索的共享历史、安全发现、代码建议和任务跟踪。它面向使用多个编码 Agent 的开发者与团队,通过 MCP 工具让 Agent 跨工具搜索并更新共享知识。

主要功能

  1. 01统一搜索编码会话历史
  2. 02共享具时效性的团队知识
  3. 03扫描记录中的泄露凭据
  4. 04排序并跟踪代码库发现
  5. 05带代码库规则的共享任务板
  6. 06根据相似历史会话提供续接提示

适用场景

  1. 01查找先前编码会话中的决策
  2. 02检查泄露凭据是否仍有效
  3. 03将代码库发现转为跟踪任务
  4. 04提醒 Agent 注意相似的过往工作

MCP 相关

chat-recall 提供 63 个 MCP 工具,用于搜索、回放和比较会话历史,以及管理共享知识、安全发现、代码建议和任务。其 MCP 服务可注册到受支持的编码工具和客户端。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://chatrecall.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmchat-recall0.7.20

工具

详细介绍

聊天回忆

npm npm 下载量 MCP registry Smithery Glama

在 Cursor 中安装 在 VS Code 中安装

chatrecall.dev · 工作原理 · MCP 工具 · 定价 · 自托管 · 安全

将 AI 编码工具已经写下的内容转化为团队共享知识、泄露密钥警报、排名后的代码问题和可追踪任务。

你的 Agent 都写下来了,却没人看。

你运行的每个编码 Agent 都会保留其工作的完整记录:决策、推理、有人粘贴的密钥、它发现却从未登记的问题。每个 Agent 都以自己的格式写入各自的目录,彼此无法读取,也没有任何工具会读取这些记录。chat-recall 可以,它提供 63 个 MCP 工具。

功能工具
共享 AI 知识一个 Agent 学到的决策、惯例和项目事实,可供所有其他 Agent 和团队成员使用。能识别时间变化,因此已被取代的决策会显示为已被取代16
安全问题标记过去对话中粘贴的凭据,逐会话检查、验证凭据是否仍有效,并持续追踪,直至凭据轮换或问题被忽略4
自动化代码改进排出代码仓库中真正值得修复的问题,并应用或忽略每条建议,同时具备针对代码仓库本身的代码智能9
任务追踪由这些问题生成的共享看板,并可为每个代码仓库设置规则,让问题转化为任务,而不只是报告5

这四项功能的底层,是一个索引,收录了工具已经写入的所有会话;另有 28 个工具可用于搜索、重放和比较这些会话。这个索引是实现机制,不是宣传重点,也不是客户购买它的原因。

跨工具协作才是它发挥作用的关键。单个工具内置的历史记录只覆盖它自身的范围,而本工具不会止步于此,你的团队也不会。

查看实际效果

下方每个画面都是真实服务器的实际输出,取自演示账号。没有任何内容是模拟、重播或调整过时间的。

一个索引,涵盖所有工具。 搜索可以根据会话中讨论过的内容找到会话,而不只是按文件名搜索;memory status 会在同一处显示所有来源类型,包括会话,以及生成这些会话的技能、MCP、命令、子 Agent 和钩子。

chat-recall 根据会话中讨论过的内容找到过往会话的搜索结果,以及 memory status 列出的所有已索引来源类型

也可以直接用日常语言提问——无需提供工具名称或会话 ID。Agent 会自行选择调用:

Claude Code 通过自行调用 chat-recall 回答有关过往会话的问题

它还能找到你粘贴过的凭据,并检查哪些仍然有效。 失效的密钥只是卫生问题;有效密钥则是安全事件,只有有效密钥才会触发警报。

安全视图:按规则分组的泄露密钥,每个密钥都显示脱敏预览、有效或失效的判定结果,以及它出现过的会话

安装

npx chat-recall init

这会为你磁盘上已有的对话记录建立索引,检测你安装了哪些 AI 工具,并在每个工具的配置文件中注册 MCP 服务:

工具写入的文件
Claude Code~/.mcp.json
Codex~/.codex/config.toml
OpenCode~/.config/opencode/opencode.json
Cursor~/.cursor/mcp.json

它只会修改这台机器上已安装工具对应的配置,不会覆盖你手动编辑过的条目;chat-recall doctor 会为每个工具打印一行,这样就能发现缺失的注册项。在 Claude Code 中,你也可以同时安装技能和 MCP 服务:

/plugin marketplace add munhq/chat-recall
/plugin install chat-recall@chat-recall

其他 MCP 客户端(Claude Desktop、Windsurf、Zed、Cline,或 init 不认识的工具)都可以通过 JSON 条目使用同一个服务。可执行文件名为 chat-recall-mcp,因此只写软件包名称是不够的——npx -y chat-recall 启动的是 CLI,而不是服务端:

{
  "mcpServers": {
    "chat-recall": {
      "command": "npx",
      "args": ["-y", "-p", "chat-recall", "chat-recall-mcp"]
    }
  }
}

对于 claude mcp add 风格的客户端,也可以将同一命令写成一行:npx -y -p chat-recall chat-recall-mcp。

然后:

chat-recall search "that auth bug"      # search everything you have ever done
chat-recall recent                      # what was I working on

默认情况下,这会同步到托管服务 chatrecall.dev,并从 7 天试用期开始,无需提供银行卡;试用期结束后需付费订阅——请参阅定价。如果想让所有内容都留在自己的机器上,可以自行运行服务:一人使用永久免费,包含所有功能且无需许可证密钥——也包括任务看板和 Toolkit;许可证只用于协作功能:添加第二位成员、共享历史记录和分配工作。请参阅下文的自托管。无论选择哪种方式,CLI 都是同一个二进制文件,命令也相同;只有服务端 URL 不同。

无需 API 密钥。搜索使用 Postgres 全文搜索。AI 摘要是可选升级功能,并非必需。

永远不会离开你设备的内容

它会为这台设备上的每个 AI 会话建立索引,因此 init 会显示将要上传的内容——数量、工具和项目名称——并在首次同步前等待你确认。(使用 --yes 或没有 TTY 时,会打印相同的摘要并继续;--skip-sync 则会完全阻止上传。)机密信息会在客户端进行掩码处理,项目路径则以哈希值发送;此外,你还可以选择具体要纳入哪些内容:

chat-recall exclude project ~/work/client   # a path, and everything under it, never syncs
chat-recall exclude tool cursor             # one AI tool never syncs
chat-recall sync-only add git:github.com/me/app   # invert it: ship ONLY what you list
chat-recall sources decline ~/.claude-work  # a whole transcript profile stays out
                                            #   (--delete-remote purges what it already sent)
chat-recall exclude list                    # every rule in force
chat-recall delete <session-id>             # purge one session on every server, tombstoned
chat-recall retention                       # how long the server keeps what you sent
chat-recall retention set 90                # delete anything older, on a timer (0 = keep everything)

有些工具会将对话记录保存到哈希目录,而不是项目文件夹,因此这些会话没有可供路径规则匹配的路径;exclude tool 可用于管理这些会话,init 会显示其数量。保留期限会按计时器从服务器删除数据。 retention set 会显示将删除的会话数量,并要求你确认该数量。只有当原始对话记录仍保存在你持有的某台设备上时,才能撤销此操作——延长保留期限,然后运行 chat-recall sync --full,重新上传符合条件的内容。对于你已不再拥有的笔记本电脑、AI 工具已轮换的历史记录,或你已删除的文件,我们的副本就是唯一副本。如果需要,请先导出。

排除规则保存在持有数据的设备上,因此由 CLI 管理;规则从下次同步起生效,已同步的记录则会保留,直到被删除。仪表板的 同步规则 面板可添加适用于所有设备的规则——这些规则会与本地规则取并集,因此只会增加保护,不会减少保护。完整模型(含限制):安全性。

它实际能做的四件事

  1. 跨工具统一记忆。 在 Claude Code(~/.claude/projects/)、Codex(~/.codex/)、OpenCode(~/.local/share/opencode/)、Antigravity(~/.gemini/antigravity-cli/)、Cursor(CLI 版为 ~/.cursor/,IDE 版为 ~/.config/Cursor/)、Hermes Agent(~/.hermes/)和 Pi(~/.pi/agent/)中,使用同一个索引、搜索和 UI。会话、计划、任务、CLAUDE.md 文件、粘贴缓存、Shell 历史记录和 Agent 日记都共用一个可插拔的 MemorySource 接口。
  2. Agent 会自行回忆。 提供 63 个 MCP 工具,因此 Claude Code 可以使用 recall_smart_resume、recall_search(配合 like_session 查找类似工作)、recall_edits_timeline、recall_subagent_search 和 recall_redundant_files,而不必询问你上次发生了什么。它也可以通过 recall_decision_record、recall_kg_add 和 recall_set 写入信息。
  3. 在你重复工作前发出提醒。 UserPromptSubmit hook 会在每次提示词提交时搜索类似的过往会话,并向 Agent 的上下文注入一条简短提示:“你以前做过这件事,见会话 X”。
  4. 时序知识图谱。 决策和工具提及会转化为带有 valid_from/valid_to 时间范围的实体关系三元组,因此你可以询问 3 月做了什么决定,以及该决定目前是否仍然有效。

添加你自己的 AI 工具

新增一个后端只需一个文件和一行代码——无需修改引擎。如果你使用的工具会将对话记录写入磁盘,就可以在这里为其建立索引,而提交拉取请求是实现这一功能最快的方式。

可选:Web 仪表板

React 仪表板是服务端的一部分(SaaS 或通过 docker compose 自托管)——CLI 本身没有 UI。开发仪表板:

npm run web:install                 # install web deps
npm run web:dev                     # API on :5000, UI on :5174
自托管服务端(docker compose)

所有内容都保留在你自己的设备上,无需账户,也不会向任何地方发送数据:

git clone https://github.com/munhq/chat-recall && cd chat-recall
echo "ADMIN_KEY=$(openssl rand -hex 24)"         >> .env
echo "POSTGRES_PASSWORD=$(openssl rand -hex 24)" >> .env
docker compose up -d --build          # FIRST RUN BUILDS FROM SOURCE (minutes)

然后创建设备令牌并连接一台设备——完整步骤及故障排查说明见 docs/SELF_HOSTING.md。

包含两个容器:服务端和随附的 pgvector/pgvector Postgres,因此只需运行 docker compose up 即可独立使用。也支持使用自有 Postgres(托管服务正是这样运行的):将 DATABASE_URL 设置为外部 Postgres 16+。

保持索引实时更新(+ 可选的服务同步)

你不需要守护进程。Claude Code 会启动 MCP 服务,该进程每 3 分钟自动同步一次——这个二进制文件就是守护进程。对于没有助手运行的无头设备,可以选择启用后台服务:

chat-recall watch                    # foreground daemon: watches every tool, summaries, precompute
chat-recall watch --install-service  # systemd user unit (Linux) · launchd (macOS) · Scheduled Task (Windows)

init 有意不安装它。这两种方式都会在同一个跨平台索引锁下调用 syncIncremental(),因此同一时间只有一个写入者会修改账本——更改相关内容前,请参阅 docs/SYNC.md。任何内容离开设备前,机密信息都会在客户端进行屏蔽。chat-recall sync 会按需执行同样的推送一次。

将其接入 Claude Code

chat-recall init 会为你完成这些设置。手动配置方式是在 ~/.mcp.json 中添加:

{
  "mcpServers": {
    "chat-recall": {
      "command": "chat-recall-mcp"
    }
  }
}

chat-recall-mcp 是中继程序,不是服务端。它会为你的工具配置文件查找后台守护进程;如果不存在,就启动一个,然后将字节数据传递给它。因此,设备上的每个会话都会共用一个已加载的引擎,而不是各自携带一个:相较于单个共享守护进程,每个会话只占用约 50 MB,而非 87 MB;后台同步也只在一个进程中运行,不会让所有进程争抢同一把锁。最后一个会话关闭 15 分钟后,守护进程会退出。

两个可选参数:

CHAT_RECALL_NO_DAEMON=1          # load the whole server in each session instead
CHAT_RECALL_DAEMON_IDLE_SECS=0   # keep the daemon resident (default 900)

无论出于什么原因,如果无法连接守护进程,会话就会自行加载服务,并像以前一样正常工作——只是速度较慢,不会失效。

然后安装钩子(一条命令即可设置自动保存、压缩前备份,以及在你即将重复已有工作时发出提醒的恢复提示):

chat-recall install-hooks                 # registers all five events, in every Claude profile
chat-recall install-hooks --no-resume-hint  # skip the resume warning
chat-recall install-hooks --no-wakeup       # skip the session-start wake-up bundle
chat-recall install-hooks --no-escalate     # skip the session-end escalation
chat-recall install-hooks --uninstall     # remove all of ours, leave third-party hooks alone
钩子触发时机作用
SessionStart新会话(startup / clear)注入项目范围的唤醒信息包
UserPromptSubmit你输入提示词时搜索以往会话;如果有相似会话,就会在 Agent 的上下文中注入“你以前做过这件事”
Stop每轮助手回复后将主题、决策和工具自动保存到 ~/.chat-recall/memory/
PreCompactClaude Code 压缩上下文前紧急保存,避免内容在压缩时丢失
SessionEnd会话关闭时在后台整理并提升该会话的经验总结,不会造成延迟

决策防护

没人读取的决策只是建议。chat-recall guard 会在调用工具前运行,并在调用涉及已被否决的内容时发出提示:

chat-recall: this reaches for something already decided against.
- keycloak was ruled out — BetterAuth is the decision (2026-03-14) · session 8f2c1a4e
Proceed only if this is a deliberate reversal. If it is, record it:
recall_decision_record with the area, so the old decision is closed rather than contradicted.

它会针对安装、导入和清单编辑触发,例如 npm install auth0、新增一行 import,或在 package.json 中添加名称。不会针对文字内容触发:句子里说“我们可以使用 Auth0”不应阻止任何操作,否则人们会关闭防护功能。

它只发出警告,不会阻止操作。 错误拦截会让用户多花一个回合,还会导致防护功能被卸载;错误警告只会多占一行上下文。设置 CHAT_RECALL_GUARD_ENFORCE=1,即可按机器配置为拦截操作。设置 CHAT_RECALL_GUARD=0 可将其关闭。

chat-recall install-hooks 会在全部五种工具中注册防护功能。每种工具都会将自己的执行前钩子保存在独立文件中,因此安装程序会写入五种不同格式,并跳过机器上未安装的工具(使用 --no-guard 可全部跳过):

工具位置事件
Claude Code~/.claude/hooks.json,所有配置文件PreToolUse
Codex~/.codex/hooks.jsonPreToolUse
Antigravity~/.gemini/antigravity-cli/hooks.jsonPreToolUse——这是唯一支持真实 ask 判定的工具,因此可以发出提示
Cursor~/.cursor/hooks.jsonbeforeShellExecution + afterFileEdit
OpenCode~/.config/opencode/plugins/chat-recall-guard.jstool.execute.before

Codex 还需要一步操作。 只有在你信任钩子后,它才会运行钩子——打开 Codex 并运行一次 /hooks。chat-recall doctor 会报告每种工具的注册状态。

其中两种工具无法实现全面覆盖,文档会如实说明,而不会让人误以为覆盖完整。Cursor 提供 beforeShellExecution,但只提供 afterFileEdit,因此编辑中新增的导入会在写入后才报告,而不是事先阻止。OpenCode 的插件钩子不会针对子 Agent 的工具调用触发(#5894),因此委派任务的 Agent 可以绕过它。

配套工具:codeindex(自动检测)

另有一个名为 codeindex 的独立 MCP 服务(Zig 二进制文件,约 56 MB),由 munhq 开发,可为 Agent 提供代码级查找能力。两者可以配合使用:

  • chat-recall = 会话记忆。我做过哪些工作?我们决定了什么?
  • codeindex = 代码记忆。这个符号在哪里?哪些代码会调用它?修改它会造成什么影响?

两者结合后,Agent 在重新开展工作前,既能回答“我以前做过这个吗?”,也能回答“这个代码库里已经有了吗?”

chat-recall 的处理方式: chat-recall init 会检测你的 PATH 中(或 ~/.local/bin/codeindex)是否存在 codeindex。如果存在,就会自动将其注册为 ~/.mcp.json 中的 MCP 服务——无需下载,也不会擅自安装。如果不存在,则会打印一行提示,说明如何获取它。

chat-recall init                       # default — detect and register if installed
chat-recall init --with-codeindex      # additionally force-download the binary
chat-recall init --skip-codeindex      # don't even check
chat-recall companions install         # download manually (after init)
chat-recall companions status          # show what was detected
chat-recall companions uninstall       # remove the binary + MCP registration

codeindex 在 github.com/munhq/codeindex 上以 MIT 许可证开源。安装并非必需——chat-recall 完全可以在没有它的情况下运行;只是无法使用代码级工具。

索引内容

来源来源位置说明
会话(Claude)~/.claude/projects/<hash>/<uuid>.jsonl完整转录、令牌、费用、处理过的文件、使用的模型
会话(OpenCode)~/.local/share/opencode/opencode.db(SQLite)费用、令牌、待办事项
子 Agent 转录<session-dir>/<id>/subagents/*.jsonlExplore、aside,以及 acompact-*(孤立的压缩历史记录)
计划~/.claude/plans/*.mdAgent 计划文档,按 ## 拆分
任务~/.claude/tasks/<session>/*.json与父会话关联
CLAUDE.md根据项目哈希自动发现与同一项目中的会话关联
历史记录~/.claude/history.jsonlShell 历史记录,可选择关联到会话
粘贴内容~/.claude/paste-cache/*.txt大型粘贴内容
日记~/.chat-recall/index/diary/<agent>/*.jsonAgent 通过 recall_diary_write 告诉未来的自己的内容

MCP 工具(共 62 个,包括安装配套二进制文件后注册的 4 个代码智能工具)

搜索与检索 — recall_search、recall_memory_search、recall_recent、recall_show、recall_context、recall_summary、recall_smart_resume、recall_project_context、recall_weekly_digest、recall_analytics_summary、recall_wake_up。

模式检测 — 使用 like_session: <id> 调用 recall_search(查找与指定会话类似的工作)、recall_redundant_files(当新文件名与以往工作重叠时发出警告)、使用 files_only: true 调用 recall_diff(会话 X 实际改动了哪些文件)、使用 group_by: "session" 调用 recall_edits_timeline(哪些会话编辑过 auth.rs)。

子 Agent 与筛选器 — recall_subagent_search(在隐藏的 Explore/aside/compact 转录中搜索)、recall_user_prompts(仅包含人类输入的内容,并已去除横幅)。

按优先级排列的发现 — recall_claude_suggestions(所有会转化为 Agent 指令变更的发现:CLAUDE.md 规则和技能安装,合并了账户范围及所有已索引项目的内容)和 recall_improvements(其余内容,按紧急程度从高到低排列;使用 create_tasks: true 可为每项创建一个团队任务)。两者划分同一批建议引擎的结果,因此同一条目不会同时出现在两者中。

知识图谱 — recall_kg_query、recall_kg_add、recall_kg_invalidate、recall_kg_timeline、recall_kg_stats。此外,recall_decision_record 可通过一次调用将决策同时写为三元组和日记条目。

KV 状态 — recall_set、recall_get(不提供键时列出该范围)。以带命名空间的字符串为键存储少量持久值,例如“当前 PR 的 URL”“我正在处理的分支”“用户偏好”。

日记与状态 — recall_diary_write、recall_diary_read、recall_status(包含记忆构成明细)、recall_index。计划/任务:使用 recall_memory_search(source_types:['plan','task']) 搜索,使用 recall_show 阅读。

移除内容 — recall_forget 会从服务中永久删除一段对话,并将其标记为墓碑,因此后续同步不会恢复该对话(你自己的转录文件不受影响);recall_exclude_path 会停止同步某个路径,并在此计算机和你的账户中生效。之所以将它们做成工具,是因为人们会在对话中提出“忘掉那段对话”和“停止同步这个代码库”,而不会为此打开控制面板。两者都要求设置 confirm: true,都标记为破坏性操作,且都不会自动批准——客户端每次都会询问。此边界有意设置为单向:Agent 可以缩小存储范围,但没有任何工具可以再次扩大范围(没有取消排除、没有允许列表,也没有保留期限)。要扩大范围,由你决定:使用 chat-recall exclude remove 或打开控制面板。

安装 codeindex 配套工具后,Agent 还会通过单独的 MCP 服务获得 16 个代码级工具(find_symbol、find_callers、get_imports、plan_change、get_change_impact、analyze 等)。它们可以组合使用:chat-recall 用于查找你做过的工作;codeindex 用于了解当前存在的内容。

搜索架构

搜索在服务端运行,使用 Postgres 全文搜索:按关键词匹配并排序,同时通过 pg_trgm 容忍拼写错误。它不需要嵌入模型、API 密钥或额外服务。

CLI 会将经过脱敏的文本块发送到服务端,由服务端进行索引。

费用跟踪

只要会话中至少有一个模型的费率为服务端所知,系统就会根据令牌用量计算美元费用。对于其他所有模型——包括任何本地模型、任何可自托管模型,以及任何比费率表更新的模型——控制面板都会显示 —,而不会捏造数字。摘要会显示 sessionsWithoutPricing 计数器,让你了解总费用中实际覆盖了多少。

唤醒上下文

chat-recall memory wake-up

为 AI 会话构建一个小型资料包:可选的身份简介、分类器标记为决策/偏好/里程碑且重要性 ≥ 4 的前 10 个片段,以及当前有效的知识图谱事实快照。没有什么神奇的压缩——只包含索引器已标记的高信号内容。

数据位置

CLI 几乎不在本地保存任何内容——只保存连接服务器所需的信息:

路径内容
~/.chat-recall/credentials.json服务器目标地址 + 设备令牌(模式 0600)
~/.chat-recall/sync-ledger.json每台服务器的同步水位标记(已发送的内容)
~/.chat-recall/hooks/已安装的钩子(运行 install-hooks 后)
~/.chat-recall/index/diary/由 recall_diary_write 写入的 Agent 日志
~/.chat-recall/shadow/每个会话所见最完整的转录记录的 Gzip 压缩副本,防止上游 --resume 截断内容导致历史记录丢失
~/.chat-recall/cache.db本地仪表板使用的本地结果/元数据缓存。它不是索引,也不会在服务器模式下使用

所有已索引内容——片段、FTS、向量、知识图谱、机密信息发现结果和日志——都存储在服务器上(自托管和 SaaS 均使用 Postgres)。如需重置,请清除服务器的 Postgres 数据,而不是 ~/.chat-recall 下的任何内容。

隐私

你的会话会同步到 chat-recall 服务器——可以是你自行托管的服务器(你自己的设备、你自己的 Postgres),也可以是 SaaS。离开 CLI 之前,所有内容都会经过脱敏:机密信息会在客户端屏蔽,因此服务器永远不会收到原始凭据。自托管可将所有数据保存在你控制的基础设施上;SaaS 则是托管式替代方案。

不收集遥测数据。你的数据存储在你自己的服务器 Postgres 中——你可以按自己的方式备份。在 SaaS 上,数据存储于托管的 Postgres;如果你希望数据完全留在自己的基础设施上,可以选择自托管。

架构

packages/
├── engine/src/
│   ├── core/
│   │   ├── backends/        ToolBackend per AI tool (claude, opencode, codex, agy, cursor)
│   │   ├── tool-backend.ts  Registry interface — single source of truth for tool identity
│   │   ├── tool-paths.ts    Env-overridable default paths for each tool
│   │   ├── generic-engine.ts  Shared turn extraction / edit scan / replay (canonical events)
│   │   └── …                Indexing, storage, embeddings, summaries, KG, classifier
│   └── parsers/             *-source.ts plugins per content type (sessions, plans, tasks, …)
├── cli/
│   ├── src/cli.ts           CLI
│   ├── src/mcp.ts           MCP server
│   ├── auto-indexer/        chokidar-based watcher daemon (systemd-friendly)
│   └── hooks/               Claude Code hooks (install via `chat-recall install-hooks`)
└── server/
    ├── src/                 Express API
    ├── client/              React + Vite UI — the dashboard
    └── cloud/migrations/    Empty by design — pg-schema.ts owns the schema

docker/                  Dockerfile + entrypoint for the server image
e2e/                     Playwright tests for the dashboard

两个扩展点,均由注册表驱动:

  • 添加新内容类型(例如,添加另一种要索引的文件格式)——实现 MemorySource(discover → parse → extractLinks),并将其注册到 SourceRegistry。
  • 添加新 AI 工具(在 Claude/OpenCode/Codex/Antigravity/Cursor/Hermes 之外,添加第七种后端)——实现 ToolBackend(路径、ID 处理、readEvents、fileToolMap、extractEditDelta),并将其注册到 packages/engine/src/core/backends/index.ts。所有路径都可通过 CHAT_RECALL_{CLAUDE,CODEX,AGY,CURSOR,CURSOR_IDE,HERMES}_HOME / CHAT_RECALL_OPENCODE_DB 环境变量覆盖。

要求

  • Node.js 22 或更高版本。Docker 镜像和 CI 使用 24。
  • 会话由受支持的工具写入,并位于其标准位置:~/.claude/、 ~/.codex/、~/.local/share/opencode/、~/.gemini/antigravity-cli/。

要求就这些。安装、索引或搜索都不需要 API 密钥。

有一项功能需选择启用,并且需要使用你选择的后端:

功能可连接的后端
AI 摘要Ollama、你已登录的 CLI(SUMMARY_CLI_CMD)、兼容 OpenAI 的端点,或 ANTHROPIC_API_KEY

不启用该功能时,会话不会生成摘要。其他功能照常运行。

许可证

整个代码库采用 Elastic License 2.0。

简单来说:你可以自由使用、修改,也可以自行运行或在公司内部运行,无需申请许可。唯一不允许的,是将其作为托管或管理式服务提供给第三方——那就是产品本身。你也不得移除许可证密钥检查或版权声明。

它是源代码可用,但不是 OSI 开源,本 README 不会故意含糊其辞。它取代了此前 CLI 和引擎采用 MIT 许可证、服务器采用 BSL 1.1 的许可拆分;那种做法让同一个代码库对“我可以使用它吗?”这个问题给出了三种不同的答案。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。