前言¶
DeepSeek Harness (DSH) 採用插件化架構。在智能體開發或代碼協作場景中,開發者需要在會話中頻繁查看倉庫狀態、提交歷史以及執行 Git 操作。taontech/dsh-git 插件通過在 DSH 會話界面新增一個 Git 標籤頁,將倉庫概況、文件狀態、提交歷史以及常用 Git 操作集成到瀏覽器端,避免頻繁切換終端。
安裝與啓用¶
插件通過 npm 包分發,安裝後需重啓 GUI 才能生效。
- 安裝插件
在終端執行以下命令,將插件安裝到指定的 profile 中:
dsh plugin --profile <name> add @taontech/dsh-git
- 確認配置
驗證插件是否正確注入到配置中:
dsh --profile <name> --dump-config
輸出中應包含 dsh-git 相關配置行。
- 重啓 GUI
安裝完成後,必須重啓 web profile 的 GUI 才能看到新增的 Git tab。
核心功能¶
該插件主要包含以下能力:
- 倉庫概況
展示當前項目的 Git 狀態,包括根目錄、當前分支、遠程地址、領先/落後提交數、最近一次提交信息以及是否處於 dirty 狀態。 - 文件與提交管理
顯示文件修改狀態(暫存、未暫存、未跟蹤)與提交歷史。支持查看提交的 hash、作者、日期和 subject。 - 分支與提交圖
展示分支列表,並提供基於 ASCII 字符的提交圖(git log --graph),直觀展示分支演變。 - 貢獻日曆
展示最近一年的每日提交熱力圖(date -> count),用於快速瞭解提交頻率。 - Git 操作
插件封裝了常用操作:暫存文件、取消暫存、提交(帶消息校驗)、推送、拉取、切換分支以及初始化。 - 非 Git 目錄處理
當目錄未被 Git 初始化時,插件會顯示文件列表,並提供一鍵git init按鈕。 - macOS 快速打開
在 macOS 環境下,支持在宿主機終端(Terminal / iTerm)中打開倉庫,或直接啓動交互式代理 app(OpenCode / Claude / Codex / Antigravity)。
技術架構¶
插件通過一個 npm 包實現“Server”和“Client”雙面邏輯:
- 依賴庫
git 命令執行全部委託給gmc庫(gmc/lib/git.js的runGit方法),插件僅負責解析與展示。 - Server 端(數據與接口)
通過dsh.bundle.patch注入webServer。提供一系列 RESTful 端點用於獲取數據和執行操作:GET /dsh-git/info:獲取倉庫概況。GET /dsh-git/status:獲取文件修改狀態或非 Git 目錄列表。GET /dsh-git/log:獲取提交歷史。GET /dsh-git/branches:獲取分支列表與提交圖。GET /dsh-git/contributions:獲取貢獻日曆數據。POST /dsh-git/*:執行提交、推送、初始化等操作。
- Client 端(UI 集成)
註冊conversation.view插槽以展示 Git tab,並註冊conversation.input.dock插槽以展示 Hero 概況卡片(包含分支、熱力圖和快捷啓動按鈕)。
注意事項¶
- 環境要求
插件依賴 Node.js 版本 >= 18。 - macOS 限制
macOS 上的終端快速打開和代理 app 啓動功能僅支持迴環地址,不能直接穿透到遠程 SSH 會話。 - 路徑顯示
在 macOS 上,git 返回的路徑可能包含/private/var/...,這是/var的符號鏈接,屬於正常現象。 - 重啓生效
安裝後務必重啓 GUI 才能激活 Git tab。
總結¶
taontech/dsh-git 是一個功能完備的 DSH Git 插件。它利用 gmc 庫處理底層命令,通過標準 JSON API 與前端通信,爲開發者提供了一個無需離開 DSH 界面即可管理代碼庫的解決方案。適合需要在 DeepSeek Harness 中進行代碼審查、分支管理和日常提交的開發者使用。