buhuikongpan/dsh-win-gitbash
Git Bash tool plugin for Windows (replaces pwsh and WSL-only bash)
Listed
2
Tools
Bundle verified
What it does
Git Bash shell tool for Windows: runs commands through the bash bundled with Git for Windows, with timeout, sandbox, output truncation, and background jobs, replacing the slow pwsh tool and the WSL-only bash tool.
Best for
- Windows DSH users who prefer a Bash-compatible shell without installing WSL.
- Agents that need Git for Windows Bash with timeout, sandbox escalation, output truncation, and optional background jobs.
- Windows projects that mix native drive paths such as `C:\...` with Git Bash paths such as `/c/...`.
Not ideal for
- macOS or Linux environments, where this Windows-specific shell adapter adds little value.
- Windows machines without Git for Windows or another supported `bash.exe`.
- Workflows that specifically require PowerShell semantics or a full WSL Linux environment.
- Background-job workflows when `enableRunInBackground` is disabled.
README
dsh-win-gitbash
🏅 已收录于 Awesome DeepSeek Harness (DSH) Plugin 精选列表(🛠️ 工具与能力)
面向 Windows 的 Git Bash 工具插件(DSH / DeepSeek Harness tool plugin)
Model-facing Git Bash tool for Windows — replaces pwsh / WSL-only bash.
🎯 用于替代原生 pwsh 的 gitbash:Git for Windows 自带的 bash,快、原生、免 WSL。
理念
DSH(DeepSeek Harness)在 Windows 上有两个原生命令工具的痛点:
- ⚠️ 原生的 pwsh 工具:Windows 上启动慢、执行卡顿,日常命令体验差
- ⚠️ 原生的 bash 工具:依赖 WSL,Windows 端没有 WSL 环境就用不了
本项目为 DSH 提供一个第三个选项:直接依赖 Git for Windows 自带的 bash
(C:\Program Files\Git\bin\bash.exe),以 DSH 工具插件形式注册为 gitbash
工具。唯一的前置依赖就是装一个 Git for Windows,装完即得一个原生、快速、
可用的 bash 环境,供 AI 模型(Agent)在 Windows 上执行 shell 命令。
- 🚀 快:Git Bash 启动远快于 PowerShell,无 WSL 层开销
- 🪟 原生:不需要 WSL,直接跑在 Windows 上,路径同时支持
C:\...与/c/... - 🔌 插件化:以 DSH 工具插件形式注册为
gitbash工具,与pwsh、bash平级 - 🧯 安全:支持文件沙箱模式、超时控制、输出截断与后台任务
与原生 pwsh / bash 对齐
本工具在行为上向 DSH 原生 pwsh、bash 工具看齐,替代切换几乎无感:
-
run_in_background参数仅在enableRunInBackground开启时暴露;关闭时描述提示”后台执行不可用”,与原生一致 - 沙箱受限时的升级提示 + 权限提问(
sandbox_permissions+justification双条件触发,经由approveEscalation+ctx.approval)与原生完全一致 - 工作目录解析与原生
bash一致:沙箱根优先,否则会话 cwd 经canonicalPath规范化
差异仅在实现层:原生依赖
ctx.shell执行器;本工具作为ctx.subprocess消费者直接调用 Git for Windows 自带 bash,并额外提供原生所没有的调用卡片 UI。
依赖
必须安装 Git for Windows(提供 bash.exe):
- 下载:https://git-scm.com/download/win
- 安装后请确认以下任一路径存在(工具会自动探测):
C:\Program Files\Git\bin\bash.exeC:\Program Files\Git\usr\bin\bash.exe- scoop 安装的 Git(跟随
SCOOP环境变量定位,默认C:\Users\<用户名>\scoop\apps\git\current\bin\bash.exe) - 任意 PATH 目录下的
bash.exe(如自定义盘符安装、便携版等;System32下的 WSL 启动器会被跳过)
安装
本插件以 npm 包 dsh-tool-gitbash 发布,声明了 dsh.bundle manifest,可直接通过 DSH 插件系统安装。
方式一:命令行安装(推荐)
dsh plugin add dsh-tool-gitbash
安装命令会自动处理
@deepseek-ai/*peer 依赖;装完在 DSH 组合(composition)/ profile 中启用该 bundle,重启后模型即可获得gitbash工具。
方式二:dsh-market 图形界面
在 DSH Web 设置 → 插件市场(dsh-market)中搜索 dsh-tool-gitbash,一键安装。
方式三:手动放入 node_modules
- 将本包放入 DSH 的
node_modules(如%APPDATA%\npm\node_modules\dsh-tool-gitbash)或作为本地依赖引用。 - 确保 peer 依赖可用(
@deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-sandbox、@deepseek-ai/dsh-shell、@deepseek-ai/dsh-timeout)。 - 在 DSH 组合(composition)中启用该插件,重启后模型即获得
gitbash工具。
配置
自动探测找不到 bash 时,可通过插件 bashPath 显式配置路径,例如在 cordis.patch.yml 的插件行中:
- insert:
- id: tool-gitbash
name: 'dsh-tool-gitbash'
config:
bashPath: 'C:\Users\me\scoop\apps\git\current\bin\bash.exe'
工具参数
| 参数 | 说明 |
|---|---|
command |
要执行的 Git Bash 命令(bash -c) |
description |
命令用途的一句话描述(界面展示用) |
timeoutMs |
超时(默认 120s,上限 600s) |
workdir |
工作目录,默认会话目录 |
run_in_background |
后台运行,立即返回 jobId |
sandbox_permissions / justification
|
沙箱升级(配置了沙箱时可用) |
项目结构
dsh-win-gitbash
├── index.js # 兼容入口(重新导出 lib/index.js)
├── lib/
│ ├── index.js # Host 端插件:Git Bash 探测、命令执行、超时/沙箱/后台
│ └── client.js # Client 端:Git Bash 调用卡片 UI(tool.call.toolview)
└── package.json
许可证
Frequently Asked QuestionsFAQ
Use the verified command dsh plugin --profile default add github:buhuikongpan/dsh-win-gitbash in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.
Compatibility follows the bundle and profile status shown above. If a profile is not detected, keep the plugin disabled there and check the repository documentation before enabling it in production.
The GitHub link and activity metadata are the source of truth for releases and maintenance. Revisit this page after a new release to confirm the catalog has observed the latest version.