bites-the-dsh
Manifest valid★ 1Read-only, scriptable session playback for the DeepSeek Harness WebUI
Bites the DSH
English | 简体中文
Read-only, scriptable session playback for the DeepSeek Harness WebUI.
https://github.com/user-attachments/assets/3c9dfdcf-a454-4750-9edf-76771ed5a9a6
The demo shows Bites the DSH together with dsh-turn-fold.
The plugin turns the native conversation into a replay view without opening a separate panel. A single native session-header control enters replay. While replay is active, the conversation is fully read-only: the native composer and session-changing interactions are blocked, while UI and scripts may move time without mutating the source session.
Current implementation
- Native session-header entry and compact playback controls.
- Pause, forward play, reverse play, event stepping, speed selection, adjustable idle-gap compression, and direct event/turn/time seeking.
- Optional simulated typing previews the next direct user message in the native read-only composer without touching its live draft.
- A per-session observable controller exposed as
ctx.sessionPlaybackfor time-only scripting. - Historical projection through DSH's native
ChatView; the source session and live head continue independently. - Historical timelines expose
playbackClock: { kind: 'historical', time: cursorTime }so projection consumers never treat an open historical turn as live wall-clock work. - Native composer, model, stop, branch, and assistant write actions are disabled during replay; viewing controls remain interactive.
- English and Chinese labels using DSH theme tokens, without a separate panel.
The development baseline is DSH 0.1.5-rc.2; 0.1.6-alpha.2 is also checked. This migration requires the new Conversation/Chat services. Harmony selector drift fails the automated test instead of silently changing the wrong component.
Install
dsh plugin --profile web add @ch4acko3/bites-the-dsh
dsh harmony status --profile web
All four Bites the DSH patches should report bound. Reload the WebUI, open a
session, then use Replay session in the native session header.
Script control
Other DSH plugins can use the same per-session clock through the provided Cordis service:
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)
Time values such as the argument to seekTime use Unix epoch milliseconds,
matching JavaScript Date values and recorded event timestamps.
The service also supports event and turn seeking, reverse playback, rate and idle-gap settings, subscriptions, and position reads. It deliberately exposes no operation that mutates the source session.
Development
Requires Node.js ^22.22.3 || >=24.11.1 and pnpm 11.
pnpm install
pnpm check
CI/CD
Every push to main and every pull request runs pnpm check and verifies the
npm package contents. Pushing a v<package.json version> tag runs the same
checks, creates the matching GitHub Release, and publishes the public package
to npm through Trusted Publishing (OIDC), with automatic provenance and no npm
token stored in GitHub.
License
MIT
Compatibility check (2026-09-19): Harmony 0.8.11, 26 unit tests and one built-client integration test pass. All four patches bind on isolated DSH 0.1.5-rc.2 and 0.1.6-alpha.2 Hosts. Historical chat hooks read the projected node store; releasing a Session removes subscriptions, pending history state and read-only mode. Browser interaction and macOS/Linux validation remain separate from these Windows checks.
Comments
Loading…
From the same category
by ranxianglei
基本稳定可用 100K tokens is enough. Universal context-compression proxy for ALL AI coding agents,10w上下文足矣
★ 814
↓ 423.4k/wk
MIT
TypeScript
Oct 11, 2026
dsh plugin --profile web add billion-contextby Han-1413141
DeepSeek Harness session cost meter plugin: session/daily cost, budget, history, OpenCode Go quota, official & custom-provider balance, Codex-like token heatmap, peak/off-peak pricing with pre-switch
★ 388
↓ 23k/wk
MIT
JavaScript
Oct 10, 2026
dsh plugin --profile web add dsh-cost-meterby Nwflower
Import 14+ external agent chat histories (Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, ZCode, Grok Build, OpenClaw, Pi, Hermes, Kimi CLI, DSH) into DeepSeek Harness as resumable se
★ 224
MIT
JavaScript
Oct 7, 2026
dsh plugin --profile web add dsh-chat-importby Totoro-qaq
DeepSeek Harness plugin for previewable cross-preset session migration. Fixed-schema handoffs preserve state, source-model intent, and unresolved images; the original session stays untouched.
★ 165
MIT
JavaScript
Oct 11, 2026
dsh plugin --profile web add dsh-plugin-bridgeby Anionex
deepseek harness对话和代码状态回退插件 | DSH — rewind conversation and workspace state, powered by a persistent Change Ledger
★ 131
BSD-3-Clause
JavaScript
Oct 1, 2026
dsh plugin --profile web add @anionex/dsh-turn-rewindby SiriLee
DSH 插件:真正便捷无感的同窗口内对话回退,从不新建分支;自带轻量工作区备份,可一并还原文件(完整 Claude Code /rewind 语义)。 · DSH plugin: genuinely effortless in-window conversation rewind — never forking a new session; ships a lightweight workspac
★ 123
↓ 5.5k/wk
MIT
TypeScript
Oct 9, 2026
dsh plugin --profile web add dsh-rewind-plugin