Skip to content

dsh-ssh

⭐ 9 · ✅ active · plugin

Type plugin Category Search & research
Stars ⭐ 9 Status ✅ active
Author dsh-ssh Updated —
Subcategory 🌐 Web search Capabilities coding, search

One-liner

SSH remote workspaces for DeepSeek Harness — run bash, file, and search tools on any remote machine.

About

SSH remote-execution plugin for DeepSeek Harness. Moves Bash, file tools, PTY terminals, and LSP onto a remote host over a single SSH connection — with multi-hop ProxyJump chains, SFTP upload/download, and full auth coverage. Built on ssh2.

📦 Install

npm i dsh-ssh

🚀 Quick Start

- id: ssh
  name: dsh-ssh/ssh            # ctx.ssh connection owner (config above)
- id: subprocess-ssh
  name: dsh-ssh/subprocess     # ctx.subprocess remote provider
- id: fs-ssh
  name: dsh-ssh/fs             # ctx.fs remote provider (SFTP)

📚 Learn more

Architecture: local brain, remote hands

Your machine (deepseek-harness) Remote host ┌────────────────────────────────────┐ SSH ┌──────────────────────┐ │ agent loop (orchestration, memory) │◄──────────►│ bash / command exec │ │ LLM API calls (direct, no egress) │ exec │ filesystem (SFTP) │ │ credentials / config / sessions │ pty │ PTY terminals │ │ ctx.subprocess → dsh-ssh │ sftp │ LSP / git / builds │ │ ctx.fs → dsh-ssh │ │ │ └────────

Quick start (cordis.yml)

One row mounts everything — the shared connection owner plus both remote providers: name: dsh-ssh config: host: server.example.com # target host (required; a ~/.ssh/config alias like prod works too) port: 22 username: root # required privateKey: ~/.ssh/id_ed25519 # identity-file path, or PEM content # password: 'xxx' # password auth (mutually usable with privateKey) # agent: 'pageant' # Window

~/.ssh/config hosts in the sidebar (config.hosts)

The「SSH 配置主机」sidebar section is driven by the config.hosts endpoint: every opening re-reads the host machine's ~/.ssh/config and lists its exact Host aliases (wildcard patterns such as *.example.com stay hidden), each with the resolved user@host:port, IdentityFile presence, and ProxyJump presence: chain), **registers it silently, and drops you straight into that host's directory br

Picker configuration (dsh-ssh/picker)

dsh-ssh/picker now serves only the ctx.directoryPicker browse backend (local directories keep working on Windows hosts; POSIX absolute paths go to the aggregate SSH connection). The client UI's remote connection list and remote directory browsing ride the dsh-ssh/web RPC channel instead.