🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Git 面板 Weidows/dsh-git

DeepSeek Harness
Weidows10 天前有提交已提供中文文档扫描:含敏感能力

在输入区与侧栏查看分支、暂存提交并浏览历史差异

29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Weidows/dsh-git
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 执行外部命令固定命令
    lib/index.js:67
    execFile(
  • 读取本地文件
    lib/index.js:375
    const info = statSync(value, { throwIfNoEntry: false })
  • 发起网络请求
    lib/client.js:300
    const response = await fetch(API + method, {
  • 写入剪贴板
    lib/client.js:1411
    if (navigator.clipboard !== undefined) navigator.clipboard.writeText(menu.hash).catch(() => {});
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的 Git 插件:输入框下方有仓库/分支标签,顶部有 Git 按钮,右侧边栏有标签页显示改动和提交历史。

README

由 DeepSeek 最新模型翻译生成
dsh-git 在 DeepSeek Harness 的输入区和侧边栏里使用 Git:一个仓库/分支标签、一个标题栏按钮,以及一个分栏的 Git 面板,支持暂存、提交、历史和差异。 新增内容 1. 输入区里的分支标签。 输入区尾部有一枚小标签,位于模型选择器和会话统计控件左侧: main-repo / feature/login ↑2 它显示仓库名、当前分支、领先/落后标记,以及一个表示有未提交改动的圆点。点击它打开 Git 面板。 2. 会话标题栏里的 Git 按钮。 在已打开会话的右上角工具行里,提供同样的操作。 3. 侧边栏里的分栏 Git 面板。 +----------------------+----------------------+ | changes + staging | history | | staged / unstaged | branch + filter | | [ AI ] [ ] [commit] | expandable commits | +----------------------+----------------------+ | diff | +--------------------------------------------+
展开完整文档(README 剩余 1 节)
dsh-git

在 DeepSeek Harness 的输入区和侧边栏里使用 Git:一个仓库/分支标签、一个标题栏按钮,以及一个分栏的 Git 面板,支持暂存、提交、历史和差异。

新增内容

1. 输入区里的分支标签。 输入区尾部有一枚小标签,位于模型选择器和会话统计控件左侧:

main-repo / feature/login ↑2

它显示仓库名、当前分支、领先/落后标记,以及一个表示有未提交改动的圆点。点击它打开 Git 面板。

2. 会话标题栏里的 Git 按钮。 在已打开会话的右上角工具行里,提供同样的操作。

3. 侧边栏里的分栏 Git 面板。

+----------------------+----------------------+
| changes + staging | history |
| staged / unstaged | branch + filter |
| [ AI ] [ ] [commit] | expandable commits |
+----------------------+----------------------+
| diff |
+--------------------------------------------+

- 左上:已暂存和未暂存的文件,按仓库自身的文件夹树排列(文件夹可折叠,带文件计数,不是平铺列表)。可以暂存/取消暂存单个文件或全部文件,丢弃已跟踪的改动(行内确认),填写提交信息,用 AI 生成提交信息(使用 Harness 默认模型;未配置模型时会给出明确报错)。Ctrl/Cmd+Enter 提交。
- 右上:提交历史,带分支切换器、文本过滤、沿左边缘连续绘制的分支轨道(轨道贯穿每一行,包括展开的文件列表,提交圆点落在第一行文字上)、可展开的行(列出该提交的文件),以及右键菜单(复制哈希、reset --soft/mixed/hard、revert)。每行开头是 GitLens 风格的引用标签——已检出的 HEAD 显示对勾,本地分支显示分支图标,远程跟踪引用显示地球图标,标签显示标签图标——它们与提交主题同行,位于主题右侧,下方是 short hash · author · age。
- 底部:你点击的任何内容的差异——工作区文件、已暂存文件,或某个提交里的单个文件(只显示该文件的补丁,绝不显示整个提交)。

窄屏。 低于 720px 时,两列网格折叠为单列堆叠(改动、历史、差异),各面板保留自己的滚动并设置合理的最大高度,点击目标变大,短哈希隐藏,过滤框移到单独一行,在没有悬停的触屏设备上,单文件操作保持可见。

安装

dsh plugin --profile web add C:/path/to/dsh-git
or straight from git
dsh plugin --profile web add https://github.com/Weidows/dsh-git

安装后重启 Harness:客户端插件在启动时加载。

dsh-better-sidebar

安装后支持并优先使用 dsh-better-sidebar。dsh-git 通过 ctx.betterSidebar.registerTab 注册自己的面板(order 25,单实例),并跳过自带的原生右侧栏标签,这样你永远不会看到两个 Git 标签。没装 better-sidebar 时,回退到普通右侧栏标签。

better-sidebar 会把原生标签类型镜像到自己的注册表,所以用同一个 id 同时注册原生类型和 better-sidebar 标签,会让它的桥接层抛出 tab kind "..." is already registered。因此两处注册使用各自独立、带作者标记的 id —— dsh-git-by-weidows(better-sidebar 标签)和 dsh-git-native-by-weidows(原生类型)—— 并且服务存在时绝不注册原生类型。两者都带完整描述,供新建标签列表展示:仓库与分支状态、变更与暂存、提交、历史与差异。

其他插件也能打开这个面板:

ctx.betterSidebar.openTab({ type: "dsh-git-by-weidows", title: "Git by@Weidows", meta: { cwd } }, { sessionId })

宿主 API

所有请求都走 POST /plugins/dsh-git/api/<method>,请求体为 JSON,返回 { ok: true, data } 或 { ok: false, error: { message } }。请求若非来自 Harness 连接,一律以 403 拒绝。每次 git 调用都是 execFile("git", argv) —— 绝不经过 shell —— 工作目录经过校验,pathspec 放在 -- 之后,输出上限 24 MB。

| method | body | returns |
| state | { cwd } | 仓库名、分支、领先/落后、文件列表及每个文件的索引/工作区状态 |
| diff | { cwd, mode: "worktree" or "staged", path? } | 工作区、索引或单个文件的 unified 补丁 |
| log | { cwd, ref?, search?, limit? } | 提交(hash、short、subject、author、date、refs) |
| commit | { cwd, hash } | 提交元信息、带 +/- 计数的变更文件、补丁 |
| commit-files | { cwd, hash } | 某次提交的文件 |
| commit-file | { cwd, hash, path } | 某次提交中单个文件的补丁 |
| stage / unstage | { cwd, paths: [] } | 最新状态 |
| discard | { cwd, paths: [] } | 最新状态(仅限已跟踪文件) |
| commit-create | { cwd, message, all? } | 最新状态 |
| branches | { cwd } | 本地与远程分支 |
| checkout | { cwd, branch } | 最新状态 |
| reset | { cwd, hash, mode: "soft", "mixed" or "hard" } | 最新状态 |
| revert | { cwd, hash } | 最新状态 |
| suggest | { cwd, sessionId?, language? } | 根据暂存/工作区差异生成的 AI 提交信息 |

安全

- reset --hard、revert 和 discard 具有破坏性,只能从面板里显式点击触发。revert 遇到冲突会用 git revert --abort 回滚,工作区绝不会停在合并中途。
- 丢弃未跟踪文件会被拒绝,而不是直接删除;未跟踪文件在面板里也从不显示丢弃操作。
- 校验 pathspec 和分支名(分支名不得以 - 开头,不得包含空白字符或 ..),并在 -- 之后传入。
- 插件从不运行 shell,从不提示输入凭据(GIT_TERMINAL_PROMPT=0),也从不读取会话工作目录之外的任何内容。

开发

lib/index.js host half: the /plugins/dsh-git/api route and all git + LLM work
lib/client.js browser half: slots, chip, header button, panel, native + better-sidebar tabs
cordis.patch.yml bundle patch that inserts the plugin into the profile

客户端部分是普通 Harness 客户端插件(window.__ModuleLoader__.load),把 React 组件注册到插槽:

- conversation.input.right — 分支 chip
- conversation.session.header.utilities — 头部按钮
- sidebar.right.pane.tab — 原生标签页主体(仅当 better-sidebar 不存在时)

许可证

MIT
预览分享卡片长什么样 ↓Weidows/dsh-git
分享 · DeepSeek Harness Hub
Weidows/dsh-git

在输入区与侧栏查看分支、暂存提交并浏览历史差异

回到顶部