前言¶
用 Claude Code、Codex 或 DeepSeek Harness(DSH)做多轮开发时,同类问题往往在几天前的会话里已经查过日志、试过方案。会话 transcript 落在本机目录里,但分散在三套路径、格式也不完全一致,靠 grep 或翻文件夹很难快速对上「当时在哪个项目、用什么命令续聊」。
dsh-history-search 是维护者 mkpoli 发布的 DSH 插件(社区分类:记忆)。它在智能体侧提供一个只读的 history_search 工具,对三套 CLI 的 transcript 做统一检索,并返回匹配片段、工作目录以及各自的 resume 命令。下面介绍定位、安装与典型用法。
这是什么¶
一句话:dsh-history-search 让 DSH 上的模型用单一工具搜索 Claude Code、Codex 和 DSH 的本地会话 transcript,结果包含摘要、工作目录和恢复会话的命令。
| 来源 | 存储路径 |
|---|---|
| Claude Code | ~/.claude/projects/**/*.jsonl |
| Codex | ~/.codex/sessions/**/rollout-*.jsonl |
| DeepSeek Harness | ~/.dsh/sessions/**/session.*.jsonl* |
插件版本为 0.1.0(见仓库 package.json),许可证 MIT。社区目录页:https://www.skillhub.cn/plugins/mkpoli/dsh-history-search ;源码:https://github.com/mkpoli/dsh-history-search 。
核心功能¶
统一检索,只读¶
工具不会改写 transcript。命中后返回较新的若干条会话,每条带有摘录、claude --resume、codex resume 或 dsh tui --resume 等恢复方式说明。
查询参数¶
模型调用 history_search 时,常用参数如下(与 README 一致):
| 参数 | 含义 |
|---|---|
query |
字面词;多词时每个词须出现在同一条 transcript 记录内 |
source |
all(默认)、claude、codex、dsh |
project |
会话工作目录的不区分大小写子串 |
limit |
1–30 条,按时间从新到旧,默认 8 |
匹配不区分大小写。多词 query 要求全部词落在同一记录上,便于收敛到完整表述而非零散命中。
三套存储的读取方式¶
Claude Code 与 Codex 在原始路径上用 ripgrep 就地搜索,结果始终对应当前文件。
DSH 会话日志按批追加 zstd 帧;插件用 zstdcat 将每条日志解压到 ~/.dsh/cache/history-search/dsh/,仅在文件大小或 mtime 变化时刷新缓存。缓存为明文 JSONL,权限仅属主;随会话写入而更新。删除 ~/.dsh/cache/history-search 可腾空间,下次搜索会重建(README 称数百条会话大约需 10 秒)。
依赖与限制¶
运行环境需在服务器 PATH 上提供:
ripgrep(rg)zstd包中的zstdcat
缺失时工具会报错。搜索范围包括消息、推理、工具输入与工具输出中的文本;Base64 附件等二进制负载会跳过。Subagent 侧链会纳入,其 resume 命令指向父会话。较早的 DSH 会话 id 可能带 session- 前缀。
Node 引擎要求:^22.19.0 || >=24.0.0(见 package.json)。
安装与启用¶
DSH 生态是「一切皆插件」;SkillHub 等目录为社区站点,与 DeepSeek、幻方无官方从属关系。安装插件前建议浏览仓库源码与 LICENSE,并知晓插件随当前 DSH 进程权限读取本机 transcript 与缓存目录。
官方安装命令如下:
dsh plugin --profile web add github:mkpoli/dsh-history-search
安装后重启 DSH 宿主。插件通过 cordis.patch.yml 声明 bundle patch,挂载后会增加一条带默认配置的 history-search 项。
典型用法¶
在对话中让智能体检索历史即可,例如:
Search my history for the spectrogram rendering fix.
模型会调用 history_search,按你的自然语言意图填充 query,并可选择 source、project、limit。你无需手写工具调用;把要找的主题或关键词说清楚即可。
适用场景与注意¶
适合同时用 Claude Code、Codex、DSH 做本地开发、且希望在同一会话里让 DSH 模型「想起来」以前讨论过的修复或决策的开发者。不适合把 transcript 当作审计级全文检索:有多词同记录约束,且二进制附件不参与匹配。
插件只读本地文件;权限边界等于运行 DSH 的用户能读哪些 ~/.claude、~/.codex、~/.dsh 路径。
结尾¶
dsh-history-search 把三套 CLI 的会话历史收成一次工具调用,减轻「记得聊过、找不到在哪」的成本。安装用上述 dsh plugin --profile web add 命令,细节以 README 为准。
- 目录页:https://www.skillhub.cn/plugins/mkpoli/dsh-history-search
- GitHub:https://github.com/mkpoli/dsh-history-search