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

Git 安全工具 lxj808624/dsh-tool-git

DeepSeek Harnessv0.1.3
lxj80862480 天前有提交已提供中文文档扫描:含敏感能力

结构化执行 Git 操作并拦截破坏性命令

32.9/100
综合分
3
GitHub 星标
123
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-tool-git
npm 源 · dsh-tool-git 的发布者账号已校验与本仓库一致

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-tool-git @ 0.1.3
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 12:41:25

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
  • 读取本地文件
    lib/index.mjs:422
    await access(join(dir, ".git"));
  • 执行外部命令来自配置/变量
    lib/index.mjs:478
    execFile(gitPath, fullArgs, {
  • 读取本地文件
    src/repo.ts:41
    await access(join(dir, '.git'))
  • 执行外部命令来自配置/变量
    src/runner.ts:70
    execFile(
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 结构化执行Git操作
  • 拦截危险命令
展开完整介绍(99 字)↓

为 DeepSeek Harness(dsh)提供结构化、安全的 Git 工具:git_status/diff/log/branch/stage/commit/stash/show,外加危险命令拦截

v0.1.32026-08-14
修复 DeepSeek Harness 0.1.0-rc.6 上宿主工具调度器崩溃的问题(#1 报告,@taonokenshin 在 #2 修复)。 · 把 @deepseek-ai/dsh-tools 的 peer 依赖收紧到 ^0.1.0-rc.6,防止 pnpm 提升旧版 dsh-tools,导致其调度器符号与宿主运行时对不上 · 开发/测试基线移到 0.1.0-rc.6 系列,33 个测试全部通过 · 新增贡献者章节
v0.1.22026-08-14
现已上架 npm!dsh plugin --profile web add dsh-tool-git · 补全 npm 元数据(仓库、主页、问题反馈),安装文档改为优先用 npm · v0.1.1 已加入 git_fetch、git_pull、git_remote、git_checkout,以及 pull --rebase 防护
v0.1.12026-08-14
为 v0.1.0 加上网络与分支工具:git_fetch、git_pull(默认仅快进)、git_remote、git_checkout;安全校验也会拦截 pull --rebase。33 个 vitest 测试,CI 在 Node 22/24 上全部通过。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-tool-git npm CI License awesome-deepseek-harness GitHub stars 为 DeepSeek Harness(dsh)开发的结构化、安全 Git 工具插件。 编码 agent 几乎每天都在用 git,但 dsh 默认只提供裸 bash 命令。dsh-tool-git 为模型提供八个结构化工具——通过无 shell 的子进程运行器执行 git,返回规范的 JSON 值——并内置 tools/pre-execute 安全门,在破坏性 git 操作(强制推送、硬重置、rebase、amend、删除分支等)发生之前将其拦截,无论模型是通过这些工具调用,还是通过 shell 工具调用。 - 无 shell 注入:所有命令通过 execFile + 显式参数数组执行,模型提供的路径和消息永远不会被字符串拼接进 shell。 - 机器可读输出:porcelain v2、--numstat、--format 记录被解析为结构化 JSON,而不是文本。 - 默认安全:破坏性操作默认被拒绝并附带原因说明,除非你选择 ask(审批弹窗)或 allow(放行)。
展开完整文档(README 剩余 1 节)
dsh-tool-git

npm
CI
License
awesome-deepseek-harness
GitHub stars

为 DeepSeek Harness(dsh)开发的结构化、安全 Git 工具插件。

编码 agent 几乎每天都在用 git,但 dsh 默认只提供裸 bash 命令。dsh-tool-git 为模型提供八个结构化工具——通过无 shell 的子进程运行器执行 git,返回规范的 JSON 值——并内置 tools/pre-execute 安全门,在破坏性 git 操作(强制推送、硬重置、rebase、amend、删除分支等)发生之前将其拦截,无论模型是通过这些工具调用,还是通过 shell 工具调用。

- 无 shell 注入:所有命令通过 execFile + 显式参数数组执行,模型提供的路径和消息永远不会被字符串拼接进 shell。
- 机器可读输出:porcelain v2、--numstat、--format 记录被解析为结构化 JSON,而不是文本。
- 默认安全:破坏性操作默认被拒绝并附带原因说明,除非你选择 ask(审批弹窗)或 allow(放行)。

工具列表

| 工具 | 功能 |
| git_status | 工作区状态:分支、领先/落后、已暂存 / 未暂存 / 未跟踪文件 |
| git_diff | 逐文件增删统计、可选 unified patch、--cached / rev 基线 |
| git_log | 提交历史:哈希、作者、日期、主题、正文;支持 maxCount、rev 区间、path 过滤 |
| git_branch | 分支列表及上游跟踪状态(领先/落后) |
| git_stage | 暂存指定路径,或全部 / 仅已跟踪的修改 |
| git_commit | 用消息创建提交;返回哈希和统计 |
| git_stash | list / push / pop 暂存,pop 冲突安全处理 |
| git_show | 单次提交:元数据、逐文件统计、可选 patch |
| git_fetch | 从远端下载引用,不触碰工作区 |
| git_pull | 默认仅快进;not-fast-forward / conflict 结果结构化返回 |
| git_remote | 列出已配置的远端(fetch/push URL) |
| git_checkout | 切换分支或创建并切换(-b);绝不丢弃更改 |

每个工具都接受可选的 repoDir 参数,并在结果中返回解析后的仓库根目录。

安全门

安全门监听 tools/pre-execute,检查每一次工具调用:

- 插件自身的工具 —— 例如带 amend: true 的 git_commit。
- shell 工具 —— bash、tool:bash、bash_persistent、terminal、tool:terminal、pwsh —— 扫描其命令文本中的破坏性 git 调用,例如:

push --force / --force-with-lease · push --delete · reset --hard · clean -f · branch -d/-D · tag -d · rebase · pull --rebase · commit --amend · checkout -- / checkout . / checkout -f · switch -f · restore(丢弃工作区)· rm -r · update-ref -d · filter-branch

模式匹配按命令进行:不会跨越 |、; 或换行边界,因此 git add . && git push --force 仍会被拦截,而普通的复合命令不会被误判。

这是策略护栏,不是沙箱。 能运行任意代码的 agent 总有办法绕过字符串匹配(别名、-c 改写、脚本化)。护栏的意义在于让意外的破坏性调用响亮地失败并给出解释——有意的破坏性操作通过配置的策略来授权,而不是绕过护栏。

安装

npm(推荐) —— 任意目录执行:

dsh plugin --profile web add dsh-tool-git

从 GitHub(或本地目录 / tarball):

dsh plugin --profile web add github:lxj808624/dsh-tool-git#v0.1.3

然后重启 dsh --profile web。通过 GitHub 安装时,pnpm 会要求你允许一次 prepare 构建脚本(参见官方打包指南)。

配置

所有选项均可选,默认值如下:

tool-git 行的 profile 级或 bundle patch 配置
- id: tool-git
name: dsh-tool-git
config:
workDir: '' # 仓库发现起始目录(默认:进程 cwd) gitPath: git # git 可执行文件 destructivePolicy: deny # deny | ask | allow
extraDestructivePatterns: [] # 追加的忽略大小写正则(安全门使用)
logMaxCommits: 20 # git_log 默认条数(上限 100) diffContextLines: 3 # git_diff / git_show 的 patch 上下文行数

- deny(默认)—— 破坏性调用被拒绝,并附带模式名和原因说明。
- ask —— 破坏性调用走运行时的审批通道(ctx.approval);未挂载审批服务时降级为 deny。
- allow —— 安全门全部放行。

开发

前置条件:Node.js ≥ 22.19 和 pnpm。项目完全自包含——所有 @deepseek-ai/ 类型来自 devDependencies 中安装的公开 API(0.0.1-rc.5 线),不需要 deepseek-harness checkout。

pnpm install
pnpm run typecheck # 针对公开 @deepseek-ai/ API 做 tsc 检查
pnpm test # vitest:启动插件,在临时仓库中执行真实 git
pnpm run build # tsc 声明 + tsdown 打包(lib/index.mjs)

测试会创建一次性仓库,把插件注册到带有真实 dsh-tools 运行时的 Cordis 上下文上,并通过完整管线(tools/pre-execute → dispatch → tools/result)执行每个工具。

发布

- package.json 中的 dsh.bundle.patch 指向 cordis.patch.yml,因此 dsh plugin add 会把插件作为 profile 层激活。
- prepare 运行 tsdown --config tsdown.prepare.config.ts,无需项目引用即可从 src/ 转译——因此 GitHub 安装无需相邻 harness checkout 也能构建。更推荐发布预构建 tarball / npm 包,避免 pnpm 的构建脚本白名单。

License

MIT

贡献者

- taonokenshin — 发现并修复了 dsh-tools peer 解析问题(该问题在 DeepSeek Harness 0.1.0-rc.6 下会导致宿主工具调度器崩溃,见 #1 / #2)。
预览分享卡片长什么样 ↓lxj808624/dsh-tool-git
分享 · DeepSeek Harness Hub
lxj808624/dsh-tool-git

结构化执行 Git 操作并拦截破坏性命令

这是你的仓库?认领条目

回到顶部