Back to home

SC0321

harnessbay

HarnessBay — a desktop home for DeepSeek Harness (macOS/Windows). Fork of DeepWharf.

Stars
1
Language
TypeScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

HarnessBay

中文 | English

A desktop home for DeepSeek Harness (dsh). Double-click an installer and get the full Harness agent experience as a native desktop app — no Node.js, no npm, no terminal required.

HarnessBay is a thin, upstream-friendly Electron wrapper. It does not fork or modify DeepSeek Harness; it embeds an isolated Node.js runtime plus a vendored copy of dsh, launches dsh web, waits for the local server, and presents the official Web UI in a native window.

HarnessBay (Electron)
  └─ spawn embedded node (node.exe on Windows)
       └─ dsh web --port <auto>
            └─ BrowserWindow (webview) → http://127.0.0.1:<port>

Features

  • Zero-dependency install — bundled Node.js runtime + vendored Harness; works offline.
  • Native desktop shell — single merged title bar (logo + Plugin Store + Settings), themable (follows system light/dark), localized (简体中文 / English).
  • Plugin Store — browse the dsh-plugin ecosystem (npm registry) and install via the official dsh plugin mechanism (bundled pnpm).
  • Desktop integration — closing the window minimizes to the system tray (Harness sessions keep running), a global Ctrl+Alt+D hotkey shows the window, and launch-at-startup is optional. All three can be toggled in Settings.
  • Notifications & onboarding — system toasts for approvals, questions, finished tasks, and agent errors; first run detects missing API keys and walks you through the official credential store (effective immediately).
  • Session history — a dedicated window to browse all sessions, full-text search them, and export any one as a ZIP (with subagent logs and media attachments).
  • Shell Settings — language, theme, auto-update toggles, version info, logs.
  • Harness auto-update — checks the registry and swaps resources/harness atomically.
  • Clean lifecycle — single instance, port auto-pick, HTTP ready-probe, process-tree cleanup on exit.
  • SafecontextIsolation + sandbox; user data lives in the OS user-data dir (never in the install dir).

Platform support

  • Windows — NSIS installer (HarnessBay-Setup-<ver>-x64.exe) + portable build (HarnessBay-Portable-<ver>-x64.exe), x64.
  • macOS — DMG + ZIP, both x64 and arm64 (Apple Silicon). Code signing + notarization are enabled automatically when Apple credentials are present (see CODE_SIGNING.md); unsigned builds work but Gatekeeper will warn on first open.

Download / Install

Grab the installer for your platform from Releases:

  • Windows: HarnessBay-Setup-<ver>-x64.exe (NSIS) or HarnessBay-Portable-<ver>-x64.exe.
  • macOS: HarnessBay-<ver>-<arch>.dmg (or .zip).

The Windows installer wizard defaults to a per-user install (no admin needed) and lets you pick the install directory (elevation is only requested for protected locations); overwrites preserve your data.

Build from source

Requires Node.js ≥ 22 on the build machine only.

npm install
npm run prepare:node       # download embedded node + npm + pnpm -> resources/runtime
npm run prepare:harness    # vendor @deepseek-ai/dsh + prune -> resources/harness
npm run icon                # regenerate build/icon.ico + build/icon.png from build/brand-icon.png
npm run dist               # build the current platform's artifacts -> release/
npm run dist:win           # Windows only (NSIS + Portable)
npm run dist:mac           # macOS only (DMG + ZIP, x64 + arm64)

The brand artwork lives in build/brand-icon.png (square PNG with transparency). To swap it: npm run icon path/to/new-art.png — the script copies the file into build/, regenerates the Windows .ico and the 1024px .png (from which electron-builder derives the macOS .icns), the shell logo, and a macOS tray icon; later rebuilds keep using the committed source.

Notes

  • Install speed: the Harness payload is pruned (sources/maps/docs stripped) and the NSIS package uses compression: store for fast on-disk extraction.
  • Code signing: pluggable hook scripts/sign.js (HARNESSBAY_SIGN_MODE=test|pfx|sigpath|none). Release artifacts are built by GitHub Actions CI. Windows builds can be signed via the SignPath Foundation (Free code signing provided by SignPath.io, certificate by SignPath Foundation); macOS builds use Developer ID + notarization when Apple credentials are configured. See CODE_SIGNING.md.
  • Shell self-update feed: checks GitHub Releases by default (override the repo with SHELL_UPDATE_REPO, or point SHELL_UPDATE_URL at a custom { "version": "x.y.z" } JSON).

License

MIT — HarnessBay is an independent wrapper (forked from DeepWharf, MIT); DeepSeek Harness remains under its own license.