Spool - 把 AI coding 会话整理成本地资料库
AI coding agent 用久以后,会留下另一种新型技术债:会话记录。
一次重构里,agent 可能解释过某个模块的边界;一次排障里,它可能定位过某个 flaky test;一次 code review 里,它可能总结过几个值得复用的判断。但这些信息通常散落在 Claude Code、Codex CLI、Gemini CLI、OpenCode 或不同 profile 的本地目录里。下一次再遇到类似问题,你很难快速找回那段上下文。
今天推荐的 paperboytm/spool 就是为这类本地会话历史做的资料库。它把多个 AI coding 工具的 session 汇总成一个可浏览、可搜索、可固定的桌面应用,并带有本地 secret 扫描能力。
发布时 GitHub 页面显示项目约 549 stars、38 forks,主要语言是 TypeScript,许可为 MIT。项目仍处于早期活跃开发阶段;GitHub releases 显示最新版本是 Spool 0.5.2,发布时间为 2026-05-29。
项目概览
| 属性 | 详情 |
|---|---|
| 仓库 | paperboytm/spool |
| 定位 | 本地 AI coding session library |
| Stars | 约 549 |
| Forks | 38 |
| 主要语言 | TypeScript |
| 许可 | MIT |
| Latest release | Spool 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 推荐给这几类用户:
- 同时使用 Claude Code、Codex CLI、Gemini CLI 或 OpenCode。
- 经常在多个仓库之间切换,事后需要找回 agent 分析过的上下文。
- 想把重要 session 固定起来,用作项目级操作记录。
- 已经意识到 agent 会话里可能混入 secret,希望做本地扫描。
- 愿意接受早期项目的粗糙边界,而不是期待完整企业知识库。
如果你只是偶尔用一次 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 帮你做过很多事,但你需要一种方法,把这些过程留在本机,并在需要时重新找到。