dsh-desktop
Identified★ 4Desktop companion plugin and native shell for DeepSeek Harness (DSH)
DeepSeek Harness Desktop Pro
A Rust/Tauri desktop shell and Cordis plugin for DeepSeek Harness (dsh). Rust owns the native lifecycle, windows, tray, notifications and signed updates; a supervised Node.js sidecar runs the compatible DSH/Cordis runtime.
What it does
| Capability | Side | Notes |
|---|---|---|
| Interaction notifications | client | Subscribes to the sessions store; fires a browser desktop notification when a session waits on an approval, question, or plan review. Click opens that session. |
| screen_capture model tool | host | Captures the primary display and commits the screenshot into the conversation as an image attachment. Disabled by default — see Consent. |
| Multi-agent tiling canvas | client | A conversation.view tab rendering a live, read-only grid of sessions and sub-agents from the sessions store. |
| Desk pet | client | A floating companion window (cat / robot / whale) driven by a state engine that derives pet state (idle / thinking / working / alert / success) from live sessions. Ships a custom navigation icon in the dsh nav bar. |
| Desktop settings | client | A settings section for pet preferences: enable/disable, character (built-in robot / whale / cat or a custom PNG), and size. |
| Native shell | app | Rust/Tauri app that supervises the DSH sidecar, embeds the local Web UI in a frameless WebView2 window, and provides native workspaces, tray controls, companion windows and signed GitHub Releases updates. |
How it plugs in
- The package declares a
dsh.bundlemanifest (object form:{ "patch": "./cordis.patch.yml" }) — this is what dsh recognizes as an installable plugin.dsh.clientdeclares the web platform and the@deepseek-ai/*runtime packages it injects. - Host side registers the
screen_capturemodel tool only. - Client side reads the sessions store and the
question/requestedinteraction stream (via thePendingWait.answerchannel) — it never registers a secondctx.userQuestionsprovider, so it works against the published runtime with no slot conflicts. - The client bundle is a single file wrapped in the
window.__ModuleLoader__.load({ id, factory })handshake (seebuild.mjs).
Install
The plugin ships as @mixian/dsh-desktop-plugin with a dual-face Cordis bundle (dsh.bundle + dsh.client). Mount it with either mechanism:
# via a profile (recommended)
dsh plugin --profile web add @mixian/dsh-desktop-plugin
# from a source checkout
dsh plugin --profile web add ./packages/dsh-desktop-plugin
# or as a one-off overlay (no install)
dsh web --patch ./packages/dsh-desktop-plugin/cordis.patch.yml
Consent
screen_capture exposes the operator's whole display. It is not registered unless screenCapture: true is set explicitly in the profile patch:
# ~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-desktop-plugin
config:
screenCapture: true # opt in: registers the screen_capture tool
The captured image is always surfaced back into the conversation for transparency — it is never silently injected.
Run the desktop app
pnpm install
pnpm dev # Rust/Tauri development app
pnpm tauri:package # Signed Windows production bundle (signing env required)
Requires Node.js ≥ 22 and pnpm 11 (corepack enable).
Model Experience
- The plugin adds no tokens when idle: the notification watcher, canvas, desk pet, and settings are client-side and read the sessions store; they never enter the model context.
screen_captureadds one model-facing tool with a short description; its output is an image block in a durabletool/resultevent, subject to the same attachment limits as any image in the session. It requires a model that accepts image input.
Known Limitations
- Screen capture is host-only and captures the primary display; multi-monitor and region capture are not supported.
- The multi-agent canvas is a read-only monitor; it does not create or attach sessions.
- Notifications fire as native OS notifications in the desktop shell and fall back to the browser desktop-notification API in the web runtime. The
Alt+Spaceglobal quick panel is planned, not shipped. - Time travel, session rewind, and live fork are not implemented.
Development
pnpm install
pnpm check # lint + typecheck + Node/Rust tests + plugin build + runtime verification
pnpm dev:plugin # plugin dev loop
Project layout
packages/dsh-desktop-plugin/ # dual-face Cordis plugin (dsh.bundle + dsh.client)
packages/dsh-desktop-rust/ # Rust/Tauri native desktop shell
packages/dsh-desktop-sidecar/ # supervised Node.js DSH/Cordis runtime
stubs/ # local type-stubs for unpublished @deepseek-ai/* transitive deps
docs/ # ARCHITECTURE_ANALYSIS + PUBLISHING_GUIDE (verified 2026-08)
Documentation & community
- Rust architecture — native boundary, sidecar protocol and release design
- Publishing guide — packaging rules, registry submission, npm pitfalls
- Contributing · Security policy · Changelog
The repo carries the dsh-plugin, deepseek-harness, and cordis-plugin topics for ecosystem discovery.
License
MIT
Comments
Loading…
Similar plugins
by anywhere-labs
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 27.6k
↓ 281/wk
MIT
TypeScript
Sep 18, 2026
dsh plugin --profile web add dsh-plugin-desktopby ghbhiee
File browser, preview, and web terminal panel for DeepSeek Harness — session-docked workbench plugin
★ 0
MIT
JavaScript
Aug 18, 2026
dsh plugin --profile web add dsh-plugin-workbenchby shengsheng90
Native local Taskboard plugin for DeepSeek Harness. SQLite-backed projects, Agent claim/review, and a native Web UI — no iframe, no second chat runtime.
★ 325
↓ 218/wk
Apache-2.0
TypeScript
Sep 16, 2026
dsh plugin --profile web add @shengsheng/dsh-taskboardby Qingzhou-Joshua
DeepSeek Harness plugin—a simple toolkit for developers.
★ 0
MIT
TypeScript
Aug 14, 2026
dsh plugin --profile web add dsh-dev-toolboxby imaginevoldermert
A minimal Windows launcher plugin for DeepSeek Harness
★ 0
MIT
TypeScript
Aug 23, 2026
dsh plugin --profile web add dsh-minimal-launcher-pluginby MARIOMLY
Open the DeepSeek Harness Web UI as a standalone desktop app window (Chromium --app mode) — a DSH host plugin. / 把 DSH Web 界面变成独立桌面应用窗口的 DSH 插件。
★ 0
MIT
JavaScript
Sep 14, 2026
dsh plugin --profile web add dsh-desktop-app