前言¶
在 DeepSeek Harness(DSH)裏跑智能體會話時,工作區文件與 Git 狀態往往要切到外部編輯器或終端才能查看、修改和提交。瀏覽器裏的 DSH Web UI 本身並不自帶完整的項目樹、代碼編輯器和 PyCharm 式 Git 面板。社區插件 dsh-code-git-workbench 在右側 Sidebar 增加 Code 與 Git 兩個頁面,把懶加載文件樹、CodeMirror 編輯器和分支樹、提交圖、diff 等能力收進同一會話界面,且無需 Node.js 構建步驟,也不依賴 VS Code 運行時。
下面介紹插件定位、能力、安裝方式與典型用法;事實以倉庫 README 與 package.json 爲準。
這是什麼¶
dsh-code-git-workbench 由維護者 DazzzleKK 發佈,分類爲客戶端插件,當前包版本 0.6.0(MIT 許可證)。它在 DeepSeek Harness Web UI 上註冊 host 與 client 兩半代碼:host 提供 /code-git 靜態 UI 與 JSON API,client 在 Sidebar 註冊 Code、Git 頁類型,並調整頭部 subagent 目錄裏「運行中」條目相對 idle 條目的排序。
Git 面板的 HTML/CSS/JS 與 companion 項目 pycharm-git-log 同源共享;兩個倉庫在運行時彼此獨立。插件簡介:Code editor and PyCharm-style Git workbench for the DeepSeek Harness Web UI.
核心功能¶
Code 頁¶
- 針對 Harness workspace 的懶加載目錄樹;
.git目錄在樹中隱藏。 - 多標籤頁:每個標籤獨立保存文檔、光標、滾動與 dirty 狀態。
- CodeMirror 5(vendored):行號、括號匹配、自動閉合、
Ctrl+F增量搜索;支持 JS/TS、Python、JSON、Markdown、HTML/CSS、YAML、SQL、shell、PowerShell 及類 C 語言等模式。 - 工作區選擇器位於樹頭,列出所有 Harness workspace;若會話目錄不是 Git 倉庫,Code 會落在第一個是倉庫的 workspace,選擇按會話記憶。
- 自動保存(行爲對齊 PyCharm 描述):末次編輯空閒 2 秒、切到其他應用或隱藏 DSH 窗口、關閉文件標籤、切換 workspace(先寫回所有 dirty 標籤)、離開頁面、點擊 DSH 其他標籤(如 Git)導致編輯器失焦等場景會觸發;在文件標籤間切換不會強制保存。
Ctrl+S仍可手動保存;成功寫入後狀態欄顯示Auto-saved。 Ctrl+R重載當前文件;工具欄提供 Save、Reload。- 文件以 UTF-8 讀寫;大於 2 MB 或二進制文件拒絕展示。
Git 頁¶
- 倉庫選擇器:每個是 Git 倉庫的 workspace 可選。
- PyCharm 風格:本地/遠程 分支樹、過濾、當前分支、ahead/behind;checkout、checkout + rebase、merge、rebase、compare、push、rename、delete、tag 等;斜槓分支名在 Local/Remote 內各自展開爲文件夾;可星標分支,收藏置頂,偏好按 Git 倉庫存在 browser profile。
- 提交日誌:彩色 graph、ref 徽章、作者與時間;可過濾與「load more」。
- 提交詳情:完整 message、parents、文件與
+/-;checkout、branch、cherry-pick、merge、rebase、reset(soft/mixed/hard)、revert、tag。 - 文件行打開內置 diff;文件上下文菜單含「Compare with working tree」。
- Fetch all、pull、push;無 upstream 時 push 回退爲
--set-upstream origin。 - 分支上下文菜單可對指定分支執行 Pull ‘
’ into Current 。 - 工具欄 diff:Working tree changes(staged / unstaged / untracked 及計數);
[staged]爲 index vs HEAD,[unstaged]爲 working tree vs index。 - 遠程分支超過 40 個時自動摺疊。
Subagent 目錄排序¶
頭部 descendant-count 按鈕打開的 subagent 目錄中,每次渲染後把 running 行移到 idle 行之上(按樹層級);僅爲 DOM 增強,不修改 host 狀態。
安全與 API 邊界¶
Host 對每個請求調用 ctx.connection.requestRejection(req),繼承 Harness Host/Origin 圍欄與瀏覽器認證。路徑解析限制在會話註冊的 workspace 與所選 root 內;Git 通過 execFile 無 shell 執行,並設置 GIT_TERMINAL_PROMPT=0。
主要路由包括:GET /code-git/api/context、/tree、/file(GET/PUT),以及 GET/POST 一系列 /code-git/api/git/*(state、status、worktree-diff、commit、diff、action 等)。詳見倉庫 README 架構一節。
環境要求¶
- 帶 bundled plugin CLI 的 DeepSeek Harness(README 寫明在 0.2.1-rc.2 / DSH 44.x desktop build 上測試)。
- Git 頁需要本地 Git 倉庫。
- 安裝與運行插件 不需要 Node.js。
安裝與啓用¶
官方方式是將倉庫克隆到固定目錄,再以 link 形式註冊到 desktop profile(不是 dsh plugin add github:owner/repo 這類憑名稱拼接的命令)。完全退出並重新打開 DSH;僅重載窗口不夠,host 半在進程啓動時加載。
Windows¶
$repo = "C:\path\to\dsh-code-git-workbench"
$cli = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
& $cli plugin --profile desktop add "link:$repo"
macOS / Linux¶
應用自帶的 dsh CLI 路徑因安裝佈局而異;若 CLI 已在 PATH 上:
dsh plugin --profile desktop add link:/absolute/path/to/dsh-code-git-workbench
若要在 browser profile 使用,可先 dsh --profile web,安裝時改用 --profile web。
更新與卸載¶
更新:在倉庫目錄 git pull 後重啓 DSH,無需編譯。
卸載示例(Windows,README 給出):
& $cli plugin --profile desktop remove dsh-code-git-workbench
之後同樣需要重啓應用。
典型用法¶
- 打開一個會話。Code / Git 默認從會話 workspace 起步;Code 可切換到任意 Harness workspace,Git 可切換到任意 Git 倉庫 workspace。
- 打開右側 Sidebar(desktop 構建爲
Ctrl+Alt+B,或使用側邊欄按鈕)。 - 點擊
+,選擇 Code 或 Git;引導頁也會列出這兩個頁面。 - 需要更大編輯區域時,使用面板全屏控件。
在 Code 中切換 workspace 前會自動保存 dirty 標籤;在 Git 中執行 VCS 操作前,若剛從 Code 切走,失焦觸發的自動保存可覆蓋「操作前落盤」的常見需求。Git 頁依賴當前選中倉庫與 DSH 會話註冊的工作區路徑,操作前確認倉庫選擇器指向預期 root。
適用場景與注意¶
適合:希望在 DSH 會話內直接瀏覽 workspace 文件、輕量編輯(含自動保存策略)並在同一 UI 完成分支、提交、diff、fetch/pull/push 等 Git 操作的開發者;偏好 PyCharm 式 Git 日誌而非純命令行的用戶。
注意:
- 插件 host 半在 DSH 進程內運行 Git 與文件讀寫,權限與當前 DSH 進程一致;安裝前請閱讀源碼與 MIT 許可證,自行評估信任邊界。
- 大文件與二進制文件無法在 Code 頁打開;Git 操作在無 TTY 提示環境下執行,需本地 Git 憑據與 remote 配置已就緒。
- 社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;星標與目錄元數據以各站點爲準(目錄線索中星標爲 0)。
結尾¶
dsh-code-git-workbench 把 Code 編輯與 PyCharm 風格 Git 工作臺嵌入 DSH 右側 Sidebar,無構建步驟、不依賴 VS Code,適合在智能體會話旁同步改代碼和管理版本庫。進一步瞭解可查看目錄頁與上游倉庫:
- 目錄頁:https://www.skillhub.cn/plugins/DazzzleKK/dsh-code-git-workbench
- GitHub:https://github.com/DazzzleKK/dsh-code-git-workbench