DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Control — DSH Plugin for DeepSeek Harness
← Plugins
C

dsh-control

Control

One local window for the dsh instances on all your machines — remote sessions stream natively into your sidebar. 本地一个窗口,驱动你所有机器上的 dsh。

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:6mt/dsh-control#f2c772ef039f826fcfdd8bab13a7317f4cae1de9
READMECompatibilityVersions

Compatibility and provenance

Control is published as dsh-control and currently resolves to version 0.1.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/15/2026

Versions

0.1.1stable
10/15/2026
0.1.0stable
10/14/2026

Related plugins

Loading related plugins…

Latest
0.1.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/15/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in developer-tools.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseExperimental Inspector@deepseek-ai/dsh-experimental-inspectorExperimental cross-realm CDP hub for Host debugging and Client Runtime inspection

README

dsh-control

English | 中文

Every machine already runs dsh. Make this one window the front end for all of them.

Chat with the dsh instances on your other machines, natively from your local sidebar. Remote sessions stream back token by token; the remote uses its own model credentials, tools and sandbox. Zero changes on the remote. Zero dependencies. One-line install.

dsh-control in action

A real two-machine setup. Left: the remote machine's own dsh — the session there was created for you and auto-named 控制端·<local title> (①). Right: your local dsh — the same question runs on the remote (③ the model route is the environment name, cn-dsh2) and the answer lands in a local session inside the workspace the plugin created for that environment (②).

🎬 A 15-second capture (one-click connect → streaming reply) is being recorded.

Install

dsh plugin --profile <your profile> add github:6mt/dsh-control

Use the profile you already run (usually web or desktop). No build step, no native modules, no dependencies — the plugin is plain JavaScript and installs as-is.

GitHub slow or blocked? Install from the release tarball instead

Download dsh-control-0.1.1.tgz and run:

dsh plugin --profile <your profile> add ./dsh-control-0.1.1.tgz

After installing, fully quit and reopen dsh (⌘Q). A「远程 dsh 环境」panel appears in the right sidebar.

An npm package (dsh-control) is prepared and can be published later; the GitHub command above is the current install path.

Versions & updating

  • What you get: github:6mt/dsh-control installs the newest commit of main and pins it in your profile's lockfile — it does not silently follow later commits.
  • Update: dsh plugin --profile <your profile> update dsh-control (pnpm re-resolves the git ref and pulls the new code)
  • Pin a version: github:6mt/dsh-control#v0.1.0 (tag) or github:6mt/dsh-control#<commit>
  • Changes are recorded in CHANGELOG.md.

How is this different from dsh-remote / dsh-remote-ssh?

How the two approaches differ

Remote-workspace plugins (dsh-remote, …)dsh-control
The remote machine is afile system (SFTP tool set)dsh that is already running there
Sessions livelocal session + remote directoryremote sessions, native in your sidebar
Credentials & toolsconfigured locally, SSH config duplicatedthe remote's own — nothing copied
Remote needsonly SSHdsh installed (≥0.2.0-rc.2) with its web instance running
Changes on the remotesome deploy dsh for youzero (read-only probing + the remote's own API)

The two coexist (tested side by side): no dsh on the remote → use dsh-remote; dsh already there → use dsh-control.

What it does

The remote dsh environments panel

The「远程 dsh 环境」panel: type user@host and connect — the row then reports its state and whether the environment already has its workspace.

  • One-click connect — type user@host; the plugin probes the remote dsh, fetches its access token and opens an encrypted channel (~5 s)
  • Automatic workspace — each environment gets a same-named local workspace; any session created inside it automatically becomes a remote session
  • True streaming — remote replies flow in token by token, not dumped at the end
  • Paired naming — remote sessions are named 控制端·<local title>, so both sides match
  • Visible & self-healing — remote sessions are marked in the sidebar; disconnects are reported honestly and repaired by one click

Security

What it does on your machine: one state file ($DSH_HOME/dsh-control/state.json, mode 0600, holds the remote access tokens) and an on-demand SSH tunnel process. What it never does: no installs or writes on the remote, no lifecycle management of the remote dsh, never reads your other local credentials, tokens never enter logs. When passwordless SSH is not set up it shows the exact one-line fix — passwords are never stored. Details in SECURITY.md.

Known limitations

  • The remote must already run dsh with its web instance (otherwise use a remote-workspace plugin)
  • Connects over SSH (passwordless or configured key; a direct no-SSH mode is on the roadmap)
  • Sidebar markers and the streaming feel are verified by eye per release
  • Cancelling a remote turn is implemented but marked experimental

Development

node --check lib/*.js
for t in test/*.test.mjs; do node "$t"; done   # 52 checks: unit / contract / structural invariants
scripts/verify-boot-selfheal.sh                # boot self-heal (needs a local dsh runtime)

License

MIT © 6mt