[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-106570":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":39,"updatedAt":40,"readmeContent":41,"aiSummary":10,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":42,"discoverSource":43},106570,"AgentHub","iamvicliu\u002FAgentHub","iamvicliu","把 Claude Code、Codex、Cursor 等 10 种 AI Agent 的本地会话汇到一处，统一搜索、阅读和管理（macOS，支持 Apple 芯片和 Intel 芯片）。","",null,"TypeScript",96,4,63,0,2,33,37,65.9,"MIT License",false,"main",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"ai-tools","claude-code","codex","cursor","deepseek-harness","developer-tools","electron","gemini-cli","hermes","local-first","macos","openclaw","opencode","pi","workbuddy","2026-10-21 04:43:15","2026-11-02 15:49:17","[简体中文](README.md) · [English](README.en.md)\n\n# AgentHub\n\n**把 Claude Code、Codex、Cursor 等 10 种 AI Agent 的本地会话汇到一处，统一搜索、阅读和管理。**\n\n用了好几个 AI 工具以后，想找回“上周那次是怎么解决的”，往往得挨个打开各个工具翻各家的历史记录。AgentHub 把这些会话收进一个列表：一次搜索就能搜遍所有 Agent，打开就能顺畅地读完整段对话。\n\n- **只读、不打扰**：读取各 Agent 写在本机的会话记录，不做 IDE、不管理 worktree，也不改你的代码。\n- **全部留在本机**：会话和索引都存在你的电脑上，不上传。\n- **macOS 桌面应用**，Apple 芯片（M1\u002FM2\u002FM3\u002FM4 等）和 Intel 芯片的 Mac 都能用，界面支持简体中文、繁體中文、English、日本語、한국어、Deutsch、Français。\n\n![AgentHub 会话列表：Claude Code、Codex CLI、Gemini CLI 的会话汇在一个列表里](docs\u002Fimages\u002Fzh-library.jpg)\n\n## 能做什么\n\n### 一个列表看全部会话\n\n- 所有 Agent 的会话混在一个列表里，可以按 Agent 筛选，筛选按钮上直接显示每个 Agent 有多少会话。\n- 按最近、最早、消息最多或标题排序；常看的会话可以置顶。\n- 每行显示最后活动时间、消息条数和模型。\n\n### 搜索\n\n- 同时搜索标题和正文，命中的词会高亮。标题命中排在前面，也可以改成按时间排。\n- 按 `⌘K` 随时启动搜索。\n\n![搜索结果，命中的词高亮显示](docs\u002Fimages\u002Fzh-search.jpg)\n\n### 阅读\n\n- 清楚区分“我”和 Agent 的消息。\n- **只看我的消息**：一键隐藏 Agent 的回复，快速回顾自己问过什么。\n- **消息目录**：列出你在这个会话里的每一次提问，点一下就跳过去；目录宽度可以拖动调整。\n- **会话内查找**：`⌘F` 查找，`⌘G` \u002F `⌘⇧G` 跳到下一个 \u002F 上一个；`⌘[` 返回列表，筛选和搜索都还在。\n- 系统提示、子 Agent 记录这类内部内容默认隐藏，需要排查问题时可以在设置里打开。\n\n![阅读会话，右侧是消息目录](docs\u002Fimages\u002Fzh-reader.jpg)\n\n### 管理\n\n- **改名**：给会话起个好记的名字。（Codex 和 Hermes 的会话改名会自动同步回原 Agent；其他 Agent 只改 AgentHub 里的名字）\n- **删除**：确认后把原始记录移进废纸篓，同时清理索引，误删了可以从废纸篓找回。\n- **在终端继续**：Claude Code、Codex、Gemini CLI、OpenCode、Pi 的会话可以一键在终端里接着聊。终端工具可以自动识别，也可以自己指定。\n\n### 自动同步\n\n- Agent 写入新内容后，大约 2 秒就会出现在 AgentHub 里，不需要手动刷新；底部状态栏会显示“正在更新列表…”。\n- 关掉窗口后 AgentHub 留在菜单栏继续同步；完全退出后，下次启动会自动补上这段时间的变化。\n- 手动点击左下角的同步状态，可以立即做一次完整同步。\n\n### 安全检查\n\n在本机扫描会话里可能泄露的 API 密钥、密码、私钥和个人信息，方便在截图、复制或分享对话之前先检查一遍。扫描只在本机进行，但不能代替你自己的判断。\n\n### Raycast 扩展：不开窗口也能搜\n\n配合 AgentHub 的 Raycast 扩展「AgentHub会话搜索」，在 Raycast 里就能直接搜遍所有 Agent 的会话：\n\n- 输入关键词即时搜索，也可以按 Agent 筛选；留空显示最近的消息。\n- 右侧预览消息正文，回车查看这条消息的前后文。\n- 一键「在 AgentHub 查看」：打开 AgentHub 并定位、高亮这条消息。\n- 还可以复制消息或会话 ID、在访达中显示原始记录；Codex 会话可以直接在 Codex 里打开。\n- 只读访问 AgentHub 的本地索引，不改数据、不联网。\n\n> Raycast 扩展需要另外安装，源码和安装步骤见 [AgentHub会话搜索](https:\u002F\u002Fgithub.com\u002Fiamvicliu\u002FRaycast-Extensions\u002Ftree\u002Fmain\u002FAgentHub-Search)。\n\n### 第三方 App 对接\n\n`agenthub:\u002F\u002Fsession\u002F...` 链接可以直接打开某个会话并高亮其中一条消息，方便从笔记、Raycast 等工具跳回来。\n\n## 支持的 Agent\n\n![设置里的数据源页面，列出 10 种 Agent 和各自的会话数](docs\u002Fimages\u002Fzh-sources.jpg)\n\n| Agent            | 搜索和阅读 | 在终端继续 | 在 AgentHub 删除原始会话  | 改名同步回原 Agent | 用真实会话实测 |\n| ---------------- | ---------- | ---------- | ------------------------- | ------------------ | -------------- |\n| Claude Code      | ✓          | ✓          | ✓（会话还在运行时会拒绝） | —                  | ✓              |\n| Codex CLI        | ✓          | ✓          | ✓                         | ✓                  | ✓              |\n| Cursor           | ✓          | —          | —                         | —                  | ✓              |\n| DeepSeek Harness | ✓          | —          | —                         | —                  | ✓              |\n| Gemini CLI       | ✓          | ✓          | ✓                         | —                  | ⚠️ 未实测      |\n| Hermes           | ✓          | —          | ✓（永久删除，不进废纸篓） | ✓                  | ✓              |\n| OpenClaw         | ✓          | —          | —                         | —                  | ⚠️ 未实测      |\n| OpenCode         | ✓          | ✓          | —                         | —                  | ✓              |\n| Pi               | ✓          | ✓          | ✓                         | —                  | ⚠️ 未实测      |\n| WorkBuddy        | ✓          | —          | ✓                         | —                  | ✓              |\n\n- 不支持删除原始会话的 Agent，在 AgentHub 里点删除会先弹出说明，不会误删。\n- 各 Agent 在自己应用里**归档**的会话，AgentHub 也不显示（WorkBuddy、DeepSeek Harness、Cursor、Codex）。\n\n> ⚠️ **以下内容还没有用真实数据实测过**，只用测试数据验证了读取格式，可能有问题，遇到了欢迎[反馈](https:\u002F\u002Fgithub.com\u002Fiamvicliu\u002FAgentHub\u002Fissues)：\n>\n> - **Gemini CLI、OpenClaw、Pi** 三个 Agent 的全部功能（搜索阅读、在终端继续、删除）。\n> - **OpenCode 和 Pi** 用 `agenthub:\u002F\u002F` 链接跳转到某条消息。\n> - Cursor 的命令行版（cursor-agent）的会话**不支持**，只支持 Cursor 编辑器里的对话。\n> - **Intel 芯片版**是在 Apple 芯片的 Mac 上交叉编译的，还没在 Intel 真机上运行过。\n\n## 安装\n\n1. 到 [Releases](https:\u002F\u002Fgithub.com\u002Fiamvicliu\u002FAgentHub\u002Freleases) 下载和你的 Mac 芯片对应的安装包：\n   - **Apple 芯片**（M1、M2、M3、M4 等）：`AgentHub-版本号-Apple-Silicon.dmg`\n   - **Intel 芯片**：`AgentHub-版本号-Intel.dmg`\n\n   不确定是哪种芯片：点屏幕左上角的苹果菜单 → 「关于本机」，「芯片」一栏写 Apple M 开头的就是 Apple 芯片，「处理器」一栏写 Intel 的就是 Intel 芯片。\n\n2. 打开 DMG，把 AgentHub 拖进“应用程序”文件夹。\n3. 第一次打开时，macOS 会提示“无法验证开发者”或“已损坏，无法打开”。这是因为安装包**没有经过 Apple 公证**，不是文件真的坏了。任选一种方式放行：\n   - 打开“系统设置 → 隐私与安全性”，在页面下方找到 AgentHub，点“仍要打开”；\n   - 或者在“终端”里运行下面这行，然后重新打开：\n\n     ```bash\n     xattr -dr com.apple.quarantine \u002FApplications\u002FAgentHub.app\n     ```\n\n也可以按下方“开发与打包”自己构建。\n\n## 数据与隐私\n\n- 所有数据都在本机：AgentHub 的索引和设置在 `~\u002F.agenthub\u002F`，会话原文仍由各 Agent 自己保存。\n- **改名**默认只改 AgentHub 里的名字，不动原 Agent 的记录（Codex、Hermes 例外，会同步回去）。\n- **删除**会删掉原始记录，不只是在 AgentHub 里隐藏。删除前请先关掉正在写这个会话的 Agent。\n- 某个 Agent 的数据目录暂时读不到时，AgentHub 不会清空它已有的索引。\n- AgentHub 基于开源项目 Spool 开发，代码里仍保留了上游的更新检查和云端分享相关代码（界面上已经没有入口），所以它不是完全不联网的应用。\n\n## 已知限制\n\n- 打开链接时用的是已建好的索引；会话原文刚改过的话，先同步一次再打开。\n- 会话原文被编辑、截断或重排后，指向其中某条消息的旧链接可能失效；AgentHub 会明确报错，不会跳到别的消息。\n- AgentHub 完全退出时，Raycast 扩展的新搜索可能需要先打开 AgentHub；已经搜出来的结果可以直接跳转。\n\n---\n\n以下是技术说明，普通使用可以跳过。\n\n## 技术说明\n\n### 各 Agent 的数据位置\n\n| Agent            | 默认读取位置                                                                                            | 可用的环境变量                                                 |\n| ---------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |\n| Claude Code      | `~\u002F.claude\u002Fprojects\u002F\u003C项目>\u002F\u003Cid>.jsonl`                                                                  | `SPOOL_CLAUDE_DIR`                                             |\n| Codex CLI        | `~\u002F.codex\u002Fsessions\u002F**\u002Frollout-*.jsonl`（及 `.jsonl.zst`）                                               | `SPOOL_CODEX_DIR`                                              |\n| Cursor           | `~\u002F.cursor\u002Fprojects\u002F\u003C工作区>\u002Fagent-transcripts\u002F\u003Cid>\u002F\u003Cid>.jsonl`，标题等取自 `globalStorage\u002Fstate.vscdb` | `CURSOR_DATA_DIR`、`SPOOL_CURSOR_DIR`、`SPOOL_CURSOR_STATE_DB` |\n| DeepSeek Harness | `~\u002F.dsh\u002Fsessions\u002F\u003C项目>\u002F\u003Cid>\u002Fsession.v\u003CN>.jsonl[.zstd]`                                                 | `DSH_HOME`、`SPOOL_DSH_DIR`                                    |\n| Gemini CLI       | `~\u002F.gemini\u002Ftmp\u002F**\u002Fchats\u002Fsession-*.json[l]`                                                              | `GEMINI_CLI_HOME`、`SPOOL_GEMINI_DIR`                          |\n| Hermes           | `~\u002F.hermes\u002Fstate.db`、`~\u002F.hermes\u002Fsessions\u002F*.jsonl`                                                      | `HERMES_HOME`、`SPOOL_HERMES_DIR`                              |\n| OpenClaw         | `~\u002F.openclaw\u002Fagents\u002F*\u002Fagent\u002Fopenclaw-agent.sqlite`、`*\u002Fsessions\u002F*.jsonl`                                | `OPENCLAW_STATE_DIR`、`SPOOL_OPENCLAW_DIR`                     |\n| OpenCode         | `~\u002F.local\u002Fshare\u002Fopencode\u002Fopencode.db`                                                                   | `OPENCODE_DATA_DIR`、`SPOOL_OPENCODE_DIR`                      |\n| Pi               | `~\u002F.pi\u002Fagent\u002Fsessions\u002F`                                                                                 | `SPOOL_PI_DIR`                                                 |\n| WorkBuddy        | `~\u002F.workbuddy\u002Fprojects\u002F\u003C项目>\u002F\u003Cid>.jsonl`                                                               | `WORKBUDDY_CONFIG_DIR`、`SPOOL_WORKBUDDY_DIR`                  |\n\n- 数据库类来源（Hermes、OpenClaw、OpenCode、Cursor 状态库）一律只读打开。\n- 子 Agent 的会话（Claude、WorkBuddy、DeepSeek Harness）不单独列出。\n- Codex：原始会话和续接分段合并成一个会话，列表与 Codex App 一致（以 Codex 自己的会话表为准）。Codex 开启 `features.local_thread_store_compression` 后，会把约 7 天未写入的会话压缩成 `.jsonl.zst`，AgentHub 两种格式都能读。\n- WorkBuddy：换过账号时旧账号的历史仍会收录，并在列表里标出账号；只有一个账号时不显示标记。\n- DeepSeek Harness：压缩转写由多个 zstd 帧拼接而成，逐帧解压。\n- Cursor：读取的是 Cursor 编辑器的数据；cursor-agent 命令行版的 `~\u002F.cursor\u002Fchats\u002F*\u002Fstore.db` 暂未接入。\n\n### 数据位置与标识\n\n- 索引数据库 `~\u002F.agenthub\u002Fagenthub.db`，设置、日志、备份也在 `~\u002F.agenthub\u002F`；开发模式用 `~\u002F.agenthub-dev\u002F`，可用 `SPOOL_DATA_DIR` 指定。\n- 应用配置目录 `~\u002FLibrary\u002FApplication Support\u002FAgentHub`。\n- 应用标识 `com.vicliu.agenthub`，链接协议 `agenthub:\u002F\u002F`，链接格式见 [本地会话链接](docs\u002Flocal-session-links.md)。\n\n### 开发与打包\n\n使用仓库声明的 pnpm 版本：\n\n```bash\npnpm install --frozen-lockfile\npnpm run rebuild:native:node\npnpm --filter @spool\u002Fapp typecheck\npnpm exec vp test run apps\u002Fapp\u002Fsrc packages\u002Fcore\u002Fsrc packages\u002Fsession-view\u002Fsrc --no-file-parallelism\npnpm run package:mac\n```\n\n- 目标平台为 macOS，Apple 芯片用 `pnpm run package:mac`，Intel 芯片用 `pnpm run package:mac:x64`。签名和公证需要你自己的开发者证书。\n- `better-sqlite3` 必须匹配运行时；切到 Electron 开发时运行 `pnpm run rebuild:native:electron`。\n- 不要使用上游的 `scripts\u002Frelease.sh`：它面向上游的 npm 包发布，AgentHub 只发布桌面应用。\n\n### 代码结构\n\n```text\napps\u002F\n  app\u002F          AgentHub 桌面应用（Electron）\n  cli\u002F          上游的命令行工具\n  web\u002F          上游的网站与在线阅读器\n  backend\u002F      上游的云端服务\npackages\u002F\n  core\u002F         本地会话读取、索引（SQLite）与全文搜索\n  redact\u002F       敏感信息检测\n  session-kit\u002F  会话数据模型与解析\n  session-view\u002F 会话渲染组件\n  share-kit\u002F    上游的分享与导出\n```\n\n## 致谢\n\nAgentHub 基于 [Spool](https:\u002F\u002Fgithub.com\u002Fspool-lab\u002Fspool) `v0.6.3` 开发，感谢上游作者的开源实现。AgentHub 保留原作者署名和许可证，与 Spool 官方无关联，也不是 Spool 的新版本。\n\n问题和建议请提交到 [Issues](https:\u002F\u002Fgithub.com\u002Fiamvicliu\u002FAgentHub\u002Fissues)。\n\n## License\n\nMIT\n\n## Trademark\n\n“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See [TRADEMARK.md](TRADEMARK.md).\n","2026-11-03 04:32:22","CREATED_QUERY"]