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 运行时卸载或升级曾导致崩溃,建议先退出再操作。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • 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:desktop profile 不能用命令行管理,请在「插件管理」→「添加插件」里填入 @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 →

← 上一个 Prev dsh-team-rooms 下一个 Next awesome-dsh-plugin →