Files
deepseek-harness/apps/desktop/README.md
T
Pine 0cdbbfbf1a feat(desktop): add Electron desktop shell over the web profile
Spawn the real dsh CLI running the web profile on loopback (OS-assigned
port), parse the printed readiness URL, and open a native window at it.
The harness and its native addons stay on the system Node ABI; the main
imports only electron and node builtins.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:23:22 +08:00

1.2 KiB

@deepseek-ai/dsh-desktop

Electron desktop shell over the DeepSeek Harness. The Electron main process is a thin wrapper: it spawns the real dsh CLI running the web profile on loopback (an OS-assigned port), parses the readiness URL line the profile prints (dsh web: http://127.0.0.1:<port>), and opens a native window at that address.

The harness — its Cordis plugins, webserver, static frontend dist, and WebSocket transport — runs exactly as dsh web would, as a separate system-Node process, so native addons keep their system Node ABI.

Run from a checkout

pnpm install
pnpm run build          # builds lib + the apps/web frontend dist
pnpm desktop:dev        # opens the desktop window

desktop:dev builds the frontend dist and the dsh CLI, then launches Electron. Override the spawned Node or dsh entry with DSH_NODE / DSH_ENTRY.

Package

pnpm desktop:pack       # electron-builder: mac .dmg / win .nsis in apps/desktop/dist

Packaging is unsigned by default; provide a certificate to distribute. The harness child needs a Node runtime on the target platform — see electron-builder.yml and the notes in src/main.ts.