Recall — Claude Code 本地项目记忆插件
让 Claude Code 拥有持久记忆:自动记录每次会话并生成离线摘要,告别每次重新解释项目、浪费令牌。
- Star 数
- ★ 764
- 最近更新
- 1 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 66/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Claude CodeCodex(不支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 在订阅计划下长期使用 Claude Code 的开发者,希望省下重复解释项目的令牌开支
- 不适合
- 需要 LLM 撰写摘要、追求语义压缩质量的团队
- 使用 Codex 或其他非 Claude Code/opencode 工具的开发者
- 需要把 .recall/ 作为共享团队记忆提交给不完全信任的协作者
- 源码审查
- 66/100 · 存在缺口
这个 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 配置。
- 在订阅计划下长期使用 Claude Code 的开发者,希望省下重复解释项目的令牌开支
- 跨多天、多会话推进同一项目的工程师,需要快速恢复上次进度和待办事项
- 对隐私敏感、代码和路径不能发送到外部 API 的团队或个人
- 同一仓库混用 Claude Code 和 opencode 的开发者,希望共享同一份会话记忆
- 希望把
.recall/提交为团队共享记忆、供成员互相接续工作的小型团队(需信任仓库写入者)
如何安装或部署这个 Agent?
从 marketplace 安装(在 Claude Code 中执行):
/plugin marketplace add raiyanyahya/recall
/plugin install recall@recall本地开发方式(无需安装步骤):
claude --plugin-dir /path/to/recallopencode(每项目一次性):
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?
- 正常开始一个 Claude Code 会话,Recall 会展示
context.md并询问是否恢复及是否记录。 - 正常工作,Stop/SessionEnd 钩子自动追加会话活动到
.recall/history.md。 - 结束前运行
/recall:save生成/覆盖context.md(或在recall.config.json中设置auto_save_context: "on_end"自动生成)。 - 新开会话即可从紧凑摘要恢复,无需重新解释项目。
其他命令:/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?
查看各维度的扣分理由
README 与 SECURITY.md 详述最小权限设计(写入限定 output_dir、O_NOFOLLOW、加固 git 子进程、仅读当前项目 transcript),并有测试佐证脱敏与增量捕获;但核心脚本(common.py、redact.py 等)不在本次证据内,安全声明主要靠文档与部分测试支撑,故各信任项记 2 而非满分。SessionStart 询问恢复与记录的问题、.capture-paused 暂停、卸载选项提供用户控制。
各文件叙述自洽(README、SECURITY、pyproject、测试一致),无运行时依赖、numpy 双路径均有 CI 矩阵覆盖,故自洽与依赖可得记 2;失败信息方面,钩子刻意静默 no-op、文档少有面向用户的错误提示(仅提及 save 输出显示哪条路径),记 1。
受众(本地订阅用户)、场景(Claude Code 主路径 + opencode 可选)、触发机制(Stop/SessionEnd/SessionStart 钩子)描述清晰;能力边界诚实(opencode 无围栏、可能静默失效);环境(Python 3.9–3.13、numpy 可选)覆盖良好,但均为文档断言,静态证据记 2。
信息架构(Layout 图)、安装说明(marketplace/本地/opencode 三路径)非常完整,记 3;已知限制坦率(best-effort 脱敏、opencode 漂移),记 3;MIT LICENSE 齐全记 3。扣分点:无 CHANGELOG、未见插件版本号(plugin. 未提供证据),版本化记 1;命名一致但无历史稳定性证明记 2;维护责任有 CONTRIBUTING/SECURITY 模板但维护者身份未验证记 2。
输出为可 diff 的明文 markdown(history/context 分离),可用性记 2;相对 CLAUDE.md/--continue 的边际价值论证清楚但未执行验证记 2;零 token 成本声明与本地算法一致,成本收益记 2,均因无法运行核实而保守。
声明可追溯到命名文件(common.py:git_info 等),但被引用脚本不在证据内,无法核对,记 1;README/SECURITY/测试跨源一致记 2;事实与推断分离做得好(明确'best-effort 不是保证'),记 2。
- 本次为静态评审,未执行任何代码;安全声明(脱敏、写入限定、git 加固)依赖文档与部分测试,核心脚本未在证据内核对。
- 脱敏为 best-effort,提交 .recall/ 前应人工检查是否含密钥。
- 若将 .recall/ 作为团队共享记忆提交,存在 prompt 注入风险;opencode 路径无不可信数据围栏,更需谨慎。
- 无 CHANGELOG 与可见版本号,升级时难以追踪变更;发布者未经验证,采用前请自行审计脚本。
- 钩子失败时静默 no-op,捕获可能在无提示的情况下中断,请定期核对 history.md 是否更新。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
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 查看 ↗ -
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 查看 ↗ -
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 会额外花钱吗?
我的代码和会话记录会被发送到任何地方吗?
.recall/ 目录,写入前还有尽力脱敏(API key、.env、PEM 等常见密钥形态)。如果克隆了不可信的仓库,会有安全风险吗?
.recall/ 提交为团队共享记忆,仍有提示注入风险,默认 .gitignore 已忽略它。