前言¶
DeepSeek Harness(DSH)把對話、軌跡和工具調用收進同一套 Web 客戶端。智能體改代碼時,工作區文件往往只能通過終端或外部編輯器查看;審閱 diff、對照上下文改幾行、順手跑一條命令,需要在多個窗口之間切換。
dsh-code-ide 由 SakalioLabs 維護,以可選插件的形式給 Harness 增加一個瀏覽器 IDE 工作臺。它不替換 Harness 首頁、對話、會話、設置或工具界面,只在會話頂部多出一個 IDE 頁籤;默認仍是 對話。下面介紹它的定位、能力邊界,以及安裝與日常使用步驟。
這是什麼¶
dsh-code-ide(GitHub:SakalioLabs/dsh-code-ide)是面向 DeepSeek Harness Web profile 的客戶端插件。當前版本爲 v0.1.0-alpha.0(GitHub 預發佈版,提供預構建包,不發佈到 npm)。許可證爲 MIT。
插件通過同源路由 /dsh-code-ide/ 嵌入官方會話區域。父級 Harness 會把當前會話的工作區、淺色/深色主題以及 zh/en 語言同步給 IDE。界面借鑑 VS Code 工作臺習慣,但它不是 Code-OSS,也沒有 VS Code Extension Host 或 Marketplace 兼容層。
在 Harness 中的頁簽結構如下:
DeepSeek Harness /
├─ 對話(官方,默認)
├─ 軌跡(官方)
└─ IDE(本插件,可選)
└─ /dsh-code-ide/?embedded=1&workspaceId=…
只有用戶打開 IDE 頁籤時工作臺纔會掛載;該會話的普通消息輸入欄會暫時隱藏,切回對話後原樣恢復。等待用戶回答的問題或審批仍具有更高優先級,不會被 IDE 隱藏。
環境要求¶
安裝前核對 Harness 與運行環境是否匹配。當前 main 已按 DeepSeek Harness 0.1.1-rc.2(標籤 dsh-v0.1.1-rc.2,源碼提交 b150a551b8d465e31e418e1b2eaf5e79bbb7d28e)完成兼容性驗證;其他提交或未來 npm RC 尚不屬於兼容承諾。
| 項目 | 要求 |
|---|---|
| DeepSeek Harness | 0.1.1-rc.2 |
| Node.js | ^22.19.0 或 >=24.0.0 |
| pnpm | 本插件倉庫固定 10.17.0;Harness 固定 11.7.0 |
| 瀏覽器 | 現代同源瀏覽器,支持 WebSocket、localStorage、Web Locks |
| 搜索 | @vscode/ripgrep@1.18.0 對應平臺二進制 |
| 終端 | 複用目標 Harness Host 圖中提供的 node-pty@1.2.0-beta.15,不要手動安裝第二份原生副本 |
npm 當前提供 @deepseek-ai/dsh@0.1.1-rc.2。需要可復現環境時,固定到上述標籤或提交。
核心功能¶
以下能力均來自插件 README 與 package.json 說明,按模塊歸納。
資源管理器與文件操作¶
- 有界懶加載、Seti 風格文件圖標、鍵盤導航、展開狀態保留、工作區相對路徑校驗。
- Windows x64 本地 NTFS 工作區:支持新建文件/目錄、拖放移動、重命名和永久刪除。
- Linux x64 Host(運行時
openat2探針通過)與 macOS x64/arm64 本地 APFS 工作區(運行時libSystem探針通過):支持新建文件和目錄;移動、重命名和刪除仍保持禁用。
編輯器與預覽¶
- CodeMirror 6 編輯器:多標籤、拖拽/鍵盤排序、最多 4 個編輯器分組,每文檔獨立撤銷/選擇/滾動狀態,自動換行、縮進、行尾和語言模式。
- 語法高亮:內置並按需加載 Plain Text、JavaScript、JSX、TypeScript、TSX、JSON、CSS/SCSS/Less、HTML、Markdown、Python、C、C++、Java、Go、Rust、Shell、PowerShell、YAML、XML 和 SQL。
- Markdown 預覽:
.md、.markdown、.mdx可在源碼與安全預覽間切換;預覽直接反映當前未保存的編輯緩衝區。 - 媒體預覽:只讀展示常見圖片(PNG、JPEG、GIF、WebP、AVIF)、音頻(MP3、WAV、OGG、FLAC)和視頻(MP4、WebM、MOV);音視頻使用瀏覽器原生控件和 Range 流式讀取,且不會自動播放。
保存、搜索與命令¶
- 版本感知保存、外部變化檢測、衝突處理、刪除文件重建、髒標籤關閉確認,以及瀏覽器本地的有界 hot-exit 恢復。
- Quick Open、工作區搜索、正則/大小寫/全詞/include/exclude、結果導航和先預覽後應用的替換。替換隻修改編輯緩衝區,不會自動保存到磁盤。
- 命令面板、可編輯的一段或兩段快捷鍵、衝突檢測和瀏覽器本地持久化。
終端與佈局¶
- 多個命名 xterm.js 會話,工作目錄爲當前工作區,支持查找、清屏、重命名、重啓、中斷、終止、摺疊和最大化。
- 桌面/緊湊佈局、可調整面板;IDE UI 支持簡體中文和英語,並跟隨 Harness 熱切換。
安裝與啓用¶
快速安裝(推薦)¶
已安裝 dsh 的用戶運行:
dsh plugin --profile web add github:SakalioLabs/dsh-code-ide
如果你從 Harness 源碼 checkout 運行,則在該目錄中把上面的 dsh 替換爲 pnpm dsh。倉庫已提交與源碼同步的預構建 dist/,Git 安裝不會在用戶環境重新構建本插件,因此不需要爲 dsh-code-ide 配置 allowBuilds,也不需要 clone 本插件或手工複製 patch。
也可以把下面一句直接發給 Harness,由它代爲安裝並覈對:
請將 github:SakalioLabs/dsh-code-ide 安裝到當前 DeepSeek Harness 的 Web profile,並在完成後覈對 plugin list 與 --dump-config 中只有一個 dsh-code-ide。
注意:GitHub 簡寫 github:SakalioLabs/dsh-code-ide 會跟隨倉庫 main。需要固定到已發佈版本、校驗下載內容或離線留檔時,應使用 Release 流程。
固定版本安裝(可審計)¶
Linux/macOS 下載並校驗 v0.1.0-alpha.0:
curl -fLO https://github.com/SakalioLabs/dsh-code-ide/releases/download/v0.1.0-alpha.0/dsh-code-ide-0.1.0-alpha.0.tgz
curl -fLO https://github.com/SakalioLabs/dsh-code-ide/releases/download/v0.1.0-alpha.0/dsh-code-ide-0.1.0-alpha.0.tgz.sha256
sha256sum -c dsh-code-ide-0.1.0-alpha.0.tgz.sha256
校驗通過後,在 Harness checkout 中安裝本地文件:
pnpm dsh plugin --profile web add /absolute/path/to/dsh-code-ide-0.1.0-alpha.0.tgz
覈對並啓動¶
安裝、啓動、更新和卸載必須使用同一個 DSH_HOME。在 Harness checkout 中執行:
pnpm dsh plugin --profile web list --depth 0
pnpm dsh --profile web --dump-config
pnpm dsh web
訪問 http://127.0.0.1:3080/,進入一個已關聯工作區的會話,然後選擇頂部的 IDE 頁籤。插件包會自動應用自己的 dsh.bundle.patch;不要再手工複製 examples/dsh-code-ide.bundle.patch.yml,否則會得到重複條目。--dump-config 中應保留全部官方 Web 條目,並且只有一個啓用的 dsh-code-ide。
更新與卸載¶
更新前先停止 dsh web,然後重新 add 或換用新 Release,再重啓 Harness:
pnpm dsh plugin --profile web add github:SakalioLabs/dsh-code-ide
pnpm dsh plugin --profile web remove dsh-code-ide
卸載不會刪除 Harness 會話、工作區文件,也不會自動清除瀏覽器 localStorage 中的 IDE 偏好和恢復數據。
典型用法¶
經過上面的安裝步驟後,可按以下順序使用:
- 在 Harness 中打開或創建一個已關聯工作區的會話。
- 選擇 IDE 頁籤;工作區尚未就緒時會顯示明確狀態,不會靜默切到另一個工作區。
- 從資源管理器或 Quick Open 打開文本、Markdown 或受支持的媒體文件;Markdown 可在源碼和預覽間切換。
- 編輯文本並顯式保存;預覽會反映 Markdown 當前未保存的緩衝區,搜索替換產生的修改同樣需要保存。
- 需要 Harness 輸入框時切回 對話。
常用快捷鍵:
| 操作 | Windows/Linux | macOS |
|---|---|---|
| Quick Open | Ctrl+P |
Cmd+P |
| 命令面板 | Ctrl+Shift+P / F1 |
Cmd+Shift+P / F1 |
| 保存 | Ctrl+S |
Cmd+S |
| 資源管理器 / 搜索 | Ctrl+Shift+E / Ctrl+Shift+F |
Cmd+Shift+E / Cmd+Shift+F |
| 跳轉到行 | Ctrl+G |
Cmd+G |
| 快捷鍵設置 | Ctrl+K,再 Ctrl+S |
Cmd+K,再 Cmd+S |
| 顯示/隱藏終端 | Ctrl+反引號 |
Cmd+反引號 |
| 自動換行 | Alt+Z |
Option+Z |
配置項¶
默認 bundle 配置示例:
- insert:
- id: dsh-code-ide
name: dsh-code-ide
config:
maxFileBytes: 4194304
maxMediaBytes: 536870912
terminalShell: auto
| 選項 | 默認值 | 說明 |
|---|---|---|
maxFileBytes |
4 MiB | 可讀寫 UTF-8 文本文件上限 |
maxMediaBytes |
512 MiB | 單個只讀媒體預覽上限;可配置,硬上限 8 GiB |
maxDirectoryEntries |
5,000 | 單次目錄列表的直屬條目上限 |
terminalShell |
auto |
Windows 使用 COMSPEC,Unix 使用 SHELL,並帶回退 |
terminalArgs |
shell 默認 | 顯式 shell 參數數組 |
maxTerminalSessions |
8 | Host 活躍/待創建 PTY 上限,硬上限 64 |
maxConcurrentSearches |
2 | 併發受管搜索數 |
searchTimeoutMs |
30,000 | 搜索超時(毫秒) |
完整有界配置見倉庫 src/host/plugin.ts。
適用場景與注意¶
適合誰
- 已在本機跑 Harness Web profile,且會話綁定了本地工作區的開發者。
- 希望在同一瀏覽器會話裏對照智能體軌跡瀏覽、編輯工作區文件,而不反覆切換外部 IDE 的用戶。
- 需要內置終端在工作區根目錄執行命令、配合對話頁籤來回審閱的場景。
安裝前應覈對
- 插件以當前
dsh進程的操作系統用戶權限運行,IDE 終端不是沙箱。安裝前建議閱讀倉庫源碼與 MIT 許可證,確認文件操作與終端能力符合你的安全預期。 - 僅面向本機、同源 loopback 使用。當前沒有遠程用戶認證、TLS、進程隔離、配額或完整審計日誌,不要直接暴露到局域網或互聯網。
- Linux/macOS 上移動、重命名和刪除等結構性操作有平臺限制;探針失敗時相關操作會安全關閉,瀏覽、編輯、保存、搜索和終端不受影響。
- hot-exit、快捷鍵和部分恢復信息會以同源
localStorage明文保存;同源代碼可以訪問這些數據。 - Markdown 預覽不會執行 raw HTML 或 MDX。
DSH 生態奉行「一切皆插件」;SkillHub 等社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。dsh-code-ide 在 SkillHub 上歸類爲客戶端插件,當前 GitHub 星標約 11。
鏈接¶
- SkillHub 目錄頁:https://www.skillhub.cn/plugins/SakalioLabs/dsh-code-ide
- GitHub 倉庫:https://github.com/SakalioLabs/dsh-code-ide
若你正在用 Harness 0.1.1-rc.2 處理本地工作區,且希望把文件瀏覽、編輯和終端收進會話內的可選頁籤,dsh-code-ide 提供了一條增量集成路徑:不 fork 客戶端,也不接管 Harness 首頁,只在需要時打開 IDE 工作臺。