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
DSH Studio desktop app (recommended)
Open Settings → Plugins → Add plugin and enter this in “Package name or address”:
github:aa2246740/dsh-watcher#v0.7.0
The desktop plugin manager owns the Desktop profile and bundled package manager. This release commits lib/; normal use needs no clone, build, or DSHX installation. Follow the app if it asks you to reload or reopen after installation.
Web CLI
dsh plugin --profile web add github:aa2246740/dsh-watcher#v0.7.0
This official CLI command writes only the web profile; it cannot modify the Desktop App profile. For an already-running Web Host, reopen that Host once and reload the page.
DeepSeek Harness 0.2.0-rc.2 (@deepseek-ai/dsh@0.2.0-rc.2, dsh-v0.2.0-rc.2). The @deepseek-ai/dsh-* peer range is >=0.2.0-rc.1 <0.2.1: it accepts 0.2.0-rc.2 and stable 0.2.0, rejects alphas, and rejects 0.1.7-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.
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.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★ 8405
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★ 8405
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.
ccch1mneyyy/dsh-TUI★ 4088
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 4076
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.
omdsh-dev/DSH-better-sidebar★ 4009
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★ 1423
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.