AI coding agent 用久以后,会留下另一种新型技术债:会话记录。

一次重构里,agent 可能解释过某个模块的边界;一次排障里,它可能定位过某个 flaky test;一次 code review 里,它可能总结过几个值得复用的判断。但这些信息通常散落在 Claude Code、Codex CLI、Gemini CLI、OpenCode 或不同 profile 的本地目录里。下一次再遇到类似问题,你很难快速找回那段上下文。

今天推荐的 paperboytm/spool 就是为这类本地会话历史做的资料库。它把多个 AI coding 工具的 session 汇总成一个可浏览、可搜索、可固定的桌面应用,并带有本地 secret 扫描能力。

发布时 GitHub 页面显示项目约 549 stars38 forks,主要语言是 TypeScript,许可为 MIT。项目仍处于早期活跃开发阶段;GitHub releases 显示最新版本是 Spool 0.5.2,发布时间为 2026-05-29。

项目概览

属性详情
仓库paperboytm/spool
定位本地 AI coding session library
Stars约 549
Forks38
主要语言TypeScript
许可MIT
Latest releaseSpool 0.5.2

它解决的是会话沉淀问题

很多团队现在已经不缺 agent 入口。真正的问题是:agent 每次都像从零开始。

你可能在上周的 Codex 会话里已经讨论过某个服务的边界,在昨天的 Claude Code 会话里已经让 agent 解释过某个迁移脚本,在 OpenCode 里留下过一次失败实验的完整过程。但这些记录如果只能按工具、按目录、按日期手动翻,就很难成为可复用的工程资产。

Spool 的核心思路很直接:扫描本机上各个 agent 的历史会话,把它们按项目聚合,再提供统一的浏览和全文搜索。README 里列出的来源包括 Claude、Codex、Gemini session 目录,以及 OpenCode 的 SQLite 数据库。

这不是要替代 agent 的工作区记忆,而是把已经发生过的会话变成一个可以检索的本地 archive。它更像是给 AI coding workflow 补了一层“个人操作日志索引”。

项目维度比按工具维度更实用

会话记录如果按工具分隔,价值会被切碎。真实工作通常是围绕一个仓库或一个项目展开,而不是围绕某个 agent 品牌展开。

Spool 会从 working directory 路径里推导项目,并在侧边栏里展示项目列表。主区域可以看到当前项目最近的 session 和固定的 session。这样你找上下文时不必先想“这段话当时是在 Claude 里,还是在 Codex 里”,而是直接回到项目。

这个设计对多 agent 用户尤其重要。很多人会根据任务切换工具:一个工具适合重构,一个工具适合解释,一个工具适合跑长任务。如果历史记录仍然停留在各工具自己的目录里,跨工具复盘会变得很笨重。

搜索是它的主功能,而不是附属功能

Spool 的 README 强调了 Cmd+K 全局搜索,可以在全部 archive 或当前项目范围内做全文检索。对开发者来说,这比“漂亮地列出聊天记录”更关键。

一个实际场景是:你记得 agent 之前分析过 auth callback,但忘了是哪一天、哪个工具、哪条分支。统一搜索可以直接从会话片段里找线索。另一个场景是:你想复用某次 prompt 或排障过程,搜索关键词比翻聊天列表更接近真实工作流。

README 还提到 AI mode 可以跨片段综合答案,以及 Claude Code 和 ACP agent 可通过 /spool skill 把匹配片段带回对话中。这里最值得关注的不是“再加一个 AI 总结”,而是 agent 可以回到你本机已有的历史证据,而不是只依赖当前窗口上下文。

本地优先让它适合保存敏感上下文

AI coding session 里经常含有不适合上传到第三方服务的东西:私有仓库路径、内部接口名、错误日志、临时 token 片段、客户数据样例,甚至是不小心贴进去的密钥。

Spool 的定位是 local-first。README 明确写到内容留在本机,不离开机器。它的索引层使用 SQLite 和 FTS5,桌面端是 Electron、React、Vite 和 Tailwind 组合。

这让它更像本地开发环境的一部分,而不是一个云端知识库。对于个人开发者,这意味着可以先把它当作私有检索工具;对于团队,则应该先明确哪些机器能保存 agent 会话、会话日志保留多久、如何处理离职或设备迁移。

Secret 扫描是一个实际加分项

Spool v0.5.0 之后默认开启本地安全扫描,用来发现会话 archive 里的 API key、token 和 PII。README 中还提到跨会话影响范围、从 archive 中清除值,以及面向主要供应商的 rotate-at-source 入口。

这个功能很现实。Agent 对话记录不是普通笔记,它们经常包含粘贴进去的 .env 片段、报错输出、curl 示例和临时访问凭证。即使这些内容从未离开本机,它们仍然可能在备份、屏幕共享、设备转手或日志同步时变成风险。

当然,本地扫描不等于绝对安全。正则和启发式检测会有漏报和误报。更稳妥的做法是把 Spool 的扫描当成第二道提醒,而不是替代密钥管理、最小权限和凭证轮换。

适合什么人先试

我会优先把 Spool 推荐给这几类用户:

  1. 同时使用 Claude Code、Codex CLI、Gemini CLI 或 OpenCode。
  2. 经常在多个仓库之间切换,事后需要找回 agent 分析过的上下文。
  3. 想把重要 session 固定起来,用作项目级操作记录。
  4. 已经意识到 agent 会话里可能混入 secret,希望做本地扫描。
  5. 愿意接受早期项目的粗糙边界,而不是期待完整企业知识库。

如果你只是偶尔用一次 agent,或者所有任务都发生在一个短会话里,Spool 的收益不会马上显现。它的价值来自积累:会话越多、工具越多、项目越多,统一索引才越明显。

需要注意的边界

Spool 仍然是早期项目。README 明确提示正在活跃开发,可能有 rough edges。它目前发布的是 macOS arm64 DMG 和 Linux x86_64 AppImage,也可以从源码构建;如果你的主力环境是 Windows,需要先确认是否适合自己的工作流。

另一个边界是数据治理。把更多会话集中索引之后,检索变方便了,敏感信息的集中度也提高了。使用前最好先看清楚默认扫描路径、数据目录和清理方式,避免把不想长期保留的会话纳入 archive。

最后,AI mode 的综合答案仍然应该回到原始片段核对。Spool 的可靠基础是本地索引和可追溯片段,而不是让另一个模型替你“记住一切”。

小结

paperboytm/spool 把 AI coding session 从零散聊天记录变成了一个本地可搜索资料库。它的重点不是制造新的 agent,而是帮助你找回已经发生过的 agent 工作:浏览项目、固定关键会话、全文搜索历史片段,并顺手检查 archive 里的敏感信息。

如果你已经把 agent 当成日常开发工具,而不是偶尔试用的新鲜玩具,Spool 值得放进工具箱。它解决的是一个正在变得普遍的问题:AI 帮你做过很多事,但你需要一种方法,把这些过程留在本机,并在需要时重新找到。