DeepSeek Harness 插件

dsh-remote-ide

SSH remote IDE for DeepSeek Harness: explorer, SFTP editor, and a live SSH PTY terminal.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
harryopo/dsh-remote-ide
最近更新
2026年8月15日
分类
工具与能力
GitHub stars
3
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/harryopo/dsh-remote-ide
插件名:dsh-remote-ide
作者:harryopo

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

dsh-remote-ide

![npm version](https://www.npmjs.com/package/dsh-remote-ide) ![License](LICENSE)

SSH Remote IDE for DeepSeek Harness (DSH) — connect to a server over SSH and the IDE goes remote: the file explorer browses the server's directory tree, the editor reads/writes files over SFTP, and the terminal is a live SSH PTY. No agent installed on the server, nothing to configure remotely — just SSH.

> 中文版:README.zh-CN.md

---

Why

DeepSeek Harness is a powerful coding agent, but its web GUI works on local files. When your code, data or production box lives on a remote server, you either SSH in separately or fight with sync tools. dsh-remote-ide brings the whole IDE into the harness:

┌──────────────────────────── dsh web GUI ────────────────────────────┐
│  sidebar: [远程 IDE] → opens the right-side IDE workbench           │
│  ┌─────────── conversation (kept) ────────────┬───────────────────┐  │
│  │  agent chat keeps running while you work  │  REMOTE IDE       │  │
│  │                                            │  ┌─────────────┐ │  │
│  │                                            │  │ remote tree │ │  │
│  │                                            │  ├─────────────┤ │  │
│  │                                            │  │ editor tabs  │ │  │
│  │                                            │  │ (SFTP read/  │ │  │
│  │                                            │  │  write)      │ │  │
│  │                                            │  ├─────────────┤ │  │
│  │                                            │  │ xterm SSH    │ │  │
│  │                                            │  │ terminal     │ │  │
│  │                                            │  └─────────────┘ │  │
│  └────────────────────────────────────────────┴───────────────────┘  │
│                    │                    ↑                            │
│                    └── dsh host process ┘  ssh2 connection pool      │
└──────────────────────────────────────────────────────────────────────┘

Features

  • SSH host manager — password / private-key auth (with passphrase), ProxyJump chains, import from ~/.ssh/config, connection testing. Credentials stay in ~/.dsh/dsh-remote-ide.json (0600), secrets never reach the browser.
  • Remote file explorer — lazy-loading tree over SFTP with per-directory caching, refresh, inline rename/delete, new file/folder.
  • Remote editor — CodeMirror 6 with language support (TS/JS/Python/JSON/HTML/CSS/SQL/XML/Markdown); open reads the file via SFTP, Ctrl/Cmd+S saves it back to the server; binary sniff and 2 MB read cap keep the editor safe.
  • Remote terminal — xterm.js over a WebSocket-tunneled SSH PTY with resize, reconnect-safe input buffering and backpressure handling.
  • Agent tools (roadmap) — remote read/write/exec tools so the DSH agent itself can operate the connected server.
  • better-sidebar integration — when dsh-better-sidebar is installed, a "Remote IDE" tab appears in its workbench (additive; the standalone panel still works without it).
  • i18n — zh / en, follows the DSH language.

Install

Requires DSH (rc.6+) with a web profile, Node ≥ 22.

dsh plugin --profile web add dsh-remote-ide
dsh web

Restart dsh web after install (host-half change). The sidebar then shows a 远程 IDE / Remote IDE entry.

From source (development)

git clone https://github.com/<you>/dsh-remote-ide.git
cd dsh-remote-ide
pnpm install
pnpm build
dsh plugin --profile web add link:$(pwd)     # or link:C:\path\to\repo on Windows
dsh web

Quick start

1. Open the Remote IDE panel from the sidebar. 2. Add host (alias / host / port / user / auth) — or import from ~/.ssh/config. 3. Click Connect. The explorer switches to the server's home directory. 4. Browse, click a file to edit, Ctrl+S to save to the server. 5. + New terminal opens an SSH shell in the panel.

How it works

A dual-face DSH plugin riding only official NPM SDK packages (@deepseek-ai/dsh-*) — no dsh source changes:

  • Host half (src/index.ts, Node process): SshEngine (ssh2 connection pool, jump hosts, exec, PTY shells, SFTP CRUD), the /api/dsh-remote-ide/* REST family, and the /api/dsh-remote-ide/terminal WebSocket upgrade. Every route is loopback-fenced.
  • Browser half (src/client/, web GUI): host manager, remote explorer, CodeMirror editor, xterm terminal. The sidebar entry is DOM-injected with a self-healing MutationObserver (the shell exposes no plugin slot), following the dsh-ssh precedent.
Host process                        Browser (dsh web GUI)
┌──────────────────────┐           ┌──────────────────────────────┐
│ SshEngine (ssh2)     │ REST/WS   │ sidebar entry (DOM injection) │
│  ├─ connection pool  │◄─────────►│ Remote IDE panel             │
│  ├─ exec / PTY shell │           │  ├─ host manager             │
│  ├─ SFTP CRUD        │           │  ├─ remote file tree         │
│  └─ jump hosts       │           │  ├─ CodeMirror editor        │
│ store ~/.dsh/…json   │           │  └─ xterm terminal           │
└──────────────────────┘           └──────────────────────────────┘

Security notes

  • All API routes are loopback-only (127.0.0.1 / localhost + same-origin check). A LAN-exposed dsh web does not expose the remote-exec surface.
  • Passwords are stored plaintext in a 0600 user file (~/.dsh/dsh-remote-ide.json) — same model as dsh-ssh; prefer key auth.
  • The browser never receives stored secrets (summaries only).
  • Remote file reads are capped at 2 MB; binary files are refused with a clear error.

Roadmap

  • [x] Host manager + ssh-config import
  • [x] Remote explorer (SFTP tree)
  • [x] Remote editor (CodeMirror + SFTP read/write)
  • [x] Remote terminal (WebSocket SSH PTY)
  • [ ] Agent tools (per the official defineTool contract): remote_read / remote_write / remote_exec with typed parameter schemas, output.schema + pure presentCall/presentResult render intents, and run_in_background long ops via ctx.jobs.start — the DSH agent then operates the connected server from chat.
  • [ ] Conversation-node integration (the official external-UI path): the host emits a durable SessionEventMap family (remote-ide/*), the browser half registers a ConversationNodeDefinition + keyed Chat renderer through ctx.conversationEvents.register + ctx.slots.inject('conversation.chat.node'), so remote-exec results render as replayable rows in the chat flow.
  • [ ] Remote Git panel (status / diff / commit over SSH)
  • [ ] File search + upload/download with progress
  • [ ] Tunnel (local port forwarding)

Acknowledgements

This plugin stands on the shoulders of the DSH plugin ecosystem:

  • dsh-ssh (Apache-2.0) — the SSH engine architecture, WebSocket terminal protocol and DOM-injection patterns this project builds on.
  • dsh-better-sidebar (MIT) — the local IDE workbench whose service API this plugin integrates with.
  • ssh2 (MIT), xterm.js (MIT), CodeMirror (MIT) — the underlying libraries.

License

[Apache-2.0](LICENSE)