前言¶
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