文章摘要
Recall是一个为Claude Code提供完全本地化项目记忆的工具,能避免每次对话重复解释项目背景,节省token消耗,且完全离线运行。
文章总结
Recall:为Claude Code提供完全离线的项目记忆
核心功能
Recall是一个为Claude Code设计的插件,解决每次会话都需要重新解释项目的“冷启动”问题。它通过本地记录会话日志并压缩成摘要,实现持久化记忆——完全在本地运行,无需API密钥,不依赖外部模型,数据不会发送到任何地方。
主要优势
- 免费使用:摘要生成采用本地算法(TF-IDF + TextRank),而非调用LLM,不会产生额外费用
- 节省使用额度:两种方式节省:1)摘要本地构建,消耗零模型token;2)从紧凑的
context.md(约1-2K tokens)恢复,而非从头重新解释项目 - 隐私保护:会话记录(代码、路径、可能包含的密钥)永远不会发送到任何API
- 零摩擦:无需
pip install,无需运行本地模型,无需配置密钥,支持离线工作
工作文件
项目下的.recall/目录包含两个文件:
history.md— 日志文件,仅追加写入。记录每次会话的提示、Claude回复、操作文件和运行命令context.md— 摘要文件,由本地摘要器覆盖写入。包含目标、摘要、下一步/未完成事项、操作文件、上次进度
与Claude Code内置记忆功能的区别
| 功能 | 说明 |
|------|------|
| CLAUDE.md | 手动编写的规则和笔记,作为Claude遵循的指令 |
| --continue/--resume | 重放之前的完整对话,token消耗大 |
| Recall | 自动捕获会话日志+本地摘要,约1-2K tokens的紧凑摘要 |
简而言之:CLAUDE.md是“我希望你如何工作”;Recall是“我们上次做了什么,停在哪里”——离线生成,不消耗模型token。
工作流程
- 会话期间:通过
Stop/SessionEnd钩子增量追加活动到history.md - 会话开始:
SessionStart钩子展示context.md,询问是否从保存的上下文恢复 - 结束前:运行
/recall:save命令,本地摘要器读取history.md并写入context.md - 自动保存:设置
auto_save_context: "on_end",会话结束时自动生成context.md
摘要器原理
scripts/summarizer.py通过以下步骤提取最核心的句子:
- TF-IDF句子向量化
- 句子间余弦相似度图
- TextRank(PageRank迭代)评分
- 保留得分最高的N个句子(按原始顺序)
无需额外安装,numpy为可选加速器。
配置选项
recall.config.json可配置:输出目录、是否捕获历史、自动保存模式、摘要句子数量、是否脱敏、是否包含git信息等。
隐私与安全
- 无网络调用,无API密钥,无第三方模型
- 最佳努力脱敏常见密钥格式
- git命令禁用外部钩子和分页器
- 输出目录限制在项目内
- 会话记录仅限当前项目
安装方式
从市场安装:/plugin marketplace add raiyanyahya/recall
本地开发:claude --plugin-dir /path/to/recall
评论总结
评论总结
主要观点
1. 现有方案已足够(多数评论) - CLAUDE.md、AGENTS.md 或 README 文件已能有效管理项目上下文 - 工单系统(ticketing system)结合 CLAUDE.md 即可满足需求 - 关键引用: - "CLAUDE.md is already a good system for context window management" (gste) - "I never have to because I use a ticketing system the model goes through in addition to a CLAUDE.md file" (giancarlostoro)
2. 项目记忆可能引入噪音和过时信息 - 陈旧计划和失败的调试猜测会"毒害"后续会话 - 过多上下文填充无关信息反而降低模型性能 - 关键引用: - "Stale plans and failed debugging guesses can quietly poison an agent pretty fast" (felixlu2026) - "the more you fill that context with unrelated junk, the worse they perform" (SwellJoe)
3. 替代方案更优
- 使用状态文档(status_docs/)记录每日进展
- 通过"导师-学徒"模式让新旧会话直接对话
- 利用 Obsidian 等工具组织文档库
- 关键引用:
- "I just keep a folder called something like status_docs/... It's basically a project diary" (cootsnuck)
- "I had the idea of an oracle/apprentice... the new session would learn from the old session" (folays)
4. 项目本身存在局限 - 需要手动更新上下文是主要障碍 - 缺乏基准测试验证效果 - 可能记录过多"死胡同"信息 - 关键引用: - "the need to manually update the context is a huge hurdle" (cadamsdotcom) - "Are there any benchmarks/evals to back the claims?" (zihotki) - "I wonder if a lot of it doesn't end up detailing blind alleys" (anigbrowl)
5. 部分用户认为问题不存在 - 直接给任务即可,无需解释项目 - 简短会话、从新开始更高效 - 关键引用: - "I never had to explain my project. Just give it a task" (serial_dev) - "I'll typically have a bunch of short sessions... I start fresh" (mikeocool)
平衡性说明
评论呈现明显分歧:多数用户认为现有方案(CLAUDE.md、状态文档、工单系统)已足够,少数用户对项目记忆方案持开放态度但指出其局限性。项目在隐私保护和减少token消耗方面有亮点,但缺乏实证支持。