DeepSeek Harness plugin

dsh-desktop-kit

macOS desktop shell for the DSH web UI: a plugin plus a small Tauri/WKWebView window over the loopback web surface — real macOS fullscreen, single instance, external links delegated to the system browser, and browser-style zoom.

Jump to install

Source facts

Repository
MDR-EX1000/dsh-desktop-kit
Latest update
Aug 21, 2026
Category
UI Enhancements
GitHub stars
0

Install

Start with a prompt that asks an agent to read the source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to read the page and repository first.

Do not install anything yet. Read this DeepSeek Harness plugin and explain what it does, which files, networks, or credentials it can access, and how to install and remove it.

Plugin page: https://deepseekplugins.org/plugins/MDR-EX1000/dsh-desktop-kit
GitHub: https://github.com/MDR-EX1000/dsh-desktop-kit
Plugin: dsh-desktop-kit
Author: MDR-EX1000
Install command: dsh plugin --profile web add "https://github.com/MDR-EX1000/dsh-desktop-kit/releases/latest/download/dsh-desktop-kit-0.1.0.tgz"

Do not run the install command until I confirm.

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer2 files
README.mdSource · read only

dsh-desktop-kit

Self-owned desktop shell for DeepSeek Harness (DSH): a small plugin plus a native Tauri window over the harness web surface.

dsh web starts → the plugin spawns the shell on the served loopback URL → you get DSH in a real desktop window, with the browser tab still available as a second client. No fork, no repackaged runtime, no second profile — everything stays a plugin over your existing harness.

Why not the third-party shell?

dsh-desktop is great and was the blueprint. We rebuilt a smaller one for one concrete reason: real macOS fullscreen. Its window is frameless with a web-drawn title bar and never wires up setFullscreen — the maximize button is zoom, not a native fullscreen Space. This shell uses a plain decorated window, so the green traffic-light button and Ctrl+Cmd+F give you true macOS fullscreen out of the box.

Features (v0.1)

  • Native window on the loopback web surface — same origin the browser uses, so the whole SPA and every plugin work unchanged (verified with dsh-rw).
  • Real macOS fullscreen — decorated window, native fullscreen Space, no custom title bar needed.
  • Single instance — a second launch focuses the existing window instead of opening another.
  • Lifecycle contract — closing the window exits the shell with code 0, and the plugin shuts the harness down; plugin teardown kills the shell. No orphaned processes on either side.
  • Graceful degradation — no shell binary found? The harness keeps serving the web UI in the browser, with an actionable log line.
  • Small — system WebKit (WKWebView), no bundled Chromium; the shell binary is a few MB.
  • External links that worktarget="_blank" / cross-origin links are delegated to the system browser via the shell's kit_open_external command (a bare WKWebView renders them dead otherwise).
  • Browser-style zoom — Cmd/Ctrl + = / - / 0 zooms the page (persisted), something a bare WKWebView does not offer.

Deliberately not in v0.1: tray, OS notifications, file panel, in-app updater, control channel. The architecture (control pipe over stdin/stdout, dshdctl: protocol) is documented in the blueprint and can grow later.

Architecture

dsh web  (your existing web profile)
  └─ dsh-desktop-kit (this plugin, inject: [webServer])
       └─ spawns dsh-desktop-kit <url> <title>   (the Tauri shell)
            └─ native WKWebView window on http://127.0.0.1:<port>
                 window closed → exit 0 → plugin shuts the harness down

The plugin resolves the shell binary in order: config.bin / DSH_DESKTOP_KIT_BIN$DSH_HOME/bin/dsh-desktop-kitPATH~/.local/bin/dsh-desktop-kit.

Install

Requires the dsh CLI and macOS (other platforms are untested but should work).

# 1. the plugin
dsh plugin --profile web add dsh-desktop-kit          # npm (once published)
# or from a checkout / GitHub release tarball:
dsh plugin --profile web add /path/to/dsh-desktop-kit

# 2. the shell binary (prebuilt on the Releases page, or build it yourself)
mkdir -p ~/.dsh/bin
cp dsh-desktop-kit ~/.dsh/bin/        # from the release download
# or: cd shell && cargo build --release && cp target/release/dsh-desktop-kit ~/.dsh/bin/

# 3. restart dsh web — the native window opens with it

To uninstall: dsh plugin --profile web remove dsh-desktop-kit and delete ~/.dsh/bin/dsh-desktop-kit.

Clickable app icon (macOS)

app/install.sh   # builds ~/Applications/DSH.app (idempotent, macOS built-ins only)

The bundle is a thin launcher, not a second harness: if 127.0.0.1:3080 already answers (e.g. a terminal-started dsh web), the icon just opens a window on that instance; otherwise it boots dsh web itself. Starting a second dsh web would die on EADDRINUSE — earlier hand-rolled wrappers did exactly that when an instance was already up, which is why the launcher lives in this repo now.

Development

# plugin half (TypeScript)
pnpm install
pnpm build        # tsc → lib/
pnpm test         # vitest — spawn/exit/resolution logic, all fakes
pnpm typecheck

# shell half (Rust / Tauri v2)
cd shell
cargo build --release   # binary at target/release/dsh-desktop-kit

Install the built plugin into your harness for a live run:

dsh plugin --profile web remove dsh-desktop-kit 2>/dev/null
dsh plugin --profile web add /path/to/dsh-desktop-kit
cp shell/target/release/dsh-desktop-kit ~/.dsh/bin/
# restart dsh web

Configuration

Plugin config keys (defaults shown):

KeyDefaultMeaning
bin''Explicit shell binary path; empty resolves $DSH_HOME/binPATH~/.local/bin. Also settable via DSH_DESKTOP_KIT_BIN.
title'DeepSeek Harness'Window title (argv[2] to the shell).

Shell argv: dsh-desktop-kit [url] [title] — defaults http://127.0.0.1:3080 and DeepSeek Harness. --selftest runs a scriptable native-fullscreen enter/exit check (exit 0 on pass); DSH_KIT_NO_SINGLE_INSTANCE=1 runs a side-by-side instance (selftest, dev).

Known limitations

  • macOS is the only tested platform (WKWebView). Linux/Windows builds are unverified.
  • Plugin reload while the harness stays up is not handled — restart dsh web after reinstalling.
  • No close-to-tray: closing the window shuts the harness down (by design, matching the referenced behavior).

License

MIT