session-reader:跨智能体本地会话的只读读平面

前言

在 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 一次性调用,主要能力包括:

  1. 列表与范围:list、projects(跨智能体合并项目、可选周度统计与分页)。
  2. 单会话分层查看:overview(统计与落盘概览)→ turns(逐轮概要)→ turn(单轮正文与工具目录)。
  3. 工作区聚合:workspace 按当前目录跨智能体聚合;可加 --digest 输出统一故事线。
  4. 账本与检索:jobs、commands、files、errors、search(关键词检索,可走 SQLite 索引)。
  5. 索引维护:index 建立或刷新本地索引;全局 --no-index 可绕过索引直读源文件。
  6. 关系图: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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye