DeepSeek Harness Plugin

FuqiangCraft/dsh-desktop#packages/dsh-desktop-plugin

Stars ★ 4 Downloads (30d) 874 Category UI Enhancements Added 2026-08-26 npm @mixian/dsh-desktop-plugin

Desktop-grade companion: browser native notifications for user questions and approval interactions, screen capture model tool, multi-agent tiling grid view, and lightweight Tauri desktop shell.

Install

# from npm (prebuilt)

dsh plugin --profile web add @mixian/dsh-desktop-plugin

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:FuqiangCraft/dsh-desktop#path:/packages/dsh-desktop-plugin

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

DSH Desktop Plugin logo

Desktop-grade companion plugin for DeepSeek Harness (dsh). Brings three desktop-class capabilities the stock web UI lacks:

  1. Native notifications for user interactions — when any agent session enters a pending interaction (approval, question, or plan review), a browser desktop notification fires. Click it to jump into the session where the stock approval/question UI lives.
  2. screen_capture model tool — captures the host display and commits the screenshot into the conversation as an image attachment, so the model can see what is on screen. Disabled by default (see Consent).
  3. Multi-agent tiling canvas — a conversation.view tab that renders a live grid of every session and sub-agent, read straight from the sessions store.

A floating attention HUD and native OS shell (tray, global hotkey) are planned; see Known Limitations.

Install

The plugin ships 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

# or as a one-off overlay
dsh web --patch /path/to/@mixian/dsh-desktop-plugin/cordis.patch.yml

Enable the opt-in screen_capture tool by patching the row's config:

# ~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-desktop-plugin
  config:
    screenCapture: true   # opt in: registers the screen_capture tool

Consent

screen_capture exposes the operator's whole display. It is not registered unless screenCapture: true is set explicitly, and it only fires when the model decides to call it (typically after the user asks for a screenshot). The captured image is always surfaced back into the conversation for transparency — it is never silently injected.

Model Experience

  • The plugin adds no tokens when idle: the notification watcher and canvas are client-side and read the sessions store; they never enter the model context.
  • screen_capture adds one model-facing tool with a short description; its output is an image block in a durable tool/result event, subject to the same attachment limits as any image in the session. It requires a model that accepts image input.

Known Limitations

  • The floating attention HUD targets the shell.overlay frame-wide slot, which exists in DeepSeek Harness master but is not yet present in the published client runtime (@deepseek-ai/dsh-client-*@0.0.1-rc.1). The component ships ready but is mounted only once that slot is published. The notification watcher needs no slot and works today.
  • Screen capture is host-only and captures the primary display; multi-monitor and region capture are not yet supported.
  • The multi-agent canvas is a read-only monitor; it does not create or attach sessions.

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.