为 DSH 原生会话加入完全只读、可脚本控制的历史回放,支持模拟用户输入、正放与倒放、逐事件移动、变速、空闲间隔压缩,以及按事件、轮次或记录时间直接跳转。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:CH4ACKO3/bites-the-dsh
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 简体中文
为 DeepSeek Harness WebUI 提供完全只读、可脚本控制的会话回放。
https://github.com/user-attachments/assets/3c9dfdcf-a454-4750-9edf-76771ed5a9a6
演示中同时使用了 Bites the DSH 与 dsh-turn-fold。
插件直接将原生会话切换为回放视图,不会打开新的面板。点击原生会话标题栏中的一个按钮即可进入回放。回放期间,会话完全只读:原生输入框以及会改变会话的操作都会被禁用,但界面和脚本仍可自由移动时间光标,不会修改源会话。
当前实现
- 原生会话标题栏入口与紧凑的回放控制组件。
- 支持暂停、正放、倒放、逐事件移动、倍速、可调的空闲间隔压缩,以及按事件、轮次或时间直接跳转。
- 可选的模拟输入会在原生只读输入框中预览下一条用户直接输入的消息,不会触碰实时草稿。
- 通过
ctx.sessionPlayback暴露每会话可观察控制器,供脚本单独控制时间。 - 使用 DSH 原生
ChatView构建历史投影;源会话与实时头部仍会独立继续更新。 - 历史时间线提供
playbackClock: { kind: 'historical', time: cursorTime },避免投影消费者将历史中尚未结束的轮次误认为实时任务。 - 回放期间禁用原生输入框、模型选择、停止、分支和助手写入操作;浏览与回放控制保持可用。
- 使用 DSH 主题变量,并提供中英文界面,不会创建独立面板。
当前开发基线为 DSH 0.1.5-rc.2,同时检查 0.1.6-alpha.2 和 0.1.7-rc.2。本次迁移依赖新版 Conversation/Chat 服务。如果 Harmony 选择器发生漂移,自动化测试会直接失败,而不会静默修改错误的组件。
安装
dsh plugin --profile web add @ch4acko3/bites-the-dsh
dsh harmony status --profile web
Bites the DSH 的四个补丁都应显示为 bound。重新加载 WebUI,打开一个会话,然后点击原生会话标题栏中的 回放会话。
脚本控制
其他 DSH 插件可以通过提供的 Cordis 服务使用同一个每会话时钟:
const playback = ctx.sessionPlayback
playback.enter(sessionId)
playback.seekTime(sessionId, Date.parse('2026-08-20T12:00:00Z'))
playback.play(sessionId, 1)
playback.pause(sessionId)
playback.exit(sessionId)
seekTime 等接口的时间值使用 Unix epoch 毫秒,与 JavaScript Date 和记录事件的时间戳一致。
该服务还支持按事件或轮次跳转、倒放、倍速与空闲间隔设置、订阅以及位置读取。它不会暴露任何修改源会话的操作。
开发
需要 Node.js ^22.22.3 || >=24.11.1 与 pnpm 11。
pnpm install
pnpm check
CI/CD
每次推送到 main 以及每个拉取请求都会运行 pnpm check 并验证 npm 包内容。推送与 package.json 版本一致的 v<版本号> tag 后,会运行相同检查、创建对应的 GitHub Release,并通过 Trusted Publishing(OIDC)将公开包发布到 npm,同时自动生成 provenance,无需在 GitHub 中保存 npm token。
许可证
MIT
链接
同类插件
Minglink/dsh-infinite-gen-4★ 2305
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 534
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 470
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 209
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Totoro-qaq/dsh-plugin-bridge★ 165
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
Anionex/dsh-turn-rewind★ 127
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。