dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Native Tauri shell for DeepSeek Harness, self-maintained by deepseek-desk-rsi (AI-for-AI daily sync + 1:1 feature parity)
English | 中文
A native desktop shell for DeepSeek Harness — thin, light (~9 MB), and self-maintaining. A DeepSeek Harness agent (deepseek-desk-rsi) tracks upstream every day, enforces 1:1 feature parity, and opens a pull request.
AI for AI: DSH maintains DSH.
DeepSeek Harness is in 0.1.x-rc and ships breaking changes often. A desktop shell that pins one version rots within days. The only sustainable answer is to make the app maintain itself — and since DSH's whole thesis is "everything is a plugin, the agent can evolve itself", the maintainer is a DSH agent.
daily-sync.yml workflow runs a headless DSH agent that perceives upstream changes, integrates them, verifies (build + test + serve), checks 1:1 parity, repairs on failure, and opens a PR. You review and merge.PATH boots it.dsh web host (never reimplements the harness or the web UI).Cmd/Ctrl+Shift+D), single-instance focus, and autostart.Pin / AutoBump / AutoBumpWithGate) so the RSI engine can gate updates on its own verify pass.The shell is deliberately thin: it only boots the host and views it.
Tauri shell (Rust)
├─ host.rs spawn `dsh web`, poll :3080 until ready
├─ tray.rs system tray (Show / Quit)
├─ updater.rs update policy — Strategy pattern
└─ mod.rs wiring (global shortcut, single-instance, autostart)
│ spawns
▼
vendor/host/dsh-launcher (vendored @deepseek-ai/dsh, self-contained)
│
webview ──► http://127.0.0.1:3080 (the official DSH web UI)
Host resolution order: DSH_DESKTOP_HOST_CMD (explicit) → bundled vendor/host/dsh-launcher → system dsh.
| OS | Arch | Status |
|---|---|---|
| macOS | arm64 (Apple Silicon) | native |
| macOS | x64 (Intel) | native (macos-13 runner) |
| Windows | x64 | native |
| Windows | arm64 | experimental cross-compile — no native smoke |
git clone https://github.com/huchunlinnk/deepseek-desktop.git
cd deepseek-desktop
npm install # Tauri CLI
npm run tauri icon ./icon.png # one-time; icons are already committed
bash scripts/bundle-host.sh # vendor @deepseek-ai/dsh into vendor/host/
npm run tauri build # produce the .app (and .dmg in CI)
The built app lands at src-tauri/target/release/bundle/macos/DeepSeek Harness Desktop.app.
daily-sync.yml runs a headless DSH agent every day:
perceive → integrate → verify → parity → repair (bounded) → propose
The agent diffs upstream, edits the integration glue, builds + tests + smokes the serve path, checks the 128-plugin parity contract, rolls back and retries on failure (max 3 rounds), and opens a PR with the evidence. A human merges — the loop never lands code on its own.
parity.json lists every plugin in the official dsh-base + dsh-web-app bundles (128 plugins). rsi_parity fails if any name goes missing after a sync. See PARITY.md for the original-vs-desktop comparison.
frontend/ static splash (index.html)
scripts/ bundle-host.sh, smoke-web.sh
src-tauri/
src/desktop/ host.rs, tray.rs, updater.rs, mod.rs
icons/ generated platform icons
.github/workflows/ ci.yml, daily-sync.yml, release.yml
parity.json the 128-plugin parity contract
This app runs a local agent with shell access; the shell adds no isolation on top of the harness's own sandbox and approval layers. Secrets never live in the repo. See SECURITY.md.