harnessbay
其他 活跃维护

harnessbay

SC0321/harnessbay

Fork自DeepWharf的跨平台桌面宿主工具,原生支持macOS与Windows系统,本地部署即可稳定托管对应服务,开箱即用无需额外配置。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
3 MB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:SC0321/harnessbay
git clone https://github.com/SC0321/harnessbay.git
git clone git@github.com:SC0321/harnessbay.git
README.md main

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.
  • Safe — contextIsolation + 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.