dsh-service-hub
Manifest validService Hub for DeepSeek Harness: start, stop and monitor local services from a sidebar panel. 服务面板:DSH 侧栏一键启停本机服务。
dsh-service-hub
Service Hub for DeepSeek Harness — a sidebar panel that starts, stops, restarts and monitors the local services, one-shot scripts and terminal tools you keep on your own machine, so you no longer have to remember where each launcher lives.
Self-contained since 0.3.0
The package ships its own zero-dependency console daemon (console/, Node standard
library only). Installing the plugin is enough: the Host side starts the daemon on
127.0.0.1:3999 when the plugin activates, and stops it when the plugin unloads.
No external tool, no machine-specific path, nothing to download.
Registry data and logs live in ~/.dsh-service-hub/, so upgrading or reinstalling the
plugin keeps your service list.
What you get
The Harness sidebar gains a Service tab listing every registered entry with live status, health, port and a quick access URL, plus start / stop / restart / logs / refresh buttons and a LAN address you can open from a phone. Services you start keep running when the panel is closed, because the daemon owns the process control.
Install
dsh plugin --profile desktop add dsh-service-hub
Then restart DeepSeek Harness (or reload the window) and open the Service tab.
From source before an npm release exists:
dsh plugin --profile desktop add github:liuhuan007/dsh-service-hub
Requirements
| Requirement | Why |
|---|---|
| DeepSeek Harness 0.2.1+ with the Web/Desktop UI | Client bundle targets platform: web |
dsh-better-sidebar | The panel registers a sidebar tab through its service |
| Node 18+ | Runs the bundled console daemon (the desktop app ships one) |
| Windows | Process management uses PowerShell and tasklist/netstat |
Port 3999 must be free. If another console already listens there, the plugin reuses it
instead of starting a second one.
Permissions and external services
- The client bundle only performs
fetchagainsthttp://127.0.0.1:3999(localhost). - The bundled daemon binds
127.0.0.1only, never a public interface. - No telemetry, no outbound network calls from the plugin itself.
- The daemon starts and stops processes that you registered; it does not run anything
on its own. Each entry's command is visible in the panel and stored in
~/.dsh-service-hub/data/registry.json.
Compatibility
- DSH:
>=0.2.1 - UI: Web / Desktop (sidebar tab); no effect on the TUI or headless profiles
- OS: Windows
Known limitations
- The panel opens from the session header (⚙ 服务). Installing
dsh-better-sidebaradditionally adds the same panel as a left sidebar tab; it is optional. - Panel text is currently Chinese only;
locale/shipsmeta.title/meta.descriptionin English and Chinese for the plugin inventory. - Console URL is fixed to
127.0.0.1:3999.
Discovery tries to classify each candidate
Scan lists unregistered executables and listening ports. Every candidate carries a
suggested kind before you add it — app for install-directory programs and shortcuts,
service for programs that listen on a port, terminal for command wrappers in npm or
user bin directories, script for other batch files — and the discovery dialog shows a
kind selector, so the guess is always overridable. System directories (C:\Windows\...)
are skipped.
Security
The bundled console listens on 127.0.0.1 only and is guarded against drive-by use:
- No CORS headers. Browser requests from any other origin fail at preflight, so a
random website cannot read
/api/stateor call mutating endpoints. - Origin / Sec-Fetch / Host guard. Script-initiated cross-site requests get
403; top-level and iframe navigation stays allowed so the panel can embed the page. - Safe ids. Entry ids are limited to
[A-Za-z0-9._-]{1,64}and every log path is resolved inside the log directory, so/api/items/<id>/logscannot read other files. /healthzexposes only{ ok, version, pid }plus theX-LC-Daemonheader, which the Host uses to confirm it is talking to this plugin's daemon and not an unrelated process that happens to occupy port 3999.
The daemon can start and stop the commands you registered; it never runs anything on
its own. Run npm test to see the regression suite for these guarantees.
Layout
The console is this plugin. There is no separate project to install or keep in sync:
lib/ Host plugin (auto-starts the console) and the sidebar client bundle
console/ The console daemon + single-page UI, shipped as part of the package
scripts/ Developer helpers (start-console.cmd for manual debugging)
locale/, icon.svg, cordis.patch.yml
Data and logs live in ~/.dsh-service-hub/, so the console, the sidebar panel and a
manually started instance all read the same registry.
Development
npm test # security + API regression tests (node:test)
npm pack --dry-run # inspect the published file list
License
MIT
Comments
Loading…