HaddenHunter/deepseek-harness-desktop

A cross-platform desktop GUI for DeepSeek Harness that is not a re-implementation: it spawns the upstream Cordis plugin graph (agent-spine → jsonl-persistence → sdk-jsonrpc-server) as a Node.js sidecar and drives it with newline-delimited JSON-RPC over stdio, giving one-click session creation, a visual tool-approval modal (shell exec, write, read, search, browser and custom plugin actions surface one at a time with Allow / Allow once / Deny and regex auto-allow lists), a trajectory timeline that replays the full SessionEvent sequence with diffs and per-event metadata, multi-provider/multi-model configuration with per-session model, temperature, top_p and max-tokens switches, four runtime modes (standard / ptc / minimal / creative) mapped to Harness RuntimeMode, keychain-stored secrets, and append-only JSONL session files loadable by any Harness CLI tool.

Infrastructure & Deployment ★ 2 updated 2026-08-14 ✅ runtime-tested
View on GitHub ↗

Install

Download DSH-Desktop_<version>_universal.dmg from github.com/HaddenHunter/deepseek-harness-desktop/releases

README quick start: install a prebuilt release from the Releases page — macOS (Apple Silicon / Intel) DSH-Desktop_<version>_universal.dmg, Windows 10/11 x64 DSH-Desktop_<version>_x64-setup.exe (NSIS) or .msi, Linux .deb or *.AppImage. Node.js ≥ 22 must be on PATH on all platforms (brew install node@22 / official installer with Add to PATH / apt install nodejs npm). Then open DSH Desktop, go to Settings → API Keys and paste your DEEPSEEK_API_KEY (or export it before launching — the sidecar inherits the same env var). Source build: npm install, MOCK_RUNTIME=1 npm run tauri:dev for a UI-only smoke, npm run tauri:dev for the full stack, npm run tauri:build for installer bundles (Tauri 2.x prerequisites: Rust stable, Xcode CLT / MSVC Build Tools + WebView2 / libwebkit2gtk-4.1-dev etc.).

Compatibility

macOS (Apple Silicon / Intel), Windows 10/11 x64 and Linux (deb / AppImage). Node.js ≥ 22 must be in PATH at runtime on every platform. Built on the official Harness SDK over a JSON-RPC 2.0 sidecar in a Tauri 2.x shell; README stresses the strict Tauri security model — the WebView sees only pure JS APIs, while sidecar spawn, keychain, filesystem, notifications, tray, menu and dialogs are owned by the Rust shell.

Details

Recent updates

README documents the JSON-RPC method surface between app and sidecar (session.status running/idle/error, subagent.started / .finished lifecycle, etc.), the ~15 MB native binary plus bundled CJS sidecar, and a first-run end-to-end smoke flow (new session in standard mode → list src/runtime with file sizes → approve once → confirm tool_call → tool_result → assistant_message and session status idle).

FAQ

How do I install DSH Desktop (HaddenHunter)?
Download the release asset for your platform (DSH-Desktop_<version>_universal.dmg, _x64-setup.exe/.msi, or .deb/.AppImage), make sure Node.js ≥ 22 is on PATH, launch the app and paste your DEEPSEEK_API_KEY under Settings → API Keys.
Is it a re-implementation of DeepSeek Harness?
No — the README states it spawns the upstream Cordis plugin graph as a Node.js sidecar over JSON-RPC, i.e. the exact same plugin pipeline and agent runtime as DeepSeek Harness v0.1.
Where are API keys and sessions stored?
API keys go to the OS keyring (macOS Keychain / Windows CredMan / Linux Secret Service), never to disk; each session is an append-only JSONL file under the workspace's sessions/ directory, loadable by any Harness CLI tool.

More plugins in Infrastructure & Deployment

Browse more in Infrastructure & Deployment

Guides for Infrastructure & Deployment plugins