dsh-log-slicer
Verifieddsh-log-slicer · v0.1.8 · MIT
Slice one section out of a DeepSeek Harness session log: verbatim turns, images, catalog row, backups and a verification hash — one command, dry-run by default.
Install
dsh plugin add dsh-log-slicer Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Creators
Readme
dsh-log-slicer
把 DeepSeek Harness 的会话日志,切成"一节"能直接贴进笔记的东西。
一条命令:读日志 → 取原话 → 切一段 → 出正文 → 出目录行 → 备份旧样 → 出校验记录。默认 dry-run,不写盘。
30 秒上手
不用读完这篇,四步:
# 1. 看看日志里有什么(只读,随便跑)
dsh-log-slicer --list --limit 20
# 2. 从里面挑两句原话当锚点,试切一段(还是只读)
dsh-log-slicer --kind chat --title "试一下" \
--from "把 --list 里看到的一句原话粘这里" \
--to "另一句原话粘这里"
# 3. 看着像你要的东西了,指定文件写盘
dsh-log-slicer ... --file 我的笔记.md --index 目录.md --apply
# 4. 不确定它认没认对,就一直不加 --apply:dry-run 会把要写的东西整段打出来
写盘时它先在 旧版本/ 备份一份,再追加正文和目录行,最后打印一行校验记录;不满意就把 .bak 拷回去。
想装成插件:dsh plugin add dsh-log-slicer,装完多出 log_probe、log_slice 两个工具,功能一样。
它是什么 / 不是什么
- 是:一个取数工具。日志是唯一的来源,它把日志里某一段原话原封不动取出来,按你指定的体裁排版。
- 不是:摘要工具、压缩工具、记忆工具。它不总结、不改写、不替你判断哪段重要。
- 因为它只取数,所以它不通用于所有人——它认的是"一节"的写法:
**你:**/**我:**独占一行、三行头、目录行、校验行。这些格式来自某一套笔记法,不是通用标准。
安装
# 当插件装(DSH 里出现 log_probe / log_slice 两个工具)
dsh plugin add dsh-log-slicer
# 只用命令行,不装插件也行
npx dsh-log-slicer --help
用法
# 先看看日志里有什么(只读、便宜)
dsh-log-slicer --list --limit 40
# 切一节,先 dry-run 核对
dsh-log-slicer --kind chat \
--title "2026-10-31 ① 榫卯与第一栋房子" \
--from "我们开始今天的工作" --to "看看对你有没有帮助" \
--file "../闲话集/闲话集-8.md" --index "../闲话集/目录.md" --volume 闲话集-8
# 核对无误再写盘(会先备份到 旧版本/)
dsh-log-slicer ... --apply --tag "加 10-31 ① 之前"
--kind work 生成另一种体裁:三行头 + 引用块(他的话照抄)+ 我的判断标成判断。
锚点
--from / --to 要的是原话片段,不是行号——日志每天都在长。找不到时会列出最近的几句当候选,别猜行号。
输出契约
- 正文:
## 标题+ 轮次,逐字取自日志 - 目录行:
| 卷 | 标题 | 轮 | - 校验记录:
| 日期 | 文件(+N 轮) | 字节 | 哈希前16位 | 本体=原件,两处一致 | - 备份:
旧版本/<名字>(<动作之前>).bak(不带日期)
环境
- Node ≥ 22.15(要用
zlib.zstdDecompressSync)。DSH 自带的 Node 就够,DSH_NODE或直接用它的绝对路径。 - 日志位置:
$DSH_HOME/sessions/<workspace>/<sessionId>/session.v4.jsonl.zstd,默认$DSH_HOME是~/.dsh。 - 没有第三方依赖。
已知限制
- 依赖宿主的日志格式。
src/decode.js是唯一贴着格式的那一层,宿主改了只改这一处。 - 图片只给出
sha256与媒体类型,落盘要自己按附件仓路径复制(也可--apply后手工补「(图见 …)」)。 - 只认
user/message与assistant/message两种事件。
常见问题
跑起来说找不到日志。
默认去 ~/.dsh/sessions 找最新的那份。装在别处就设 DSH_HOME,或者直接 --log "C:\path\to\session.v4.jsonl.zstd"。
锚点找不到,报错还列了一堆候选。
锚点是原话片段,不是行号,也不是标题。复制时去掉句首句尾的空格和标点差异,或者先用 --list 把那条轮次整句抄下来。
切出来的节少了/多了几句。
--to 那一条要不要收进来,看它是不是"最后一句"。宁可切多几次,也不要一次切一大段:这东西本来就是按节用的。
Windows 下路径报错。
给路径加双引号,别用反斜杠转义(\\ 会变成转义符)。中文路径没问题。
图呢?
它只认出图片的 sha256 和类型,落盘要自己复制,然后在正文补一行 (图见 …)。不是漏做——"图放哪个文件夹、怎么编号"是笔记法的约定,不该写死进取数工具。
我不用 DSH,能用吗?
能,只要能拿到 session.v4.jsonl.zstd 并把它喂给 --log。它是纯 Node,没有别的依赖;但日志格式变了它也会跟着坏。
维护
不定期维护。坏了、要改、要适配新版本:欢迎 fork 或提 PR,别指望我按时修。MIT。