KannaKuron/dsh-gitbash-shell
dsh-gitbash-shell
DSH plugin: Git Bash shell for all agent modes on Windows (replaces pwsh executor)
Install
npx @deepseek-ai/dsh plugin --profile web add dsh-gitbash-shellRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-gitbash-shell)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from KannaKuron/dsh-gitbash-shell, cleaned of badges and images.
dsh-gitbash-shell
简体中文 | English
Unreleased/实验性实现讨论:下述 fail-closed 与两个显式工具尚未正式发布,不是发布候选;安装公开 npm 包不保证包含这些变更。详见设计、接口与待讨论决定、验证矩阵与复现及 CHANGELOG。
让 DeepSeek Harness (dsh) 在 Windows 上默认用 Git Bash 跑命令的官方风格插件 —— 不替换宿主执行器(官方 PowerShell 执行器原样保留):新增自有 bash 工具 (私有 Git Bash 执行器实例,不注册为服务),并为所有模式注册对应的 Git Bash 版 agent preset。
它解决什么
官方 Windows 组合默认把 dsh-pwsh-sandbox 作为 ctx.shell(PowerShell 执行器),
且各 preset 的 tool-bash 行在 win32 上被禁用——因为在 Windows 上裸 bash
会解析到 C:\Windows\System32\bash.exe(WSL 占位)。本插件不替换这个执行器:
它新增一个自有 bash 工具,执行在私有的 Git Bash 执行器实例上(继承官方
@deepseek-ai/dsh-bash-sandbox,bashPath 只认 Git for Windows)。沙箱语义在
POSIX 宿主上完整保留;
Windows 宿主上受限模式有一处重要例外——见下方
「安全语义:Windows 上的受限模式」。
安装本插件后(v0.35.0 起,默认):
-
官方四个模式直接获得 Git Bash——模式列表保持官方原样,不再新增变体: 每个会话创建时,本插件探测该模式的工具面,「有 pwsh 无 bash」(官方 Windows 组合的形态)即在该会话内注册自有 bash 工具(对官方 tool-bash 逐调用镜像: 后台任务、审批升级、渲染行为不变)。宿主官方
pwsh工具是真正的 PowerShell(v0.39.0 起,本插件不再替换执行器),默认被隐藏、开关显示——见下一条。 -
bash 工具说明附带路由规则:能用 Git Bash 就用 Git Bash;只有必须用到 Windows 原生能力(cmdlet/注册表/服务/WMI)时才用 PowerShell;bash 出错在 bash 里修,禁止在 bash 里嵌
pwsh -Command(变量展开与输出编码会在那里坏掉)。 -
pwsh工具(官方 PowerShell,默认隐藏,开关显示):宿主官方的pwsh工具 就是真正的 PowerShell(官方解析器自动优先 PowerShell 7),可直接用于 Windows 原生操作(cmdlet/注册表/服务/WMI)。默认关闭(pwshTool开关):该工具对本插件 会话隐藏,主机保持 bash 优先;开启后它直接可见可用——无需安装任何额外组件。 旧 PowerShell 7 旁路工具(v0.37–v0.38.5 的独立工具)已随 v0.39.0 新架构退役; 命令仍然首选 bash 工具。 -
gb_*FastCtx 文件工具(默认关,v0.39.4 起弃用):gb_inspect_local_file/gb_grep/gb_glob/gb_replace(Rust 实现:批量范围读取带 token 预算、grep 截断 标注、编码探测)。它们是官方 read/grep/glob/edit 的补充——官方工具接 文件沙箱,仍是默认推荐。dsh-ops 0.3.0 起原生ops_*文件工具取代了 FastCtx 上游,本组默认关闭(fastctxTools显式开启可恢复);已安装 dsh-ops 时无论开关如何都会自动让位。与 dsh-ops 并存时本插件继续负责/c/方言统一:ops_*的入参(含root/operations[].path/protect) 自动转换、返回与报错路径自动回流/c/。 -
与 dsh-ops 并存:bash 只留一份(v0.42.0):宿主机制决定「可见但拒绝」到不了「看不见」——
tools.restrict只能过滤继承面,而ops_bash注册在 agent 自有层。于是本插件直接接管 dsh-ops 自带的publishBashTool开关(经官方 configEditor 通道写为false):安装本插件时ops_bash不再出现在模型工具面;ops 的 pwsh7 overlay(给官方 pwsh 工具供路径)与文件/后台增强不受影响 ——publishBashTool 的门只套在mountSessionBash上,pwsh 走mountBundledPwsh独立路径。ops_run无需处理:它在 dsh-ops 的 bundle 装配中本就没有发布路径——bundle 只有 shell/file/background/ptc 四行,全插件唯一一处new FastCtxTools只在 background 组件挂 后台四件套(run_background/job_*),前台ops_run只是未被任何调用点使用的默认参数; 本机dsh-ops-background行默认关闭,后台四件套同样不存在。 停用或卸载本插件的瞬间自动还原(dispose 钩子撤回覆盖,同 row 的其它设置原样保留),重新启用 又会自动接管。两个边界:①关机状态下卸载的残余覆盖,用 dsh-ops 设置卡「恢复默认」一键撤回; ②停用时若覆盖值已被你手动改回true,视为你的选择、不动它。无设置开关——想用ops_bash就停用本插件,还原是自动的。 后台任务与文件/PTC 增强全部让给 dsh-ops(2026-10-19 用户决策):剔除清单被守卫测试 锁死为ops_bash+ops_run两项,永不含ops_run_background/ops_job_*——你启用 dsh-ops 的「后台任务」组件后,这组全局工具在普通会话与 PTC 创造模式下原样可见可用, 本插件不做任何 deny。bash 归 gitbash,后台与增强归 dsh-ops,职责互不越界。
四个「· Git Bash」变体 preset 仍保留,默认关闭(variantPresets 开关,
设置卡可开):开启后注册 standard-gitbash/minimal-gitbash/code-gitbash/
cordis-gitbash 四个变体并停用官方模式的工具补位(两者互斥)。
⚠️ 从 0.34.x 升级:变体默认关闭。全局默认模式会自动迁移——若你之前把默认设成 某个变体(
*-gitbash),升级后首次启动会经官方设置通道切到对应官方模式 (standard-gitbash→standard、minimal-gitbash→minimal、code-gitbash→ptc、cordis-gitbash→cordis);打开variantPresets则不迁移、一切照旧。钉在变体上的 旧会话无法被迁移(官方agent-preset/locked锁定),请新建会话。
…

