前言¶
DeepSeek Harness(dsh)的 Web 界面默认是对话优先:模型在左侧聊,文件读写和命令执行走工具调用,结果再写回会话日志。日常改一段脚本、核对一次 diff、看一眼远程机器上的日志,往往还要切到编辑器或另开 SSH。代码在对话里,工作区却不在同一个窗口里。
官方把 Harness 的设计概括成 Everything is a plugin(一切皆插件):模型适配、工具、会话、沙箱和界面都可以在配置层增删,不必改核心源码。社区因此出现了一批只补一块能力的插件。dsh-IDE 补的是 Web GUI 这一侧——把右侧面板做成 JupyterLab 式工作区,并加上 SSH 远程模式,让本机上的模型去操作远程文件系统和终端。
本文按社区插件目录页、GitHub 仓库 README / package.json / CHANGELOG.md / NOTICE,以及官方 deepseek-ai/deepseek-harness 交叉核对后整理。社区目录 deepseek-harness-plugin.com 是独立站点,与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。Harness 目前仍是开发者预览,插件可能随核心升级出现不兼容变更。
这是什么¶
dsh-IDE 是一款面向 DeepSeek Harness Web GUI 的一体化开发环境插件。GitHub 仓库由 chenw2759-wq 维护,社区目录归在「工具与能力」。许可证是 BSD-3-Clause。仓库 package.json 当前版本 0.1.0,private 为 true;GitHub API 显示主要语言是 TypeScript。截至 2026-08-17,仓库 star 数为 19(社区目录页当时仍显示 6,以仓库页面为准)。最近一次推送在 2026-08-17,对应 commit 36a8f9e。
它解决两类问题:
- 本机:在网页里直接浏览、预览、编辑、运行工作区文件,并查看 Agent 改文件后的红绿 diff,不必再切外部 IDE。
- 远程:配置 SSH 主机后,文件树、读写、终端和 bash 透明切到远端,LLM 与 Agent 循环仍在本机——仓库自己的说法是「本地大脑、远程手脚」。
仓库是 pnpm monorepo,三个包一起构成完整能力:
| 包 | 作用 |
|---|---|
dsh-aionui-panel |
右侧面板:文件树、预览、终端、编辑 diff、类型色标签 |
dsh-ssh |
SSH 引擎:ssh2 连接池、exec / PTY / SFTP |
dsh-easyssh |
远程工作区:模式切换、接缝门面、Web GUI 前端 |
品牌名是 dsh-IDE,安装标识仍沿用 dsh-easyssh,不随品牌改名。远程 ctx.fs / ctx.subprocess 实现移植并改编自 UynajGI/dsh-ssh(MIT,原作者 yuunagi_cn),详见仓库 NOTICE。
核心功能¶
右侧工作区与四种布局¶
安装后,Web 界面右侧出现可停靠的工作区抽屉:文件树和预览/编辑同框。预览 tab 条右侧用「⇊ / ⇉ / ⇱」在三种展示之间切换,再加上三栏 IDE:
- 下框:预览停在对话下方
- 右栏(默认):预览停在右侧抽屉
- 浮动:覆盖在对话框上方,宽度更大
- 三栏 IDE:对话 | 文件树 | 预览并排
按住预览 tab 条或工具栏空白处,可以把预览拖成浮窗;拖到屏幕右缘松手会停靠回右栏。系统设置里有「右边栏工作区」栏目,8 项功能开关(自动 diff、监视圆点、Git 角标、语法高亮、缩放预览、三栏 IDE、终端停靠、会话隔离)和 9 项编辑工具,改动即时生效并持久化。
文件树、Git 角标与监视路径¶
左侧文件树支持懒加载、按文件名搜索、右键新建文件/文件夹、行内重命名、复制粘贴、下载,以及删除进回收站。Git 状态用角标标出(A/M/D/R/U/C)。本地目录和 SSH 远程目录会自动切换;同一文件不会重复开 tab,磁盘变化时在原 tab 上刷新。
监视路径默认只看一级目录。目录行右侧圆点可逐级切换:浅黄监视下一级,绿色监视全部层级。构建产物、临时文件、锁文件无论是否标记都不会自动弹出。
代码编辑、运行与终端¶
代码区提供语法高亮(Trae 风格配色,跟随浅色/深色主题)、行号和斑马底纹,Ctrl+S 保存,保存带 mtime 冲突检测。工具栏「▶ 运行」可直接执行当前文件(python / node / bash 等);.R / .r 走 Rscript,.Rmd 按 Markdown 预览。
「>_ 终端」打开命令行面板,停靠在聊天栏底部约五分之一处。SSH 模式下,运行和终端都在远程主机执行。
Trae 风格红绿 diff¶
Agent 工具写文件、其他进程改文件,或本地保存之后,下栏会弹出「Update(路径)」卡片:删除行红底、新增行绿底,带双列行号和增删统计。全新文件弹全绿卡,被删除的文件弹全红卡。点「编辑最新版本」可在编辑器里改最新代码再保存;点「刷新」红绿标注不会丢。
多格式预览与可视化编辑¶
面板按文件类型用颜色标签区分:橙=图片、绿=CSV、蓝=Python、黄=JS/TS、紫=JSON、青=Markdown、红=diff、灰=日志。支持的预览包括:
- Markdown / HTML / 图片 / CSV / 日志
- Office:docx、xlsx(首个工作表)、pptx(逐页卡片)
- 图片与 HTML 支持工具栏缩放和 Ctrl+滚轮
Markdown 和 HTML 可以进入 Word 式可视化编辑:在渲染结果上直接改,保存时 Markdown 转回源码、HTML 回写整个文档。docx / xlsx / pptx 也能框内富文本编辑,保存时由 HTML 重建 Office 包并以二进制写回。已知限制:图表(word/charts/*)、嵌入对象(嵌入 Excel)等复杂结构暂不解析,编辑保存也不保留;PPT 不保留动画与切换效果。
SSH 远程工作区¶
右上角(session log 左侧)的 SSH 按钮用于配置主机:别名、主机、端口、用户名、密码或密钥、远程根目录。配置持久化在 ~/.dsh/dsh-ssh.json,支持多机、ProxyJump 跳板链和密钥 passphrase。进入 SSH 模式后:
- 右侧面板切到远程文件树
- 模型侧的 read / write / edit / glob / grep 与 bash / 终端在远程执行
- 相对路径以
remoteRoot(默认~)为基准,不要填 Windows 本机路径 - 每个会话记住自己的设备与模式;限制是宿主侧 fs/subprocess 仍按全局模式路由,隔离作用在面板和显式
remote_*工具上
显式远程工具包括 remote_status、remote_ls、remote_read、remote_write、remote_mkdir、remote_rm、remote_rename、remote_glob、remote_grep,以及 ssh_exec / ssh_upload / ssh_download。远程文件树会跟随符号链接目录(README 举例 AutoDL 的 /root/autodl-tmp)。
接缝切换由 dsh-easyssh 自带的 cordis.patch.yml 在安装时自动应用:禁用部署自带的 fs-sandbox / subprocess,挂上模式路由门面 easyssh-fs / easyssh-subprocess。本地模式仍委托回沙箱实现;不需要手动编辑 cordis.patch.yml。
安装与启用¶
前置要求(仓库 README):Node.js ≥ 22、pnpm、已安装 dsh(npx @deepseek-ai/dsh)。dsh-easyssh 的 engines 写的是 ^22.19.0 || >=24.0.0,peer 依赖对齐 @deepseek-ai/dsh-* 的 ^0.1.0-rc.6。该插件面向 Web profile,需要网页界面。
社区目录页给出的安装命令原文如下,在 DeepSeek Harness 终端中运行:
dsh plugin add github:chenw2759-wq/dsh-IDE
如需可复现安装,目录页建议固定 commit 哈希。截至 2026-08-17,main 最新提交为 36a8f9e84d218638073772d67f7a31684fcd1bb3:
dsh plugin add github:chenw2759-wq/dsh-IDE#36a8f9e84d218638073772d67f7a31684fcd1bb3
仓库 README 的安装路径与目录一键命令并不相同:根仓库是三个包的 monorepo,文档要求克隆后分别构建并加到 web profile。以更接近一手的 README 为准时,步骤如下(把路径换成本机绝对路径):
git clone https://github.com/chenw2759-wq/dsh-IDE.git
cd dsh-IDE
pnpm install
pnpm --filter "./packages/dsh-aionui-panel" build
pnpm --filter "./packages/dsh-ssh" build
pnpm --filter "./packages/dsh-easyssh" build
dsh plugin --profile web add file:/你的绝对路径/dsh-IDE/packages/dsh-aionui-panel
dsh plugin --profile web add file:/你的绝对路径/dsh-IDE/packages/dsh-ssh
dsh plugin --profile web add file:/你的绝对路径/dsh-IDE/packages/dsh-easyssh
dsh-ssh 依赖原生库 ssh2 / cpu-features。pnpm 10+ 默认会拦截依赖构建脚本,dsh plugin add 可能报 ERR_PNPM_IGNORED_BUILDS,并在 pnpm-workspace.yaml 写入占位 allowBuilds。把对应项改成 true 后重新执行 dsh plugin add(重复执行是幂等的)。当前仓库根目录的 pnpm-workspace.yaml 已将 ssh2、cpu-features 等设为 true。
0.1.0 之前的旧版本需要手动往 cordis.patch.yml 写接缝补丁。若升级前手写过补丁,必须删掉、恢复为 [],否则会和自动补丁重复插入同一 loader,启动时报 duplicate loader entry id。
安装后重启 Web:
npx @deepseek-ai/dsh web
打开 http://127.0.0.1:3080,用 Ctrl+F5 硬刷新(浏览器缓存旧 client 包时必做)。回滚方式是把 cordis.patch.yml 恢复为 [] 再重启。
典型用法¶
下面步骤来自仓库 README,可在本机 Web GUI 复现。
- 只做本机工作区:打开
.py/.md/.js等文件,直接编辑,Ctrl+S保存。需要看渲染结果时,用 tab 条切换下框 / 右栏 / 浮动。 - 运行当前文件:打开脚本后点工具栏「▶ 运行」。打开终端用预览工具栏或文件栏 tab 条上的「>_」。
- 核对 Agent 改动:外部编辑或保存后等待下栏 diff 卡;需要改最新版本时点「编辑最新版本」。
- 进入 SSH 模式:会话右上角点 SSH → 填主机信息 → 保存并测试连接 → 进入。右侧文件树切到远程;对 Agent 说「读/改远程文件」或「在服务器上执行命令」,普通工具即在远端跑。
- 回到本机:右上角切换按钮退出 SSH 模式。
路径规则:远程绝对路径直接用;相对路径以远程根为准;不要把 Windows 本机路径发给远程工具。
适用场景与注意事项¶
适合已经在用 dsh web、希望少切窗口的人:本机改脚本、看 Markdown / Office、核对 Agent 写文件的 diff,或者本机跑模型、代码和数据在 GPU 云主机 / 跳板机后面。远程 grep / glob / realpath 依赖 GNU find、grep 和 coreutils,目标机应是常见的 Linux 环境。
安装和使用前需要看清这些边界:
- 插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证;需要可复现安装时固定 commit 哈希。
- SSH 模式下本机沙箱不对远程执行生效。远程操作消耗真实远程资源,命令先确认再执行。
- 认证材料存在
~/.dsh/dsh-ssh.json(权限 0600)。路由仅 loopback,并做同源校验。 - 会话级 SSH 隔离不覆盖宿主全局 fs/subprocess 接缝;多个会话同时连不同主机时,面板状态可以分开,工具路由仍是全局模式。
- Office 预览在浏览器里做 ZIP 解析,不额外装宿主依赖;复杂排版(页眉页脚、分栏、图表、嵌入对象)保真度有限,CHANGELOG 已标明。
CHANGELOG.md把 v0.1.x 记为已具备的能力,v0.2.0 仍标注「开发中」。不要把开发中条目当成已发布版本号。
小结¶
dsh-IDE 把 DeepSeek Harness 的网页对话界面补成可浏览、可编辑、可运行、可看 diff 的工作区,再用 SSH 把同一套面板接到远程机器。维护者是 chenw2759-wq,许可证 BSD-3-Clause,远程实现另有 MIT 来源声明。社区目录的安装命令是 dsh plugin add github:chenw2759-wq/dsh-IDE;要按仓库文档落地,需要把三个包装进 web profile,并硬刷新浏览器。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-ide/
GitHub:https://github.com/chenw2759-wq/dsh-IDE