在输入区与侧栏查看分支、暂存提交并浏览历史差异
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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Weidows/dsh-git
在输入区与侧栏查看分支、暂存提交并浏览历史差异
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 266,913已汉化DSH
71.8
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,848已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,171已汉化DSH
70.4