Recall — Claude Code 本地项目记忆插件

让 Claude Code 拥有持久记忆:自动记录每次会话并生成离线摘要,告别每次重新解释项目、浪费令牌。

Star 数
★ 764
最近更新
1 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
Agent 插件 / 技能命令行工具
可在哪里用
兼容但需适配Claude CodeCodex(不支持)
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Claude Code(主要测试框架)Python 3.9–3.13,用于开发工具numpy 可选加速器Shell / 命令行本地文件系统
典型场景
在订阅计划下长期使用 Claude Code 的开发者,希望省下重复解释项目的令牌开支
不适合
  • 需要 LLM 撰写摘要、追求语义压缩质量的团队
  • 使用 Codex 或其他非 Claude Code/opencode 工具的开发者
  • 需要把 .recall/ 作为共享团队记忆提交给不完全信任的协作者

这个 Agent 能做什么,适合哪些场景?

Recall 是一个为 Claude Code 设计的完全本地化插件,解决每次会话冷启动、需反复解释项目背景的问题。它通过 SessionStart、Stop 和 SessionEnd 钩子把会话活动增量追加到项目内 .recall/history.md,再用本地 TF-IDF + TextRank 摘要器生成约 1–2K 令牌的 context.md,供下次会话恢复上下文。整个过程无任何 LLM 调用、无网络请求、无 API 密钥,摘要算法(含 numpy 加速路径与纯 Python 路径)全部内置在 scripts/summarizer.py。除了 Claude Code 插件形式,还可通过安装脚本以选择性方式接入 opencode,两个工具可共享同一份 .recall/ 记忆。项目还内置脱敏、受限写入与 git 配置加固等安全机制,遵循 MIT 许可证。

会话进行中,Stop/SessionEnd 钩子运行 capture.py,把你的提示词、Claude 回复、触碰的文件和执行的命令增量追加到 .recall/history.md;会话开始时 session_start.py 加载 context.md 并询问是否恢复、是否继续记录。收尾时运行 /recall:save,make_context.py 调用 scripts/summarizer.py(TF-IDF 句向量 → 余弦相似度图 → TextRank PageRank 幂迭代 → 取前 N 句),并结合首条请求、文件、命令、git diff --stat 等确定性事实覆盖写入 context.md。也可配置 auto_save_context: "on_end" 在会话结束自动生成。命令包括 /recall:save、/recall:show、/recall:log。支持 opencode 的项目可运行 python3 ~/recall/scripts/install.py --opencode --project <路径> 生成捕获 shim、/recall-save 命令和 opencode.json 配置。

  1. 在订阅计划下长期使用 Claude Code 的开发者,希望省下重复解释项目的令牌开支
  2. 跨多天、多会话推进同一项目的工程师,需要快速恢复上次进度和待办事项
  3. 对隐私敏感、代码和路径不能发送到外部 API 的团队或个人
  4. 同一仓库混用 Claude Code 和 opencode 的开发者,希望共享同一份会话记忆
  5. 希望把 .recall/ 提交为团队共享记忆、供成员互相接续工作的小型团队(需信任仓库写入者)

如何安装或部署这个 Agent?

从 marketplace 安装(在 Claude Code 中执行):

/plugin marketplace add raiyanyahya/recall
/plugin install recall@recall

本地开发方式(无需安装步骤):

claude --plugin-dir /path/to/recall

opencode(每项目一次性):

git clone https://github.com/raiyanyahya/recall ~/recall
python3 ~/recall/scripts/install.py --opencode --project /path/to/your/project

无需 pip install:摘要器内置,仅标准库(numpy 为可选加速)。在订阅登录下运行即可;若 claude 报 "Invalid API key",用 unset ANTHROPIC_API_KEY 清除干扰变量。

如何使用这个 Agent?

  1. 正常开始一个 Claude Code 会话,Recall 会展示 context.md 并询问是否恢复及是否记录。
  2. 正常工作,Stop/SessionEnd 钩子自动追加会话活动到 .recall/history.md。
  3. 结束前运行 /recall:save 生成/覆盖 context.md(或在 recall.config.json 中设置 auto_save_context: "on_end" 自动生成)。
  4. 新开会话即可从紧凑摘要恢复,无需重新解释项目。

其他命令:/recall:show 打印 context.md,/recall:log 查看 history.md。可选在项目根放置 recall.config.json 覆盖默认值(输出目录、摘要句数、脱敏、git 集成等);创建 .recall/.capture-paused 可暂停记录。

这个 Agent 有哪些优点和局限?

优点
  • 完全离线、零模型令牌成本:摘要由本地 TF-IDF + TextRank 生成,不调用任何外部模型或 API
  • 隐私保证明确:无网络调用、无 API 密钥,写入前对 API 密钥、token、.env、PEM 等做尽力脱敏
  • 恢复成本低:约 1–2K 令牌的紧凑 context.md,对比 --resume 重放完整会话记录
  • 跨 harness 可移植:.recall/ 是纯 markdown,Claude Code 与 opencode 可共享同一份记忆
局限
  • 摘要是抽取式算法而非 LLM 生成,表达质量和语义压缩能力受限于 TF-IDF + TextRank
  • opencode 支持依赖其公共 CLI(session list、export、插件事件 API),opencode 快速迭代可能导致捕获静默失效
  • opencode 路径通过 instructions 加载 context.md,缺少 Claude Code 的不可信数据围栏,提交共享记忆时需额外谨慎
  • Codex 等其他 harness 尚不支持,需要自行基于适配层开发
  • 脱敏为尽力而为而非保证,提交 .recall/ 前需人工审查

这个 Agent 与同类方案有什么区别?

README 明确与 Claude Code 内置方案对比:CLAUDE.md(# 快捷方式)是手写的规则与指示,需人工维护,不记录实际会话内容;--continue/--resume 重放完整历史会话,令牌开销大且绑定单机;上下文压缩只在会话内部进行,不是持久的跨日记录。Recall 定位为填补三者之间的空白:自动、确定性地记录每次会话,并压缩为紧凑的恢复点。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Recall — Claude Code 本地项目记忆插件 当前 66 · 存在缺口 Agent 插件 / 技能免费 ★ 764 1 个月前 Python Claude Code
Compartment 76 · 表现良好 命令行工具免费 ★ 577 4 天前 Python Codex · Claude Code
Screenpipe 49 · 缺口较多 桌面应用免费版 + 付费版 ★ 22k 1 天前 Rust ChatGPT · Claude Code
Claudexor 76 · 表现良好 命令行工具免费 + 模型费 ★ 518 今天 TypeScript Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
66/ 100 五分制 3.3 / 5
信任安全 19/29
可靠稳定 8/14
适用触发 12/18
规范维护 14/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全19 / 29 · 3.3/5

README 与 SECURITY.md 详述最小权限设计(写入限定 output_dir、O_NOFOLLOW、加固 git 子进程、仅读当前项目 transcript),并有测试佐证脱敏与增量捕获;但核心脚本(common.py、redact.py 等)不在本次证据内,安全声明主要靠文档与部分测试支撑,故各信任项记 2 而非满分。SessionStart 询问恢复与记录的问题、.capture-paused 暂停、卸载选项提供用户控制。

可靠稳定8 / 14 · 2.9/5

各文件叙述自洽(README、SECURITY、pyproject、测试一致),无运行时依赖、numpy 双路径均有 CI 矩阵覆盖,故自洽与依赖可得记 2;失败信息方面,钩子刻意静默 no-op、文档少有面向用户的错误提示(仅提及 save 输出显示哪条路径),记 1。

适用触发12 / 18 · 3.3/5

受众(本地订阅用户)、场景(Claude Code 主路径 + opencode 可选)、触发机制(Stop/SessionEnd/SessionStart 钩子)描述清晰;能力边界诚实(opencode 无围栏、可能静默失效);环境(Python 3.9–3.13、numpy 可选)覆盖良好,但均为文档断言,静态证据记 2。

规范维护14 / 18 · 3.9/5

信息架构(Layout 图)、安装说明(marketplace/本地/opencode 三路径)非常完整,记 3;已知限制坦率(best-effort 脱敏、opencode 漂移),记 3;MIT LICENSE 齐全记 3。扣分点:无 CHANGELOG、未见插件版本号(plugin. 未提供证据),版本化记 1;命名一致但无历史稳定性证明记 2;维护责任有 CONTRIBUTING/SECURITY 模板但维护者身份未验证记 2。

有效结果9 / 13 · 3.5/5

输出为可 diff 的明文 markdown(history/context 分离),可用性记 2;相对 CLAUDE.md/--continue 的边际价值论证清楚但未执行验证记 2;零 token 成本声明与本地算法一致,成本收益记 2,均因无法运行核实而保守。

证据核验4 / 8 · 2.5/5

声明可追溯到命名文件(common.py:git_info 等),但被引用脚本不在证据内,无法核对,记 1;README/SECURITY/测试跨源一致记 2;事实与推断分离做得好(明确'best-effort 不是保证'),记 2。

风险与缓解建议
  • 本次为静态评审,未执行任何代码;安全声明(脱敏、写入限定、git 加固)依赖文档与部分测试,核心脚本未在证据内核对。
  • 脱敏为 best-effort,提交 .recall/ 前应人工检查是否含密钥。
  • 若将 .recall/ 作为团队共享记忆提交,存在 prompt 注入风险;opencode 路径无不可信数据围栏,更需谨慎。
  • 无 CHANGELOG 与可见版本号,升级时难以追踪变更;发布者未经验证,采用前请自行审计脚本。
  • 钩子失败时静默 no-op,捕获可能在无提示的情况下中断,请定期核对 history.md 是否更新。
证据充分度:低 评估于 2026年9月10日 审查版本 e65cb1e406fe
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.4.0 Recall 0.4.0 — OpenCode support (opt-in)
    发布说明摘录
    Recall now works with [opencode](https://opencode.ai) — the same fully-local memory (.recall/history.md + context.md), captured from opencode sessions instead of (or alongside) Claude Code. Requested in #10. Claude Code users: nothing changes. Claude Code remains the first-class harness. The hooks, commands, and manifest are untouched, and the opencode path activates only if you explicitly run the installer. Update as usual via the marketplace. OpenCode support — one-time, per-project, reversible …
    在 GitHub 查看 ↗
  2. v0.3.6 Recall 0.3.6
    发布说明摘录
    Recall now works on a standard Windows install. Previously the plugin would install and the slash commands would appear, but **nothing was ever captured or surfaced** — every failure was swallowed by the defensive handling that keeps Recall from crashing a Claude Code session. Three independent Windows-specific bugs were responsible, all reported in #6 by @driano1221. 🪟 Fixed - python3 not found. The hooks and /recall:save invoked python3, which a standard Windows install doesn't provide, so capture and the session recap …
    在 GitHub 查看 ↗
  3. v0.3.5 Recall 0.3.5
    发布说明摘录
    Notes: Documentation release: adds a privacy policy. Added - Privacy policy (PRIVACY.md), linked from the README. Documents that Recall runs fully locally — no network access, telemetry, accounts, or third-party/model calls, and all output stays under .recall/ — and that the built-in secret redaction is a best-effort safety net, not a guarantee. No code changes — behavior is identical to 0.3.4. Full Changelog: https://github.com/raiyanyahya/recall/compare/v0.3.4...v0.3.5
    在 GitHub 查看 ↗

常见问题

使用 Recall 会额外花钱吗?
不会。摘要是本地 TF-IDF + TextRank 算法,不调用任何 LLM,捕获和更新记忆不消耗模型令牌;恢复时加载约 1–2K 令牌的 context.md,反而节省每次会话的令牌开支。
我的代码和会话记录会被发送到任何地方吗?
不会。Recall 无网络调用、无 API 密钥、无第三方模型,所有数据只写入项目内的 .recall/ 目录,写入前还有尽力脱敏(API key、.env、PEM 等常见密钥形态)。
如果克隆了不可信的仓库,会有安全风险吗?
Recall 做了多重防护:git diff/log 以禁用外部 diff、钩子和分页器的方式运行,output_dir 被强制限制在项目内,context.md 以不可信参考数据的形式注入。但若把 .recall/ 提交为团队共享记忆,仍有提示注入风险,默认 .gitignore 已忽略它。
没有 numpy 能用吗?
可以。numpy 只是可选加速器;若不可导入,会运行结果相同的纯 Python TextRank 实现,算法与结果一致,无需任何安装。
能在 opencode 或 Codex 上使用吗?
opencode 有官方的选择性支持,运行一次安装脚本即可自动接入;Codex 等其他 harness 暂不支持,但代码中预留了适配层(scripts/harness_opencode.py、make_context.py 的 --harness 参数),欢迎贡献。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents