Read-only session work-path observer: fold turns into stage, run, duration and tok/s summaries, then expand parallel branches, tool results and vendor-visible reasoning.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-watcher
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:aa2246740/dsh-watcher
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
中文 · English
Watcher
Install / Update
Install on DeepSeek Harness web or desktop
Fill dsh-watcher in the Add plugin wizard's search box, and click Install:

Install with dsh cli
Install dsh-watcher plugin from DeepSeek Harness:
dsh plugin --profile web add dsh-watcher
Or update the dsh-watcher plugin:
dsh plugin --profile web update dsh-watcher@latest
Then start the web UI with dsh web. No build step, no restart.
This official CLI command writes only the web profile; it cannot modify the Desktop App profile — use the in-app Add plugin wizard above for desktop. This release commits lib/; normal use needs no clone, build, or DSHX installation.
DeepSeek Harness 0.2.1-rc.2 (@deepseek-ai/dsh@0.2.1-rc.2, dsh-v0.2.1-rc.2). The @deepseek-ai/dsh-* peer and engines.dsh range is >=0.2.1-rc.1 <0.2.2: it accepts 0.2.1-rc.2 and stable 0.2.1, rejects alphas, and rejects 0.2.0-rc.2. Node ^22.19.0 or >=24.
A read-only plugin for DeepSeek Harness Web. Open the eye in the session header. A Session becomes a foldable work path: how many steps ran, how many tools fired, how long it took. Open a step for parallel branches, a tool result, or a reasoning row that stays folded until you ask.
It does not inject messages, invent hidden chain-of-thought, or replace the official Trajectory.





Grouped view only stacks what it can prove. Two different bash calls stay apart. The model stage shows only provider-visible reasoning already written into the Session. If nothing was recorded, it says so.
Advanced installs
Pin to a GitHub tag:
dsh plugin --profile web add github:aa2246740/dsh-watcher#v0.8.0
From a clone (development/local testing):
git clone https://github.com/aa2246740/dsh-watcher.git
dsh plugin --profile web add ./dsh-watcher
That path also needs pnpm, then reopen that Web Host and reload the page.
dsh plugin --profile web remove dsh-watcher
The public CLI manages web only; use the in-app “Add plugin” entry above for the Desktop App.
The settings summary and session HUD show Estimated cost (not “total value”) next to total tokens. Input / output / cache buckets are priced from pricing/models.yaml. A missing row is Unknown, never $0. A partial estimate keeps the known dollar in the main number and footnotes Some models unpriced. It is an estimate, not a bill. The default table covers mainstream DeepSeek, MiniMax, OpenAI, Anthropic, Gemini, Grok, GLM, and Qwen rows and is static (no live fetch). Override it in Watcher settings (localStorage key dsh-watcher:pricing-override:v1). PRs to the default table are welcome.
The interaction contract lives in DESIGN.md. MIT.
What's new in 0.9.0
- Targets official DeepSeek Harness 0.2.1-rc.2 (
dsh-v0.2.1-rc.2, SHA687f282e8625c6b8d11ff58211a90524be2e4317).@deepseek-ai/dsh-*peers andengines.dshare>=0.2.1-rc.1 <0.2.2: the range accepts0.2.1-rc.2and stable0.2.1, rejects alphas, and rejects0.2.0-rc.2. - Icons stay
IconChevronRightOutlineRegular,IconRefreshOutlineRegular,IconCheckOutlineRegular, andIconCopyOutlineRegular. Those four names are still exported by primitives at0.2.1-rc.2. The size-suffixed names are still absent. - Terminal card labels add the required
commandLinecopy (命令行 N) introduced in0.2.1.
0.8.0
- The daily chart books each token settlement on the local calendar day. A session total is no longer piled onto the last active day. Version 1 caches keep the old display until that session is refolded into version 2.
- With dsh-better-sidebar installed, the right sidebar gains a Watcher page for the work picture. Without it, the header button and the settings section stay as they are. The sidebar package is not a dependency.
0.7.0
- Targets official DeepSeek Harness 0.2.0-rc.2 (
dsh-v0.2.0-rc.2, SHA639ed015397290b3745d163aafe02ffee4aa3f84).@deepseek-ai/dsh-*peers are>=0.2.0-rc.1 <0.2.1: the range accepts0.2.0-rc.2and stable0.2.0, rejects alphas, and rejects0.1.7-rc.2. - Icons stay
IconChevronRightOutlineRegular,IconRefreshOutlineRegular,IconCheckOutlineRegular, andIconCopyOutlineRegular. Those four names are still exported by primitives atdsh-v0.2.0-rc.2. The size-suffixed names are still absent.
0.6.1
- Checked on official DeepSeek Harness 0.1.7-rc.2.
@deepseek-ai/dsh-*peers stay>=0.1.7-rc.1 <0.1.8, so install accepts0.1.7-rc.1and0.1.7-rc.2and rejects0.1.7-alpha.*. - Icons stay
IconChevronRightOutlineRegular,IconRefreshOutlineRegular,IconCheckOutlineRegular, andIconCopyOutlineRegular. rc.2 still does not export the size-suffixed names.
0.6.0
- Targets official DeepSeek Harness 0.1.7-rc.1.
@deepseek-ai/dsh-*peers are>=0.1.7-rc.1 <0.1.8, so install accepts0.1.7-rc.1and rejects0.1.7-alpha.*. - Icons are
IconChevronRightOutlineRegular,IconRefreshOutlineRegular,IconCheckOutlineRegular, andIconCopyOutlineRegular. rc.1 removed the size-suffixed exports and ships no aliases.
0.5.0
- The panel resizes. Drag the right edge, the bottom edge, or the corner grip; the frame stays put while it grows, and it can never shrink below the size it opened at.
- The HUD folds to one line. A
▾next to the scope switch collapses the timing panel to just the top bar, and the choice is remembered. - "定位现场" lands on the actual failure. It now selects the exact failing step and opens the inspector on it instead of scrolling to a bare turn header.
- Repeated failures no longer stack. One failure chain updates one card, and the title names its turn (
第 N 轮).
Plus the 0.4.5 fixes: the inspector back control no longer re-arms follow, the first range pick no longer rescans sessions, the projection state no longer stores a copy of its own view, and the timing panel's non-terminal slice is labelled correctly.
Older releases: CHANGELOG.md.
Build from source
Skip this for a normal install. Rebuild the committed lib/ with pnpm after TypeScript changes:
pnpm install
pnpm test
node scripts/link-harness-dependencies.mjs /path/to/harness
pnpm build
pnpm build needs a local Harness checkout that can resolve the @deepseek-ai/dsh-* peers. Do not use this path to install the plugin.
Watcher waits for the Chat projection on cold sessions before mounting its panel.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 9673
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 9673
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6324
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 6018
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4645
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1607
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.