DeepSeek Harness Git 插件:`taontech/dsh-git`

前言

DeepSeek Harness (DSH) 采用插件化架构。在智能体开发或代码协作场景中,开发者需要在会话中频繁查看仓库状态、提交历史以及执行 Git 操作。taontech/dsh-git 插件通过在 DSH 会话界面新增一个 Git 标签页,将仓库概况、文件状态、提交历史以及常用 Git 操作集成到浏览器端,避免频繁切换终端。

安装与启用

插件通过 npm 包分发,安装后需重启 GUI 才能生效。

  1. 安装插件
    在终端执行以下命令,将插件安装到指定的 profile 中:
   dsh plugin --profile <name> add @taontech/dsh-git
  1. 确认配置
    验证插件是否正确注入到配置中:
   dsh --profile <name> --dump-config

输出中应包含 dsh-git 相关配置行。

  1. 重启 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 中进行代码审查、分支管理和日常提交的开发者使用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜