DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-console

I

dsh-console

Manifest valid

Slash-command console for dsh: /web start|stop|restart|status, /tunnel SSH forward management, one-shot /ask, and a console TUI launcher.

hasBundlePatch

dsh-console

Console commands for DeepSeek Harness: manage the web service, the SSH tunnel, one-shot questions, and an optional console TUI — straight from the slash-command plane.

Quick start

# 1. install the bundle
dsh plugin --profile web add dsh-console

# 2. restart dsh web, then use the commands
/web status
/tunnel status

Out of the box, /web and /tunnel status work with zero config (the plugin auto-detects the running dsh entry). Configure the tunnel host and the console TUI path in the profile's cordis.patch.yml:

- id: dsh-console
  config:
    tunnelHost: '192.168.1.100'        # your SSH server
    tunnelUser: 'root'
    tunnelKey: 'C:\\Users\\you\\.ssh\\id_rsa'
    consoleCommand: 'python C:\\tools\\dsh-tui\\main.py'

Then dsh plugin --profile web again + restart, and /tunnel start / /console are live.

Commands

| Command | Description | | --- | --- | | /web status | Is the web UI up? (port + PID) | | /web start | Background-start the web UI (node <dshBin> web --port <webPort>) | | /web stop | Stop the web UI process | | /web restart | Restart it | | /tunnel status | Is the SSH tunnel up? | | /tunnel start | Start the SSH tunnel (needs tunnelHost) | | /tunnel stop | Stop the tunnel | | /ask <问题> | One-shot question through the headless profile (timeout-bounded) | | /console | Launch the console TUI (needs consoleCommand) |

Configuration

All keys carry sensible defaults; set them in the profile's cordis.patch.yml (or a --patch overlay), overriding the row this bundle adds:

- id: dsh-console
  config:
    webPort: 3080            # dsh web UI port
    dshBin: ''               # path to apps/cli/lib/bin.js; empty = auto-detect
    tunnelHost: '192.168.1.100'
    tunnelUser: 'root'
    tunnelKey: 'C:\\Users\\you\\.ssh\\id_rsa'
    tunnelLocalPort: 3081
    tunnelRemotePort: 3080
    askTimeout: 150
    consoleCommand: 'python C:\\tools\\dsh-tui\\main.py'

| Key | Default | Meaning | | --- | --- | --- | | webPort | 3080 | The dsh web UI listens on 127.0.0.1:3080 by default; /web start spawns it there. | | dshBin | auto | Absolute path to your checkout's apps/cli/lib/bin.js. Empty = detected from the running process (process.argv[1]), so a from-source dsh usually needs no config. | | tunnelHost | '' | SSH server host. Empty disables /tunnel start. | | tunnelUser | root | SSH user on the server. | | tunnelKey | '' | Absolute path to your SSH private key (-i). Omit for agent/other auth. | | tunnelLocalPort | 3081 | Local listen port of the tunnel (127.0.0.1:3081). | | tunnelRemotePort | 3080 | Remote port the tunnel forwards to (127.0.0.1:3080 on the server). | | askTimeout | 150 | Seconds before /ask is killed. | | consoleCommand | '' | Shell command launching your console TUI. |

How the tunnel is wired

your machine                     SSH server (tunnelHost)
127.0.0.1:3081  ──ssh -L──▶  127.0.0.1:3080
   ▲                               ▲
   │  /tunnel start binds here     │  dsh web runs here (or any service)

/tunnel start runs ssh -N -L <tunnelLocalPort>:127.0.0.1:<tunnelRemotePort> <tunnelUser>@<tunnelHost> (with -i <tunnelKey> when set) as a detached process. /tunnel stop finds and kills the listener on tunnelLocalPort.

Typical setups

  • Local launcher (CLI/headless profile) — manage the web UI from a terminal: /web start → open http://127.0.0.1:3080; /web stop → stop it.
  • Remote web (this machine reaches another host) — point tunnelHost at the remote, browse http://127.0.0.1:<tunnelLocalPort>.
  • In the web profile itself/web status and /tunnel status are safe; /web stop|restart kill the process serving the current UI — manage deliberately.

Security notes

  • /web stop / /web restart kill the process serving the current UI when run from the web profile.
  • /tunnel start runs ssh with your configured key — only configure keys from sources you trust.
  • /ask runs the headless profile and consumes model quota; results are rendered by the command plane and never enter model history.

Development

npm test          # node test of the backend primitives (read-only)
pnpm pack         # build the installable tarball

The bundle has no build step: plain ESM, ships index.js + lib/ + cordis.patch.yml.

From the same category

reactive-resume

DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.

Tools & CapabilitiesManifest valid

41.7k

255/wk

MIT

Aug 24, 2026

dsh plugin --profile web add dsh-plugin-reactive-resume

by anywhere-labs

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

Tools & CapabilitiesManifest valid

26.8k

300/wk

MIT

TypeScript

Sep 15, 2026

dsh plugin --profile web add dsh-plugin-desktop

by MemTensor

Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support.

Tools & CapabilitiesManifest valid

11.4k

1k/wk

Apache-2.0

TypeScript

Sep 9, 2026

dsh plugin --profile web add @memtensor/memos-local-plugin

by zhu1090093659

DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop

Tools & CapabilitiesDevelopment & InfrastructureTerminal & ClientsModels & ProvidersManifest valid

7.6k

Apache-2.0

TypeScript

Sep 15, 2026

dsh plugin --profile web add dsh-web

by Devin-AXIS

Enterprise-grade, local-first Agent Workbench for people and agent teams. A unified multi-engine workspace for Codex Harness, DeepSeek Harness, and OpenCode, with unified plugins and Skills, multi-age

Tools & CapabilitiesManifest valid

6.1k

459/wk

NOASSERTION

TypeScript

Sep 15, 2026

dsh plugin --profile web add deepseek-idesign

by crafter-station

A public gallery of animated pets for Codex, Claude Code, DeepSeek Harness, Hermes, OpenCode, Gemini CLI, and more.

Tools & CapabilitiesManifest valid

4.1k

MIT

TypeScript

Sep 14, 2026

Index only — not installable