前言¶
在 Claude Code、Codex、Grok、Antigravity 或 DeepSeek Harness 里做过事的人,迟早会遇到同一类问题:会话落在各自目录的 jsonl 里,格式不同、路径分散,想查「上次那个报错说了什么」只能手动翻文件。DSH 侧栏能看当前进程里的会话,但换工具、换机器或只想全文检索时,仍缺一层统一的本地浏览与搜索。
下面介绍社区插件 @1agents/session-reader(仓库 scottzx/session-reader):在 DSH Web 里打开「历史会话」,也可单独用 1session CLI 或 TypeScript 库。原始会话文件留在本机、只读不改动;SQLite 索引用来加速检索,必要时可从源文件重建。
这是什么¶
维护者为 scottzx,在 DSH 插件目录中归类为「记忆」。npm 包名 @1agents/session-reader,当前版本 0.11.1,MIT 许可证。
定位是 Read Plane(读平面):从本地原始会话文件发现会话、搜索原文、逐轮查看,并按工作目录聚合。不依赖 ACP 服务或常驻守护进程;浏览过程不修改原始会话。
覆盖的智能体与落盘位置¶
五种来源的会话会被归一为同一组事件类型:user / assistant / thinking / tool_call / tool_result。
| Provider | 典型落盘位置 | 工作区来源 |
|---|---|---|
antigravity |
~/.gemini/antigravity/brain/<uuid>/.system_generated/logs/transcript.jsonl |
run_command 的 Cwd 等 |
claude |
~/.claude/projects/<slug>/<session-id>.jsonl |
条目 cwd |
codex |
~/.codex/sessions/<YYYY>/<MM>/<DD>/rollout-*.jsonl |
session_meta / turn_context 的 cwd |
dsh |
~/.dsh/sessions/<slug>/session-<uuid>/session.v{2,4}.jsonl[.zstd] |
开篇 session 记录的 cwd |
grok |
~/.grok/sessions/<percent-encoded cwd>/<uuid>/chat_history.jsonl |
summary.json 的 info.cwd 等 |
DSH 压缩会话使用 zstd 分帧追加;插件在解析层按帧读取完整文件。Grok 的对话主文件不含时间戳时,会从同目录侧文件(如 events.jsonl、rewind_points.jsonl、updates.jsonl)按规则补全时间与工具结果。
核心功能¶
DSH Web¶
安装后包内 dsh.bundle.patch(README 中亦写作与 bundle 相关的 patch 配置)会在安装时启用插件。侧栏提供「历史会话」浏览器,五种来源均可只读浏览。
若要在 DSH 中继续 Claude、Codex、Grok 的原生会话(而不只是看历史),还需可选安装 @1agents/acp-service,并配置对应 Agent 的 CLI 与登录、保留原工作目录;DSH 来源可打开原 DSH 会话;Antigravity 目前以浏览为主。具体条件见仓库 README「在 DSH 中继续原会话」一节。
CLI 1session¶
同一套逻辑可作为全局命令或 npx 一次性调用,主要能力包括:
- 列表与范围:
list、projects(跨智能体合并项目、可选周度统计与分页)。 - 单会话分层查看:
overview(统计与落盘概览)→turns(逐轮概要)→turn(单轮正文与工具目录)。 - 工作区聚合:
workspace按当前目录跨智能体聚合;可加--digest输出统一故事线。 - 账本与检索:
jobs、commands、files、errors、search(关键词检索,可走 SQLite 索引)。 - 索引维护:
index建立或刷新本地索引;全局--no-index可绕过索引直读源文件。 - 关系图:
graph(别名related)查看会话间引用及证据。
内置 skill¶
1session skill install 可将内置 skill 链接或拷贝到五家智能体各自的 skills 目录,便于智能体在用户问「上次/之前/那个报错」时自行调用 CLI。默认符号链接,升级全局包后 skill 内容随包更新;若某家加载器不认符号链接,可用 --copy。README 明确:不要用 npx 跑 skill install(链接会指向 npx 缓存,可能被清理);应先 npm i -g @1agents/session-reader 再安装 skill。
安装与启用¶
环境¶
Node.js >= 22.15(使用 node:sqlite 建索引,node:zlib 的 zstd 读取 DSH 压缩会话)。已安装 DeepSeek Harness。
DSH Web 插件¶
在终端执行:
dsh plugin --profile web add @1agents/session-reader
dsh web
从 DSH 源码仓库运行时,可在上述命令前加 pnpm;使用其他 profile 时将 web 替换为对应名称。若 DSH Web 已在运行,安装或升级后需重启服务,再打开侧栏「历史会话」。
作为库或独立 CLI¶
npm install @1agents/session-reader # 作为库
npm install -g @1agents/session-reader # 作为 1session 命令
npx @1agents/session-reader list # 不安装直接用
传播给他人时,README 建议两行一并执行:
npm i -g @1agents/session-reader
1session skill install
典型用法¶
列出当前工作目录附近的会话¶
默认 --scope 与当前 pwd 相关,可按提供方与时间过滤:
1session list --limit 20
1session list --scope cwd --provider codex --since 24h --json
跨智能体看项目与会话¶
1session projects --page 1 --limit 20
1session projects --weekly --timezone Asia/Shanghai --page 1 --limit 4 --json
同一 Git 仓库、同一 origin 的克隆等会按 README 规则合并;目录迁移可用 --project-map projects.json 显式指定,不修改历史文件。
单会话从概览到某一轮¶
1session overview <session-id>
1session turns <session-id>
1session turn <session-id> 3
按目录聚合与全文搜索¶
1session workspace . --since 24h --digest
1session search "TypeError" --scope cwd --limit 50
1session index --all --scope global
首次搜索前可对范围执行 index;索引缺失或需强制刷新时使用 --force。
适用场景与注意¶
适合谁:经常在多家 CLI 智能体之间切换、需要在本机统一查历史对话与命令/文件账本的开发者;已在用 DSH Web、希望侧栏直接浏览本地 jsonl 的用户;希望把「查历史会话」能力写进各智能体 skill 的团队。
权限与安全:插件与 1session 均以当前用户权限读取 ~/.claude、~/.codex、~/.dsh 等目录下的会话文件。安装前应在 GitHub 仓库 查看源码与 MIT 许可证,确认符合本机数据策略。会话内容可能含密钥、路径与私有仓库信息,检索结果勿随意外传。
与生态的关系:DeepSeek Harness 采用「一切皆插件」的扩展方式;SkillHub 目录页 为社区收录站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
session-reader 把多家智能体的本地会话收成同一套只读读平面:DSH Web 侧栏浏览,或 1session 在终端做列表、分层阅读、工作区聚合与搜索;原始 jsonl 不动,索引可重建。需要插件说明与截图时见目录页与仓库 README。
- 目录页:https://www.skillhub.cn/plugins/scottzx/session-reader
- GitHub:https://github.com/scottzx/session-reader