SSH session manager for DeepSeek Harness: saved profiles, agent ssh_run, interactive terminals, and SFTP with secrets kept in the DSH credential center.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Sycada/dsh-remote-ssh-tools
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
SSH session manager for DeepSeek Harness (incl. DSH Desktop). Save connection profiles once; let the agent run commands, open interactive terminals, and move files — while secrets live only in the DSH credential center.
Version: 0.1.2 · License: MIT · Changelog: CHANGELOG.md
Features
- Profiles — hosts, ports, users, auth types (password / key / agent), groups, notes.
- Agent one-shot runs —
ssh_run: stdout/stderr/exit code, timeouts, output caps, host-key checks. - Interactive terminals — browser xterm over a pure-JS ssh2 shell channel; resizable; survives page refresh; closing kills the session.
- SFTP —
ssh_sftp_list/upload/download; upload can create remote dirs, download refuses to overwrite by default. - Secret-safe — profiles store only credential refs; values live in
~/.dsh/.credentials.yaml; never in argv, chat, tool output or prompts. - Host-key fingerprint cache — accept-new by default,
strictrejects unknown/mismatched keys. - Zero-config for agents — a system-prompt section advertises tools and saved hosts in every session.
Install
This plugin is released via the GitHub repo (Sycada/dsh-remote-ssh-tools) as the package
dsh-remote-ssh-tools; it is not published to npm (the npm name dsh-remote-ssh-tools is
unclaimed). Note: a different project (Yan-Zero/dsh-remote-ssh) owns the npm package
dsh-remote-ssh — unrelated to this plugin. Use a GitHub dependency instead:
"dependencies": { "dsh-remote-ssh-tools": "https://github.com/Sycada/dsh-remote-ssh-tools.git#v0.1.2" },
"dsh": { "profile": { "bundles": [ /* existing… */ "dsh-remote-ssh-tools" ] } }
Run pnpm install in the profile dir, then restart DSH. For local iteration use a
file: specifier pointing at a source checkout.
After restart: Settings → left nav shows Remote SSH; Settings → Plugins lists a collapsible Remote SSH card.
Quick start
- Settings → Remote SSH → New profile (name/host/port/user/auth).
- Save, then set its password/passphrase under Set credentials.
- Click Test.
- Use it: ask the agent to run
uptimeon the profile, open a terminal (ssh_session_open+sidebar_open), or transfer files (ssh_sftp_*).
Agent tools (13)
ssh_profile_list/add/update/remove · ssh_profile_test · ssh_secret_status ·
ssh_run · ssh_session_open/list/close · ssh_sftp_list/upload/download
Never paste secrets into chat — pass passwordRef/refs; values live in the credential center.
Security & data
- No secret text in profile JSON; credential refs must match
^[A-Za-z_][A-Za-z0-9_]*$and are validated before any write. - Deleting a profile may optionally also clear its credential lines; refs shared with other profiles are skipped automatically.
- HTTP/WS routes sit behind the DSH browser-trust fence; sessions use unguessable tokens.
- Data:
~/.dsh/dsh-remote-ssh-tools/store.json(profiles + host-key cache),~/.dsh/.credentials.yaml(credential center).
Config (profile cordis.patch.yml → dsh-remote-ssh-tools config)
sshPath, connectTimeoutMs, keepaliveMs, runTimeoutMs, runOutputLimit,
maxSessions, terminalScrollback, hostKeyPolicy (accept-new|strict),
trustedHosts, defaultUser.
Compatibility
Pure JS ssh2 + xterm terminal: Windows / macOS / Linux. Requires DSH ≥ 0.1.1-rc.1, Node ≥ 20.
License
MIT
Links
More in this category
zhu1090093659/dsh-web-ui#packages/dsh-ssh★ 7488
SSH ops panel for DSH: web terminal, SFTP transfer with progress, local port forwarding, and one-command cluster execution across hosts; agents share the same host config.
zhu1090093659/dsh-web#packages/dsh-remote-web-ui★ 7488
Remote control of a dsh web workspace from phone or PC: QR-code pairing through a token-gated channel, SSE real-time sync, and separate mobile and full desktop GUI modes.
ZSeven-W/dsh-ios★ 288
A live iOS Simulator or USB-connected iPhone inside the conversation: 22 agent tools for booting, building, driving the UI by accessibility identity or OCR text, list-row actions and SwiftUI preview hot reload, plus a streaming sidebar panel you can tap and drag on.
saya-ch/dsh-mobile★ 260
Access DeepSeek Harness from the Android app or a mobile browser with secure LAN and remote connections, persistent device pairing, and a customizable mobile interface.
liguobao/deepseek-harness-remote★ 183
Multi-device remote access for DeepSeek Harness: continue an active session from your phone, tablet, browser, or another computer over an end-to-end encrypted channel (Noise IK + adaptive relay/WebRTC transport), with device authorization, ApiProxy-only remote capabilities, and read-only file preview via dsh-file-viewer — no shell, remote desktop, or write access.
wenbin-wb/dsh-bridge★ 158
Remote and mobile access for DeepSeek Harness: provides LAN QR code connection, Cloudflare/custom tunnels, WeChat, QQ, Feishu, Telegram bot integration, and security authentication.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.