Remote DC for dsh
English · 简体中文
Remote DC for dsh 是面向 DeepSeek Harness 的 Desktop Commander 非官方社区集成。
学校或公司内网的服务器在公网无法访问?快试试 Remote DC。
在校外也想看实验日志,或想在家确认公司服务器上的构建结果?在有权使用的目标机器上运行 Desktop Commander 代理,再从 DeepSeek Harness 登录同一个账户。设备能够出站连接官方服务时,你就能在 dsh 对话里找文件、读日志、编辑文档或操作终端。账户模式无需在目标机器上配置公网 IP、开放入站端口或安装 SSH 服务。
安装
兼容 dsh 0.2.2-rc.1 及以上。使用独立 CLI 时,宿主需要 Node.js 24.9 或以上。
桌面端打开 插件 → 安装已有插件,输入 dsh-remote-dc@0.1.1。Web profile 也可以用命令安装。
dsh plugin --profile web add dsh-remote-dc@0.1.1
也可从 GitHub v0.1.1 Release 下载安装包,在包所在目录运行以下命令。
dsh plugin --profile web add ./dsh-remote-dc-0.1.1.tgz
连接账户与配对设备
打开 设置 → Remote DC for dsh → 连接账户 → 打开授权页面。在运行 dsh 的电脑上,用浏览器完成 Desktop Commander 登录与授权。
在目标设备运行下方命令。用同一个 Desktop Commander 账户核对配对码,并让设备代理保持运行。
npx @wonderwhy-er/desktop-commander@latest remote回到设置页刷新设备列表。在对话里试一句「用 Remote DC for dsh 查看实验服务器上
/home/me/experiments目录的最新日志。」
设置页的 管理与配对设备 会打开官方控制台,可查看设备状态、添加设备或撤销访问。如果设备处于离线状态,检查目标机器上的代理进程和出站网络。官方配对指南
账户工具和凭据
- 文件、搜索、终端、设备管理、账户和调用记录等能力由官方 MCP 向当前账户公布。插件按原始 schema 动态注册这些工具,例如
mcp__remote_desktop_commander__list_devices,并将选择设备所需的deviceId等参数照常传给服务。工具可用性随上游账户和设备权限变化。 - OAuth grant 保存在 dsh 宿主的凭据存储中,跨重启恢复。设置页仅显示连接状态、已加载工具数和上游返回的设备信息。访问令牌失效时,插件尝试刷新。需要用户授权时,设置页显示重新连接入口。
- 断开连接 删除 dsh 中的授权凭据并卸载该账户的工具。要在 Desktop Commander 侧撤销授权或配对,请使用其官方控制台。
- Codex 插件 的宿主工具审核与权限界面由 OpenAI 提供。dsh 接入同一官方服务,并使用 dsh 自身的工具与权限界面。
可选的本机与 SSH 模式
在每台被访问的电脑上安装 Desktop Commander,远端需要 Node.js 22.12+。上游独立升级,本版本使用 0.3.3 验证。
npm install --global @wonderwhy-er/desktop-commander@0.3.3 command -v desktop-commander在运行 dsh 的电脑上,为远端配置一个 OpenSSH 主机别名。以下配置中的主机名、账号和密钥路径按实际情况填写。先通过可信渠道确认服务器的主机密钥并保存到
known_hosts。Host dsh-workstation HostName workstation.example.org User dc IdentityFile ~/.ssh/dsh_workstation_ed25519 IdentitiesOnly yesssh -T -o BatchMode=yes -o StrictHostKeyChecking=yes dsh-workstation 'command -v desktop-commander'若命令在非交互会话中找不到 Node.js,配置远端的非交互 PATH,或将
executable指向使用 Node.js 绝对路径的启动脚本。SSH 密钥使用系统配置或由 ssh-agent 解锁。只访问本机时无需此步骤。按上文安装插件。默认安装时设备列表为空。将 设备配置示例 另存为
rdc.patch.yml,填写设备并把相应的enabled改为true。初次运行可以使用临时 overlay。dsh --profile web --patch ./rdc.patch.yml也可将示例的 YAML 条目合并到
${DSH_HOME:-$HOME/.dsh}/profiles/web/cordis.patch.yml,重启该 profile。已有同 ID 的条目时,更新其config.devices。在会话里先确认设备状态,例如「用 remote_dc_list_devices 列出设备。用 workstation 上的 Desktop Commander 列出 /home/dc/projects 的第一层目录。」
本机最小配置如下。若 dsh 的 PATH 找不到 desktop-commander,填写安装命令返回的绝对路径。
- id: remote-dc
config:
devices:
local:
transport: local
access: read
工具与访问模式
| 模式 | 提供的能力 |
|---|---|
read,默认 |
目录列表、文件元数据、单个或多个文件读取、后台搜索、分页和取消 |
write |
增加创建目录、写入或追加、精确块编辑、移动和 PDF 编辑 |
shell |
增加进程启动、输出读取、交互输入、会话与进程列表、终止 |
每台设备独立注册 mcp__rdc_<设备ID>__<工具名>。例如 mcp__rdc_workstation__read_file。使用目标设备上的绝对路径,并在同一个设备命名空间下消费搜索会话或进程 PID。MCP 重新连接后由新的后端进程提供会话,旧会话 ID 和 PID 不可复用。PDF 输出由上游实现,生成 PDF 可能需要远端 Chrome。
| 字段 | 用法 |
|---|---|
| 设备 ID | 小写英文字母开头,可带小写字母、数字和下划线,总长最多 24 |
transport |
ssh 或 local |
sshHost |
SSH 模式必填,匹配本机 ssh_config 的 Host 别名 |
sshConfig |
可选,本机 OpenSSH 配置文件的绝对路径 |
executable |
目标设备上的绝对路径,默认在其 PATH 中查找 desktop-commander |
cwd |
可选,目标设备上的工作目录。SSH 命令使用 POSIX 兼容登录 shell |
enabled |
默认为 true,设为 false 会停用设备 |
startupTimeoutMs / toolCallTimeoutMs |
默认 20 秒 / 60 秒 |
本机与 SSH 的运行权限
SSH 连接使用批处理模式、严格的主机密钥验证,并关闭转发和 SSH 连接复用。SSH 模式不启动公网监听端口。允许的工具同时在发现和调用阶段校验。工具集合排除配置修改、反馈、上游用量查询和最近调用记录。文件读取提供设备文件路径。上游遥测通过环境变量关闭,上游仍可获取功能配置、保留本地调用记录,以及在提供 PDF 等功能时使用其运行依赖。
access 限制 dsh 可调用的工具。数据访问由目标账号的操作系统权限和 Desktop Commander 的文件工具配置决定。特别是 shell 模式能在目标设备上按登录用户权限运行命令和管理进程,cwd 仅设置启动目录。用目标账号或容器的权限控制可触达的文件和进程。dsh 会话也可能记录工具参数及返回内容。
连接失败时,检查 dsh 启动日志及用 SSH 测试该别名。SSH 会话需能直接执行上游程序,登录脚本需要保持标准输出留给 MCP。临时断开时 dsh 会自动重连。要停用设备,将 enabled 设为 false 并重启 profile。卸载整个插件可运行:
dsh plugin --profile web remove dsh-remote-dc
上游项目与致谢
- Desktop Commander 团队提供官方 Remote MCP、设备配对代理和文件、搜索、终端等远程工具。dsh-remote-dc 是面向 DeepSeek Harness 的独立集成,通过官方 Streamable HTTP 端点和 OAuth 2.0 + PKCE 连接账户。Desktop Commander 官方网站 · Remote Desktop Commander · Desktop Commander 本机 MCP
实现和验证
src/account.js连接官方 MCP 服务、注册上游工具、刷新凭据和管理连接。src/oauth.js使用 MCP SDK 驱动浏览器 OAuth 和本机回调。src/client.cjs注册 dsh 设置页。src/settings-route.js通过 dsh 已认证的宿主接口提供账户操作。npm test检查 OAuth、PKCE、状态校验、刷新和旧版 SSH 模式。npm run test:dsh使用临时 profile 安装 tarball、验证 OAuth 登录回调、MCP 工具发现、设备参数透传、令牌轮换、账号恢复和插件卸载。
许可证
插件代码以 MIT 许可证发布。LICENSE
No comments yet. Be the first to write one.