Callimachus Recall
把你在 Claude Code、Codex、Cursor、Gemini 等 11 种编码智能体里的全部对话,索引成一个本地可搜索的记忆库,避免重复解决已经解决过的问题。
技能仅读写 Callimachus 自身的索引与记忆,明确声明不编辑用户文件、不在用户项目执行命令;SECURITY.md 披露了本地优先的数据流(密钥在系统钥匙串、仅用户显式选择时出网),写操作限定在四个工具且有明确边界。扣分点:写入 AGENTS.md/CLAUDE.md(cal agents、SessionStart hook)以及记录决策会持久修改用户仓库文件,未要求显式用户确认;conversation history 属敏感数据,读取范围虽披露但无隔离/回滚说明。
SKILL.md 内部自洽:MCP 不可用时有 cal CLI 兜底,明确区分'空结果=未蒸馏'与'无历史',并给出降级路径(search_threads/get_thread),属于可诊断的失败反馈。扣分点:静态审查无法执行验证关键路径,21 个工具的参数与行为一致性仅有文档声明,技能本身无针对性测试或错误码说明。
触发条件写得非常具体('did before'、'what did we decide'、开场加载 project memory 等),能力边界清楚(仅读写自身索引、需要 Ollama/云密钥才有语义召回、Cursor 无项目路径等)。扣分点:仅英文文档;fastembed 首次需从 Hugging Face 下载嵌入模型,且 Ollama Cloud/云 API 依赖海外服务,对中国大陆网络可达性存在风险,文档未提供镜像或离线方案。
frontmatter 规范(name/version/argument-hint),仓库有 AGPL-3.0 许可、changesets 版本管理、RELEASING.md、CONTRIBUTING.md、SECURITY.md 和明确的漏洞报告渠道,维护责任与更新路径(tag 触发的签名发布 + 自动更新)在 CI 中可查。扣分点:技能文件本身无 FAQ、无已知问题清单,`cal done` 与 `complete_todo` 等 CLI/MCP 命名不完全对齐,`-y` 作为 hybrid 开关的命名易与'确认'混淆。
核心任务(召回既往决策/会话并写回记忆)流程清晰:加载 project memory → 定向检索 → 读取全文 → 带引用总结 → 写回,比手动翻历史会话有明确边际价值,且含有用失败语义。扣分点:静态审查未验证输出可直接使用,ask_history RAG 质量与蒸馏依赖(本地 Ollama 或云密钥)使部分能力对未配置用户不可用,成本/收益证据不足。
仓库含真实 CI(ci.yml 跑 fmt/clippy/cargo test,build.yml 三平台构建签名)和 README 记录的 ignored 真实数据冒烟测试,MCP 注册表条目可交叉印证,主张与事实分离较好。扣分点:CI 测试针对 Rust 核心,并不覆盖本技能文件的关键路径(MCP 工具编排、CLI 兜底流程),无第三方执行证据,静态上限 5 之下再扣。
- 技能依赖已安装并初始化的 Callimachus 应用;若未索引历史,多数工具返回空结果,技能已提示会降级为普通检索,但仍需用户自行完成索引与语义索引构建。
- record_decision/record_gotcha/cal agents 会持久写入 Callimachus 记忆或修改仓库内 AGENTS.md/CLAUDE.md,建议使用前确认受管块不会覆盖手工维护的内容。
- 首次构建语义索引需从 Hugging Face 下载嵌入模型,Ollama Cloud/云 LLM 依赖境外服务,中国大陆网络环境下可能不可达或缓慢;纯关键词检索与本地 Ollama 路径不受影响。
- 发布者为未验证的独立开发者(BetaBots LLC / Ari Shaller),AGPL-3.0 + 商业双许可;企业使用需评估 AGPL 合规义务。
这个 Skill 能做什么,适合哪些场景?
Callimachus 是一个本地优先的桌面应用(Tauri 2 + Rust),把你所有 AI 编码智能体的历史会话统一索引进一个本地 SQLite 库,支持关键词(FTS5/BM25)与设备端语义(sqlite-vec)混合检索。它自带 MCP 服务器、cal 命令行工具和 VS Code 扩展,让智能体、终端和编辑器都能查询同一份索引。recall 技能教智能体在开始任务前先查历史:读取项目决策、踩坑记录和未完成 TODO,避免重新争论已定事项或重蹈覆辙。索引与隐私完全留在本机,API 密钥存于系统钥匙串。
索引 11 种编码智能体(Claude Code、Codex、Cursor、Gemini CLI、Qwen Code、Goose、OpenCode、Continue、Cline、Roo Code、Kilo Code)的会话到本地 SQLite;提供 21 个 MCP 工具(17 读 4 写):search_threads、project_memory、recall_decisions、recall_gotchas、find_prior_work、ask_history(带引用的 RAG)、threads_for_file、check_decision 等,写入工具仅写 Callimachus 自身记忆(record_decision、record_gotcha、complete_todo、snapshot_session);提供 cal CLI(search、ask、memory、files、check、remember 等)与 VS Code/Cursor 扩展侧边栏。
- 开发者使用多个 AI 编码工具,想问"我们之前怎么解决 X 的"而不用翻原始记录
- 接手一个有历史包袱的仓库,想先加载项目已定决策、已知坑和未完成 TODO 再动手
- 即将做一个技术选型(如换向量索引),想先确认团队是否已经定过这个决定及其理由
- 编辑某个文件前想找出哪些历史会话讨论过它、产出了哪些 commit
- 用 Claude Code 的用户,想在压缩上下文或跨工具切换时用快照(snapshot/resume)接续会话
这个 Skill 有哪些优点和局限?
- 跨 11 种工具的统一本地索引,数据不离开本机,密钥存系统钥匙串
- 混合检索(BM25 + 本地 sqlite-vec 语义)且提供文件路径检索与 thread→commit 关联
- MCP 服务器、CLI、VS Code 扩展共用同一 index.db,双向读写(智能体可回写决策/踩坑)
- 蒸馏功能可走本地 Ollama 或已登录的 Claude Code/Codex CLI 订阅,无需 API key;开源 AGPL-3.0 并提供商业许可
- 决策、踩坑、RAG 等高价值功能依赖可选的 LLM 蒸馏,未蒸馏时这些字段为空,易误判为"没有历史"
- Cline/Roo/Kilo 仅可索引不可 Resume;Cursor 线程无项目路径;"Open in CLI"在 Windows/Linux 尚不支持
- 搜索依赖已安装的桌面应用或本地构建,纯 API 环境无法独立使用
- 后台索引有延迟,最新会话可能尚未嵌入(需用非 hybrid 关键词搜索兜底)
如何安装这个 Skill?
1) 从 GitHub Releases 下载安装桌面应用(macOS .dmg / Windows .msi / Linux .AppImage/.deb),首次启动后点 Reindex 索引各来源,再 Build semantic index 启用语义搜索。2) 将 MCP 服务器接入任意 MCP 客户端:claude mcp add callimachus -- npx -y callimachus-mcp。3) 把本 skill 放在 apps/desktop/src-tauri/resources/recall/(随应用捆绑于 .claude/skills/recall)。构建方式未在来源中逐步说明,需自行用 pnpm install && pnpm desktop:dev。
如何使用这个 Skill?
在智能体中说"我之前是不是做过……"或直接调用 /recall [要回忆的内容]。智能体优先用 MCP 工具:先 project_memory 加载项目记忆,再 search_current_project 限当前仓库,必要时 search_threads(hybrid: true) 全局模糊检索,或 ask_history 得到带 [thread N] 引用的综合答案;开始新任务前用 find_prior_work / check_decision。没有 MCP 时用 cal CLI:cal search "关键词" -y、cal ask "问题"、cal memory 等。写回用 cal remember decision "……" --because "理由"。