Install verification: Ecosystem app: not installed via dsh plugin add, so the L1-L5 plugin install-verification ladder does not apply; the security scan still runs.Install verification details →
What it doesAI
A lightweight macOS desktop shell (Tauri 2) hosting the local DeepSeek Harness WebUI, with one-click start/stop, tray, and notifications.
- One-click launch of local DeepSeek Harness WebUI in a desktop shell
- Tray/dock resident; window close hides, service keeps running
- Auto-binds port 3080 or falls back to a free port
Capability tags are AI-inferred or rule-extracted from the README (see badge) — vocabulary-limited, not install-verified. AI = inferred; README = literal keyword from the readme.
Installation
Ecosystem apps are not installable via dsh plugin add: desktop / web shells install or deploy through their own release channel (GitHub Releases or the project site).
The level reads L5 · Ecosystem plugin / L5 · Ecosystem app per the three-way classification (the L1-L5 ladder does not rate them); the security scan still runs.
Verification & Compatibility◼ Ecosystem app
Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.
External credentials (plugin-level): none detected
| plugin \ dsh | dsh 0.1.5-rc.2 | dsh 0.1.3-alpha.2 |
|---|---|---|
| 6c2e5b | · | · |
| 3a71b8 | ◼ | ◼ |
6c2e5blocal2026-09-08
Ecosystem app: not installed via dsh plugin add (a desktop / web shell) — its level reads L5 · Ecosystem app.
3a71b8github◼ 2 ecosystem app2026-09-11
https://github.com/KimFischer99/DeepSeek-Harness-Desktop
◼dsh 0.1.5-rc.22026-09-11Ecosystem app
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • Plugin artifact: github · https://github.com/KimFischer99/DeepSeek-Harness-Desktop (version unstated)
ID: deepseek-harness-desktop-57@3a71b8@dsh0.1.5-rc.2 · profile: l4-sandbox
Issued: 2026-09-11 · expires: 2026-09-18
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
◼dsh 0.1.3-alpha.22026-09-10Ecosystem app
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • Plugin artifact: github · https://github.com/KimFischer99/DeepSeek-Harness-Desktop (version unstated)
ID: deepseek-harness-desktop-57@3a71b8@dsh0.1.3-alpha.2 · profile: l3-fullscan
Issued: 2026-09-10 · expires: 2026-09-17
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/deepseek-harness-desktop-57/)`Security Report
Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.
Static low; dynamic medium (authoritative when present) → overall medium.
v0.1.00.1.0git2026-10-250.1.0same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (6)
- warningnetIp · network
src-tauri/src/lib.rs:4//! Security model: the harness page (http://127.0.0.1:<port>) is a plain - warningnetIp · network
src-tauri/src/lib.rs:82.unwrap_or_else(|| format!("http://127.0.0.1:{}", server::default_port())); - warningnetIp · network
src-tauri/src/lib.rs:130.unwrap_or_else(|| format!("http://127.0.0.1:{}", server::default_port())); - warningnetIp · network
src-tauri/src/server.rs:10//! printed `dsh web: http://127.0.0.1:<port>` line - warningnetIp · network
src-tauri/src/server.rs:37const URL_PREFIX: &str = "dsh web: http://127.0.0.1:"; - warningnetIp · network
src-tauri/src/server.rs:458let url = format!("http://127.0.0.1:{port}");
show 2 audit findings
- mediumStartup silently rewrites installed sidebar plugin to remove iframe sandbox, embed gate and loopback block
src-tauri/src/plugins.rs:287patch_sidebar_plain_browser runs on every start_inner() before spawn (unconditional, no user prompt). It rewrites node_modules/dsh-better-sidebar/lib/client.js so the browser-tab iframe loses `sandbox`, loses `referrerPolicy: no-referrer`, loses the X-Frame-Options/embed refusal panel and loses the loopback navigation block; ensure_sidebar_browser_prefs additionally writes `browserNoSandbox: true` into ~/.dsh/settings.yaml. Third-party or attacker-influenced pages opened in the sidebar therefore execute with their real origin, cookies/storage and referrer inside the app's WebView, and the embe
- lowEnvironment variables DSH_DESKTOP_NODE / DSH_DESKTOP_DSH_BIN / DSH_DESKTOP_THEME_DIR select executables that are run without validation
src-tauri/src/server.rs:217Any process that can influence the app's environment (launching it from a shell/script, a poisoned launch agent, an inherited environment) can point DSH_DESKTOP_NODE / DSH_DESKTOP_DSH_BIN at an arbitrary binary/JS file, which is executed at startup, or point DSH_DESKTOP_THEME_DIR at a directory whose lib/index.js is installed into the web profile and then loaded host-side by dsh. There is no signature, ownership or path allow-list check. Precondition is environment control, so this is a hardening gap rather than an unauthenticated RCE.
Tauri shell that spawns the local dsh server; at every startup it silently strips the sidebar plugin's iframe sandbox and loopback/embed gates, a real but bounded isolation downgrade.
Rule (2026-10-24): when a dynamic conclusion exists it is authoritative (it may raise or lower the level); without one, the static/vet fused tier applies. The audit never writes the exemption list (exemptions are manual only); a wrong conclusion is withdrawn by human review and the tier falls back to static/vet.
Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.
Activity
Last commit 2026-08-15 · activity: Stable
• Repo created: 2026-08-15
• Stars: ★ 0 · Forks: 0
• Health: Stable — committed within 90 days
Source
Author README
View on GitHub ↗The author's original README from the repository — fetched live, unedited (the English page loads the default README).
