Recall

Claude Code 的完全本地项目记忆系统,用 TextRank 算法自动生成会话摘要,零 token 成本实现 Agent 持久记忆

📅 收录: 2026-06-23 🔄 更新: 2026-06-23

Recall 快速入门

让 Claude Code 记住上次做到哪了——完全离线、零 token 成本、即装即用

这是什么?适合谁?

Recall 是 Raiyan Yahya 开发的 Claude Code 插件,解决 Claude Code 的”冷启动”问题:每次新会话开始,Claude Code 不记得你上次做了什么,你需要重新解释项目背景。Recall 在本地记录你的会话日志,并用纯 Python 实现的 TextRank 摘要算法自动生成项目上下文摘要,下次启动时 Claude Code 可以直接从摘要中了解项目进展。

核心机制:Recall 通过 Claude Code 的 Hook 系统(SessionStart/Stop/End)在后台记录每次会话的对话内容、修改的文件和执行的命令,保存到 .recall/history.md。当你运行 /recall:save 时,内置的 TF-IDF + TextRank 摘要器会从历史日志中提取最关键的句子,生成 .recall/context.md。新会话启动时,Claude Code 加载这个仅 1-2K token 的摘要,就能快速恢复上下文——不需要重放完整对话,不需要消耗 API token 做摘要,完全在你的机器上运行。

与 Claude Code 内置记忆功能的区别:

  • CLAUDE.md / # 快捷键是你手写的规范和偏好,Recall 是自动记录的”上次做到哪了”
  • --continue / --resume 重放整个对话,token 消耗大;Recall 只提供约 1-2K token 的精简摘要
  • Context compaction 是会话内的压缩,不持久化;Recall 提供跨会话的持久记忆

Recall 适合两类人:一是经常用 Claude Code 做多会话项目的开发者,用它避免每次都重新解释项目;二是对隐私要求极高的团队——Recall 完全不联网,对话数据不会离开你的机器。

不适合的场景:如果你只用 Claude Code 做简单的一次性任务,或需要多模型支持的跨平台记忆(Mem0 更合适),Recall 的 Claude Code 专属定位可能不够用。

准备工作

  • 前置依赖:已安装 Claude Code(桌面版或 CLI 版),Recall 作为插件运行在 Claude Code 之上
  • Python 环境:需要 Python 3.8+。Recall 的摘要器使用纯 Python 标准库(numpy 是可选的加速器,不是必需)
  • 付费要求:零费用。Recall 完全免费,MIT 开源协议。不调用任何外部 API,不消耗额外 token
  • 网络要求:完全离线可用。Recall 不发起任何网络请求
  • 存储空间:每个项目的 .recall/ 目录通常几 KB 到几十 KB,取决于会话历史长度

3 步快速上手

第 1 步:安装插件

在 Claude Code 中运行:

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

不需要 pip install——摘要器代码已内置在插件中。安装完成后,Recall 的 Hook 会在后台自动运行。

第 2 步:正常工作一个会话

像往常一样使用 Claude Code 写代码、调试、讨论项目。Recall 在后台自动将你的对话、修改的文件、执行的命令追加到 .recall/history.md。你可以运行 /recall:log 查看当前的会话日志。

如果你不想记录某个会话,可以创建 .recall/.capture-paused 文件来暂停日志记录,删除该文件即可恢复。

第 3 步:保存摘要,下个会话恢复

会话结束前,运行 /recall:save,Recall 的本地摘要器会分析 history.md 并生成 .recall/context.md。你也可以在 recall.config.json 中设置 "auto_save_context": "on_end",让 Recall 在每次会话结束时自动生成摘要。

下次启动 Claude Code 进入同一项目时,Recall 会自动加载 context.md,Claude Code 会询问你是否要从上次的上下文恢复。你不需要重新解释项目——Claude 已经知道上次的目标、进度和下一步计划。

常见踩坑

踩坑 1:在 Windows 上 python3 找不到

  • 症状:运行 /recall:save 时报错 “python3 not found”
  • 原因:Windows 上 Python 命令通常是 python 而非 python3
  • 解决:Recall v0.3.6 已修复此问题(自动检测 python vs python3)。如果你用的是更早版本,升级到最新版即可;或者在 PowerShell 中创建 python3 别名

踩坑 2:摘要内容看起来”断断续续”

  • 症状:生成的 context.md 中句子不连贯,像从不同地方抽出来的
  • 原因:TextRank 是抽取式摘要——它从原文中挑选重要句子,而不是重写。如果会话本身跳跃性很大,摘要也会反映出这种跳跃
  • 解决:这不是 bug,是抽取式摘要的特性。如果你需要更连贯的摘要,可以手动编辑 context.md,或者在会话中使用更结构化的对话(明确说出目标、进展、下一步)

踩坑 3:context.md 在 Git 中被忽略

  • 症状:想把 .recall/ 提交到团队仓库做共享记忆,但 .gitignore 默认忽略了它
  • 原因:Recall 的默认 .gitignore 配置将 .recall/ 排除在外,因为对话历史可能包含敏感信息
  • 解决:编辑 .gitignore,注释掉 .recall/ 那一行。但提交前务必检查 history.md 中是否包含 API key 或密码(Recall 的 redact 功能会尽力过滤,但不是 100% 可靠)

踩坑 4:ANTHROPIC_API_KEY 导致 Claude Code 报错

  • 症状:安装 Recall 后 Claude Code 显示 “Invalid API key”
  • 原因:这与 Recall 无关——是你环境中的 ANTHROPIC_API_KEY 环境变量过期了,覆盖了 Claude Code 的订阅登录
  • 解决:unset ANTHROPIC_API_KEY(或 env -u ANTHROPIC_API_KEY claude ...)清除这个环境变量

初级用法

1. 三个核心命令/recall:save(生成摘要)、/recall:show(查看摘要)、/recall:log(查看会话日志)。这是你日常用得最多的三个操作。

2. 配置文件定制:在项目根目录创建 recall.config.json,可以调整摘要长度(summary_sentences,默认 8 句)、自动保存(auto_save_context)、敏感信息过滤(redact,默认开启)、以及是否包含 git diff --statinclude_git)。完整配置项见 README

3. 暂停日志记录:有时候你可能在做探索性的临时操作,不想污染项目记忆。在 .recall/ 目录下创建空文件 .capture-paused 即可暂停记录,删除该文件恢复记录。

高级玩法

1. 共享团队记忆:将 .recall/ 提交到 Git 仓库,团队成员都能从彼此的最后进展中恢复上下文。注意:Recall 在 SessionStart 时将 context.md 标记为”不受信任的参考数据”并让 Claude 询问后再使用——这是为了防止恶意提交者通过修改 context.md 进行 prompt injection。如果团队中不是所有人都完全可信,保持 .recall/ 被 git-ignore。

2. 结合 CLAUDE.md 使用CLAUDE.md 写”项目规范”(如代码风格、测试要求),Recall 记录”项目进展”(上次改了什么、卡在哪里)。两者互补——Claude Code 启动时会同时加载 CLAUDE.md 和 Recall 的 context.md,前者作为指令,后者作为参考。

3. 本地开发调试:如果你想修改 Recall 的功能或调试 Hook 行为,可以绕过市场直接加载本地插件:

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

插件包含完整的测试套件和基准测试:

pip install pytest ruff bandit   # bandit 可选
ruff check scripts tests benchmarks
pytest
python benchmarks/bench.py       # 性能和质量指标

参考链接

📊 评分与标签

评分说明

总分 7.5/10 · S_入选

📊 可观测社区指标(数据核验日期:2026-07-06)

  • GitHub: raiyanyahya/recall ★678, 🔱41, 19 commits, 2 issues, 1 PR
  • CI/CD: Actions CI 和 CodeQL 均通过(绿色 badge)
  • 代码覆盖率: Codecov 启用中,详细覆盖率需登录查看
  • 语言: Python · 协议: MIT · 最新版本: v0.3.6 · 最近提交: 2026-06 下旬

⚙️ 功能完整度 1.7/2.5

  • 核心功能覆盖 Claude Code 会话记忆的完整链路:自动记录(SessionStart/Stop/End Hook)→ 本地摘要(TF-IDF + TextRank)→ 上下文恢复(SessionStart 加载 context.md)
  • 摘要器支持纯 Python 标准库运行,numpy 作为可选加速器(自动检测,有就用,没有也能跑),输出一致性通过基准测试保证
  • 配置文件支持 7 个可定制项:输出目录、日志开关、自动保存、摘要长度、敏感信息过滤、Git 集成、输入上限
  • Git 集成:自动包含 git diff --stat 和最近提交记录到 context.md
  • 缺失功能:不支持多模型(仅 Claude Code),无会话搜索/检索,无标签或分类系统,摘要不可编辑后重新生成
  • 对比 Mem0:Mem0 支持多模型(OpenAI/Claude/Gemini 等)、向量化记忆存储、API 调用,功能丰富度远超 Recall,但需要网络和 API key;Recall 胜在完全本地且零成本
  • 对比 Claude Code 官方 Memory 功能:官方 Memory 是跨项目的用户级偏好记忆,Recall 是项目级会话日志,两者定位不同。官方 Memory 功能更完善(自动学习偏好),Recall 更轻量和可控

✨ 输出质量 1.5/2.5

  • TextRank 抽取式摘要从原文中挑选最重要句子,保持原始措辞不引入幻觉,但摘要流畅性和连贯性不如 LLM 生成式摘要
    • 来源:README 算法说明 — TF-IDF 句子向量 → 余弦相似度图 → PageRank → Top-N 句子
  • 内置基准测试套件(benchmarks/bench.py)对摘要质量进行门控检查,--check 模式可断言质量不变量并在 CI 中运行
  • 摘要长度仅 1-2K token(默认 8 句),极度精简。对于复杂的长会话,8 句可能不足以覆盖所有关键信息
    • 可通过 summary_sentences 配置调整(但设太高会稀释摘要质量,TextRank 的核心句子数量有限)
  • 对比 Mem0:Mem0 使用 LLM 做生成式摘要和向量检索,输出更连贯、可搜索,但依赖外部 API 且有 token 成本
  • 对比 Session Scribe(另一个 Claude Code 会话记录工具):Session Scribe 只做日志记录不做摘要,Recall 多了摘要层但质量受限于 TextRank 算法

🖐️ 易用性 1.3/1.5

  • 安装极简:两条命令完成市场注册和安装,无需 pip install、无需配置 API key
  • 零配置即可使用:安装后立即开始记录,默认行为合理(8 句摘要、开启 redact、开启 git 集成)
  • 三个命令覆盖全部操作(/recall:save /recall:show /recall:log),学习成本极低
  • 自动保存模式(auto_save_context: "on_end")让用户完全不需手动操作
  • Windows 兼容性问题:v0.3.6 修复了三个 Windows 特有的 silent failure(python3 路径、路径编码等),此前 Windows 用户可能遇到摘要生成失败但不报错的问题
  • 对比 Mem0:Mem0 需要注册账号、获取 API key、安装 Python 包,上手门槛明显更高
  • 对比 Claude Code 官方 Memory:官方 Memory 零配置门槛最低,Recall 接近但需要一次安装

💰 性价比 1.5/1.5

  • 完全免费:MIT 开源协议,无任何付费墙或高级功能限制
  • 零运行成本:摘要过程不调用任何 LLM API,不消耗 token,不产生任何费用
    • 来源:README 描述 — “The summary is built locally, so capturing and updating your memory spends zero model tokens”
  • 对比 Mem0:免费版限 1000 次记忆操作/月,高级版 $99/月起,Recall 在成本上完胜
  • 对比 Claude Code 官方 Memory:官方 Memory 免费但无法跨项目共享会话级上下文,Recall 补充了这一缺口且零额外成本

🔒 稳定性 0.5/1.0

  • 版本尚在 0.x 阶段(当前 v0.3.6),共 19 次提交,属于早期项目,API 和功能可能变化
  • CI 持续集成通过(GitHub Actions),CodeQL 安全扫描通过,有测试套件
  • 作为本地插件运行,无”服务宕机”问题,但 Hook 系统依赖 Claude Code 的插件 API 稳定性
  • 维护活跃度:最近提交 2 周前(2026 年 6 月下旬),维护者响应节奏正常但不频繁
  • 对比 Mem0:Mem0 有企业级 SLA、专业团队维护,在稳定性上远超 Recall
  • 对比 Claude Code 官方 Memory:官方功能由 Anthropic 团队维护,稳定性无悬念

🛡️ 隐私安全 1.0/1.0

  • 完全离线:不发起任何网络请求、不需要 API key、不加载任何第三方模型
    • 来源:PRIVACY.md — “No credentials, ever. The plugin has zero references to API keys, auth, ANTHROPIC_*, or HTTP”
  • 敏感信息过滤:内置 redact 功能尽力过滤常见的 API key、token、.env 赋值、PEM 私钥等
  • 加固 Git 操作:git diff/log 执行时禁用 core.fsmonitor、外部 diff 工具、hooks 和 pager,防止恶意仓库通过 Git 配置执行代码
  • 写入限制:output_dir 强制限制在项目目录内,配置文件无法将输出重定向到绝对路径或上级目录
  • 会话隔离:每个项目的日志和摘要独立,不会混入其他项目的数据
  • 对比 Mem0:Mem0 将记忆数据发送到云端 API,即使加密传输也不及 Recall 的纯本地方案安全
  • 对比 Claude Code 官方 Memory:官方 Memory 同样上传到 Anthropic 服务器,隐私层面 Recall 在本地性上绝对领先

评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。

🏷️ 标签说明

  • 开源免费: MIT 开源协议,完全免费使用,无任何付费功能限制。来源:LICENSE
  • Agent: 为 Claude Code Agent 提供跨会话的持久记忆,解决 Agent 冷启动问题。来源:README
  • 本地: 所有数据处理在本地完成,零网络请求,无需 API key。来源:PRIVACY.md

📋 来源与核验记录

  • ✅ 已核验: GitHub raiyanyahya/recall(★678, 🔱41, v0.3.6, 19 commits, 2 issues, 1 PR, MIT license)
  • ✅ 已核验: GitHub CI Actions(CI workflow 和 CodeQL workflow 均 passing)
  • ✅ 已核验: raw README.md(功能描述、配置项、安全说明均已验证)
  • ⚠️ 未验证(需登录): Codecov 详细报告(需 GitHub 登录查看详细覆盖率数据)
  • ⚠️ 间接来源(二手数据): Mem0 定价来自 Mem0 官网定价页,编写时为公开信息,未 页面核验 逐项验证
  • ❌ 已删除死链: 无

同分类推荐

AI开发平台 分类下的其他工具

)}