yh4922/dsh-workspace
A remote workspace plugin for DeepSeek Harness (DSH). It manages SSH hosts inside DSH, opens remote terminals, lets you browse and edit remote files and inspect remote Git, and adds remote directories as workspaces, so the Agent's file operations and commands run on the remote machine.
Project Overview项目介绍
dsh-workspace is a remote-workspace plugin purpose-built for DeepSeek Harness (DSH), shipped as a cordis bundle that registers through the standard dsh plugin add @yh4922/dsh-workspace command against a named profile, with alternate installation from GitHub Releases .tgz artifacts via local path, and a manual add flow inside the Desktop client's plugin manager since the desktop profile is not CLI-manageable. The plugin centers on SSH host orchestration: multi-level host groups with inherited defaults, jump-host chains, SOCKS5 and HTTP proxy support, and TOFU fingerprint pinning that blocks silently-rotated host keys. It ships an interactive terminal whose page and sidebar share one session with automatic reconnect, a Monaco-based file manager offering syntax highlighting, Ctrl+S save with conflict detection, Markdown/HTML/image previews, and full right-click tree operations, plus an inline Git view with stage/discard/commit, diff, and a forked commit graph.
In normal use the operator opens the Remote Workspace sidebar, sets a master password on first launch, then creates host entries inside groups and verifies reachability with the built-in Test Connection button before opening file, terminal, or log tabs. To edit remote code, the user clicks DSH's native Add Workspace dialog (the takeover toggle defaults on) and picks a remote host plus path, which mounts the remote directory as a first-class workspace; the session sidebar then exposes File Manager, Git Repository, and SSH Terminal tabs, and any Agent read, write, edit, glob, grep, or bash call issued inside that remote session executes against the remote machine rather than the local box, leaving local sessions untouched.
Dependencies are DSH >= 0.1.5-rc.2 (covering both the 0.1.x and 0.2.x lines, validated against DSH Desktop 2.0.16 and host 0.2.0-rc.1), Node.js >= 20, and the mandatory npm sibling dsh-better-sidebar which must be added first or the sidebar tabs will not render; the underlying ssh2 module has native build scripts that pnpm will block, so ssh2 and cpu-features must be allowed, and a Git-source install is unsupported because the repository does not ship compiled lib/ output. The license is MIT, secrets live locally under AES-256-GCM plus scrypt with optional DPAPI-backed auto-unlock on Windows, and remote commands bypass the local sandbox so read-only sandbox mode will reject writes and bash. Upgrades require remove-then-add because the manager cannot distinguish repeat installs, the legacy dsh-workspace package name from 0.7.7 and earlier must be uninstalled first to avoid two coexisting copies, and uninstalling or upgrading while DSH Desktop is running has previously crashed the host, so users are advised to quit first.
dsh-workspace 是面向 DeepSeek Harness(DSH)的远程工作区插件,作为 cordis 插件通过 dsh plugin add @yh4922/dsh-workspace 安装到指定 profile,也可从 GitHub Releases 下载 .tgz 后用本地路径挂载,DSH Desktop 用户需在「插件管理」中手动添加。核心能力围绕 SSH 远程主机展开:主机分组、跳板链、SOCKS5/HTTP 代理、TOFU 主机指纹;交互式终端共用页面与侧栏会话并自动重连;Monaco 文件编辑器支持高亮、Ctrl+S 保存、冲突检测与 Markdown/HTML/图片预览;内置 Git 仓库视图提供暂存、提交、diff 与带分叉图的提交历史。
典型流程是先在侧栏打开「远程工作区」并设置主密码,新建主机分组并通过「测试连接」验证,随后即可在「主机/文件/终端/连接日志」页签间切换浏览远程文件、打开终端或查看日志。需要修改远程代码时,可点 DSH 的「添加工作区」选择远程主机目录,把远程目录挂为工作区,会话侧栏即可调用 Agent 的 read/write/edit/glob/grep/bash 工具,所有读写与命令都直接作用于远端机器,而本地会话不受影响。该插件主要面向需要在 DSH 内安全编辑远程服务器代码的开发者与运维人员。
依赖方面要求 DSH >= 0.1.5-rc.2、Node.js >= 20,并强制依赖 npm 上的 dsh-better-sidebar 插件提供侧栏能力,安装前需先 dsh plugin add dsh-better-sidebar。底层使用 ssh2,包含原生构建脚本,pnpm 安装拦截时需手动放行 ssh2 与 cpu-features;不能从 Git 仓库直接安装(仓库不含 lib/)。许可证为 MIT,凭据采用 AES-256-GCM + scrypt 加密保存于本机。升级必须先 remove 再 add,且 0.7.7 及更早版本的旧包名 dsh-workspace 需先卸载以避免冲突;在 DSH Desktop 运行时卸载或升级曾导致崩溃,建议先退出再操作。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-workspace(yh4922/dsh-workspace)
仓库:https://github.com/yh4922/dsh-workspace
本站详情页:https://www.yhbd.top/plugins/yh4922-dsh-workspace/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证未声明 · ⭐ 4 · 最近提交 2026-09-30 · 主语言 TypeScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- No license declared - all rights reserved by default; ask the author before commercial use or redistribution未声明开源许可证 —— 默认「保留所有权利」,商用或再分发前先问作者
- Only 4 stars - very few users, little community feedback星标只有 4,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add dsh-better-sidebar
把 yh4922/dsh-workspace 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
# dsh-workspace
简体中文 | English
DeepSeek Harness(DSH)的远程工作区插件:在 DSH 里管理 SSH 主机,打开远程终端、浏览和编辑远程文件、查看远程 Git,并把远程目录添加为工作区,让 Agent 的读写和命令都作用在远程机器上。
功能
- 主机管理:多层分组、组默认值继承、跳板机链、SOCKS5 / HTTP 代理;首次连接记录主机指纹(TOFU),之后指纹变化会拦截
- 凭据保险箱:密码、私钥等敏感字段用主密码加密(AES-256-GCM + scrypt)后保存在本机;可选「在本机记住」自动解锁(Windows 用 DPAPI 保护)
- SSH 终端:交互式终端,页面与侧边栏共用同一会话,断线自动重连
- 文件管理(原「远程文件」,本地与远程工作区通用):目录树、Monaco 编辑器(语法高亮、Ctrl+S 保存、冲突检测)、Markdown / HTML / 图片预览、右键菜单(新建 / 上传 / 下载 / 重命名 / 复制 / 粘贴 / 删除 / 复制路径);可接管 DSH 自带的「文件」侧栏
- Git 仓库(原「远程 Git」,本地与远程工作区通用):改动(暂存 / 放弃 / 提交)、diff、带分叉图的提交历史;可查看任意分支,本地分支不检出也能直接修改和提交
- 检查更新:全局配置里一键检查 GitHub 最新版本并下载安装(GitHub 不通时回退 npm 官方源),也可上传离线 .tgz 包升级
- 添加工作区:接管 DSH 的「添加工作区」弹窗,可选本机目录(快捷位置 + 盘符)或远程主机目录(按分组展示)
- 远程 Agent 工具:远程工作区会话里,Agent 的 read / write / edit / glob / grep / bash 都在远程主机上执行,本地会话不受影响
依赖
| 依赖 | 说明 |
|---|---|
| DSH | >= 0.1.5-rc.2(同时兼容 0.1.x 与 0.2.x;开发基于 DSH Desktop 2.0.16 / 宿主 0.2.0-rc.1) |
| Node.js | >= 20 |
DSH-better-sidebar(npm 包 dsh-better-sidebar) |
侧边栏相关功能依赖这个插件(右侧栏里的远程文件、远程 Git、SSH 终端)。请先安装并启用它 |
安装
1. 先安装侧边栏插件
dsh plugin --profile <profile> add dsh-better-sidebar
2. 安装 dsh-workspace
从 npm 安装最新版(命令不带版本号,自动装最新一版):
dsh plugin --profile <profile> add @yh4922/dsh-workspace
也可以装 Releases 里的最新安装包,或下载后用本地路径安装(文件名带版本号):
dsh plugin --profile <profile> add https://github.com/yh4922/dsh-workspace/releases/latest/download/dsh-workspace.tgz
dsh plugin --profile <profile> add /path/to/yh4922-dsh-workspace-<版本>.tgz
<profile>是要安装到的 profile,例如web- 升级:先
dsh plugin --profile <profile> remove @yh4922/dsh-workspace,再用上面的命令安装。对同一个包/地址再装一次时,插件管理器判断不出这次装的是哪个包(依赖值没有变化),会回滚并提示「无法从依赖变更中确定安装了哪一个包」 - 0.7.7 及更早版本的用户:当时的包名是
dsh-workspace,请先dsh plugin --profile <profile> remove dsh-workspace再装新包名;否则会同时存在两个包,运行的仍是旧代码 - DSH Desktop:
desktopprofile 不能用命令行管理,请在「插件管理」→「添加插件」里填入@yh4922/dsh-workspace或上面的地址;升级同样是先移除、再添加(插件管理里没有「更新」按钮) - 本插件依赖
ssh2,其中有原生构建脚本。pnpm 拦下构建时,在插件管理的失败界面点「允许这些脚本并重试」;命令行安装则按提示放行ssh2、cpu-features - 不能直接从 Git 仓库地址安装:仓库里没有编译产物(
lib/)
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
chenw2759-wq/dsh-IDE
ZhangFengshun/dsh-remote-ssh
caoyiwei850/dsh-ssh-ops
jingyi0605/Codingns4DSH
PeterBon/dsh-hooks
Jesse-njx/dsh-chatnode-wechat