前言¶
在 DeepSeek Harness(DSH)裏寫代碼、看 diff、跑 Git 和終端,常見做法是裝側邊欄裏的編輯器插件。側邊欄會佔對話區域寬度;有的方案用 CodeMirror,體積更小,但編輯手感與 VS Code 不一致;dsh-vscode-mode 等功能更全,包體約 27 MB,仍 dock 在右側。若你希望保留 Monaco 的日常編輯體驗,又不想讓工作臺擠佔會話面板,可以單獨裝一個客戶端插件:beiryang/dsh-vscode-ide。
這是什麼¶
dsh-vscode-ide 是面向 DeepSeek Harness 的 VS Code 風格工作臺:編輯器核心是 Monaco(與 VS Code 同源),界面是可拖動的獨立浮動窗口,功能以內置模塊按需呈現,並對外提供 ctx.vscodeIde 服務。它不是 VS Code 移植版,不能加載 .vsix 擴展。維護者爲 beiryang,在 DSH 插件目錄中歸類爲客戶端;倉庫 GitHub 採用 MIT 許可證。README 自述包體約 11 MB,相對同生態裏 dock 在側欄的 Monaco 方案更側重「編輯手感 + 不搶對話寬度」。
與其他編輯器插件的差異¶
README 用表格概括了取捨(佈局、編輯器、擴展性、體積)。dsh-vscode-ide 的浮動工作臺不會擠壓會話區;編輯器爲 Monaco;擴展方式爲內置模塊加公開服務,而非完整 extension host / LSP / SVN 全家桶。若你需要 LSP、SVN、擴展管理器,應看 dsh-vscode-mode;若只要極輕量文件樹或 Git 審查,可看 dsh-ide / dock 系列。
核心功能¶
以下能力均來自倉庫 README(Features 1.1)與 package.json 描述,按使用場景歸納。
浮動窗口與 Peek¶
工作臺可拖動、八向縮放、最大化;頂部保留約 44px 安全條,便於點到 DSH 自身窗口按鈕;幾何位置會記住。Ctrl+Alt+Q 進入 Peek:隱藏工作臺以便閱讀對話,再按一次恢復,編輯狀態、滾動與光標保持;也可拖動浮動按鈕實現同樣切換。
文件與編輯¶
文件資源管理器跟隨當前會話工作目錄,目錄懶加載;遠程工作區經 SFTP 訪問。支持右鍵新建/重命名/刪除、複製路徑、在系統文件管理器中Reveal,拖拽移動文件,鍵盤 ↑/↓/Enter/F2/Delete 操作。Monaco 按需加載 ESM,每個文件一個 ITextModel,切標籤不丟未保存內容。標籤:單擊預覽(斜體)、雙擊固定、拖拽排序;麪包屑可瀏覽同級與目錄。分屏編輯同一 model,改動與撤銷同步。Ctrl+S 臨時文件加原子重命名保存,Ctrl+W 關閉,髒標記與關閉確認;未保存緩衝寫入 localStorage: dsv:drafts.v1,重啓後恢復。
搜索、問題與 diff¶
Ctrl+F 爲 Monaco 查找替換。Ctrl+Alt+P / Ctrl+Alt+Shift+P 爲快速打開與命令面板(Ctrl+P 留給 DSH)。Ctrl+Alt+Shift+F 打開工作區內容搜索/替換面板;倉庫內用 git grep,否則有界文件遍歷(README 註明本地工作區爲主)。Ctrl+Alt+Shift+M 或標題欄問題徽章查看 Monaco 診斷。Diff 支持對磁盤、對 HEAD、或兩文件互比。
Git 與終端¶
Source Control 爲 VS Code 風格:分支、暫存區、提交下拉(staged / all / commit-and-push)、discard、push,以及帶 lane 的 commit graph 與右鍵菜單(複製 hash、checkout、建分支、revert 等)。遠程工作區上 Git 命令經 SSH 在服務端執行;根目錄非倉庫時可選擇子目錄作爲倉庫。SSH 終端基於 xterm.js 與真實 PTY,可多會話;默認在編輯列下方(可拖分隔條、可 dock 到右側)。連接信息可複用 dsh-remote-ssh;否則通過「+SSH」填 host/user/key 或密碼(密碼不存儲)。本地還提供基於 ConPTY 的 PowerShell 會話。主題可跟隨 DSH、內置 One Dark Pro,或導入 VS Code 主題 JSON;圖標可內置 Material Icon Theme 或導入 VS Code 圖標主題。設置項含字體、換行、終端字體等,持久化且無需重開標籤。
環境與診斷¶
可在控制台執行 await __dsv.probe()(probe(true) 將結果寫入文件),用於環境探測。
安裝與啓用¶
npm 發佈因區域限制尚未完成,README 要求暫從 GitHub Releases 安裝。安裝前請自行查看倉庫源碼與 MIT 許可證;插件隨當前 DSH 進程權限運行。
從 GitHub Releases¶
- 在 Releases 下載
dsh-vscode-ide-1.0.0.tgz。 - 解壓並運行捆綁安裝腳本:
tar -xzf dsh-vscode-ide-1.0.0.tgz
cd package
node install.mjs
install.mjs 會檢測已包含該插件的 profile,否則回退到默認 desktop profile;需要指定目錄時傳入 --profile "<dir>"。
- 完全退出 DSH(托盤圖標 → Quit)後重新啓動——客戶端 bundle 僅在啓動時加載。
package.json 要求 Node >= 20、dsh >= 0.1.3-alpha.2;插件面向 web 客戶端平臺(dsh.client.platform: web)。
從源碼(開發)¶
npm install
npm run build
node install.mjs
構建會生成未納入倉庫的 vendor/ 與 lib/client.js。
npm(發佈後)¶
README 預留命令爲:
dsh plugin --profile web add dsh-vscode-ide
發佈前請勿假設該命令可用。
卸載¶
node install.mjs --remove
卸載後 localStorage 中的窗口幾何、主題、標籤等數據仍保留。
典型用法¶
- 左側邊欄點擊 Code Space 打開或關閉工作臺(窗口被拖出屏幕時仍可用)。
Ctrl+Alt+I切換工作臺;Ctrl+Alt+QPeek 對話;Ctrl+Alt+Shift+F打開內容搜索。- 浮動按鈕與
Ctrl+Alt+Q行爲一致,位置會記住。 - 標題欄:
⌕快速打開,>命令面板等(完整快捷鍵見 README.zh.md / README)。
適用場景與注意¶
適合:在 DSH 里長時間改代碼、看 Git 歷史與 diff、在浮動窗裏開 SSH/本地終端,且希望 Monaco 手感、又不想側欄編輯器擠佔對話寬度。
注意:
- 不是 VS Code,不能裝
.vsix;需要 LSP、SVN 或擴展市場時請選其他插件。 - 遠程 Git/終端在服務器執行,本地工作區連 SSH 時 README 會一次性提醒「命令在遠端、工作區仍在本地」。
- 內容搜索在非 Git 場景下對遠程工作區的支持 README 標註爲「local workspaces only for now」。
- 安裝包版本以 Releases 文件名爲準(示例爲
1.0.0.tgz);npm 包package.json當前爲 1.1.10,與 release 文件名可能不同,以你下載的安裝包爲準。
結尾¶
dsh-vscode-ide 把多標籤 Monaco 編輯、diff、Git、SSH/本地終端收進可移動的浮動工作臺,並刻意不做 VS Code 擴展宿主,以控制體積且不佔用會話側欄。插件目錄頁:skillhub.cn/plugins/beiryang/dsh-vscode-ide;源碼與文檔:github.com/beiryang/dsh-vscode-ide。DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。