快速了解
它能做什么
在 Windows 上让 DeepSeek Harness 的智能体 Shell 使用 Git for Windows Bash,而不是 PowerShell。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile
>=0.1.0
证据已验证
核对日期 2026/9/15 UTC 13:49
有代码证据的贡献
它为 DSH 增加什么
为 Windows 上的 DSH 生成标准、极简、PTC 和 Cordis 模式的 Git Bash 变体。
机制证据 ↗选择前先看
此 DSH Bundle 会禁用 PowerShell 沙箱,并通过可配置的 bash.exe 路径加入 Git Bash 执行器。它会生成标准、极简、PTC 和 Cordis 模式的 Git Bash 预设变体,并声明了对多个 DSH 预设版本变化的适配。
适合谁
已安装 Git for Windows、希望 DSH 智能体 Shell 命令使用 Git Bash 语法的 Windows DeepSeek Harness 用户。
常见任务
- 让 DSH 智能体 Shell 命令通过 Git for Windows Bash 而非 PowerShell 执行。
- 为新会话选择 standard-gitbash、minimal-gitbash、code-gitbash 或 cordis-gitbash 预设。
- 配置非默认的 Git Bash 可执行文件路径或 Shell 超时时间。
- 可选地让 dsh-better-sidebar 的 Windows 终端也使用 Git Bash。
权限与数据
会修改 DSH Profile 的组合配置并管理插件拥有的本地预设文件;智能体 Shell 命令会启动所配置的本地 Git Bash。
权限- 在活动 Bundle 栈中禁用 DSH PowerShell 执行器。
- 启动 Git for Windows bash.exe 执行智能体 Shell 命令。
- 在第一个用户信任预设根目录写入和刷新由插件管理的 Git Bash 预设。
- 安装了 dsh-better-sidebar 时,可能更新其终端 Shell 设置。
- 文档称 bash.exe 会继承 Host 进程环境,包括系统环境变量和 DSH_* 快照。
- 提供的证据未描述此 Bundle 的外部遥测或远程数据传输。
- Windows 主机上的本地 Git for Windows 安装。
- 可选与 dsh-better-sidebar、dsh-ptc-cordis-preset 协同。
- 提供的 manifest 和文档未声明需要凭据。
局限
- 面向 Windows;非 Windows 主机上其执行器行会被禁用。
- Git for Windows Bash 必须位于配置路径;文档默认路径为 `C:/Program Files/Git/bin/bash.exe`。
- 文档说明安装后需重启 Host 才会生效。
- 提供的证据未审计 npm 包内容。
- 可选的侧边栏联动会在每次 Windows 启动时接管其终端 Shell,除非在插件配置中关闭。
DSHub 已核对
- 固定源码声明版本为 0.15.0,要求 Node.js >=18 与 DSH >=0.1.0。
- Bundle Patch 结构已通过验证,且源码提交已固定。
- Manifest 声明 MIT 许可证,npm 包注册表身份已验证。
DSHub 未核对
- 提供的证据未实际运行安装、Host 重启、Shell 执行或预设生成。
- 未独立测试它与特定 Git for Windows 路径或具体 DSH Host 版本的兼容性。
- 未审计 npm tarball 内容。
固定版本安装
安装 Git Bash Shell for DSH
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
dsh-gitbash-shell
简体中文 | English
让 DeepSeek Harness (dsh) 在 Windows 上全部使用 Git Bash 的官方风格插件 —— 以 Git for Windows 的
bash.exe替换 PowerShell 执行器,并为所有模式 物化对应的 Git Bash 版 agent preset。
它解决什么
官方 Windows 组合默认把 dsh-pwsh-sandbox 作为 ctx.shell(PowerShell 执行器),
且各 preset 的 tool-bash 行在 win32 上被禁用——因为在 Windows 上裸 bash
会解析到 C:\Windows\System32\bash.exe(WSL 占位),本插件直接指定
C:/Program Files/Git/bin/bash.exe 并保留官方沙箱语义。
安装本插件后:
| 模式 | preset id | 说明 |
|---|---|---|
| 标准模式 · Git Bash | standard-gitbash |
完整编码 Agent,shell 为 Git Bash |
| 极简模式 · Git Bash | minimal-gitbash |
持久 Git Bash 终端 + str_replace_editor |
| PTC 模式 · Git Bash | code-gitbash |
PTC(Code Mode SDK)+ Git Bash |
| 创造模式 · Git Bash | cordis-gitbash |
自引用 Cordis 工具集 + Git Bash |
原有的 标准模式/极简模式/PTC 模式/创造模式(shipped,不可修改)在
Git Bash host 下会拿到"暗示 PowerShell 语法的工具",请改用上面的变体;
已装 dsh-ptc-cordis-preset 的话,PTC 创造模式 用户 preset 不受影响。
dsh 版本双适配(0.1.1 与 0.1.2+)
dsh 0.1.2 把内置 code preset 改名为 ptc(mode: code → mode: ptc,官方不做
兼容别名),并给各内置 preset 新增 command-goal 等行。本插件为受影响的变体
(standard/code/cordis)同时携带两个 era 的已提交组合文本,启动时探测内置
roster 自动选择,并记进 .plugin-managed.json 的 base 字段;探测翻转(dsh
升级前后)自动重物化。minimal-gitbash 的内置底稿跨版本未变,单文本服务两个
era。preset id 保持 code-gitbash 不变(会话钉在 id 上,改名会让已固定的
会话报 preset not found)。无论先升级插件还是先升级 dsh,都会自动收敛;用户改
过的目录照旧不碰。
dsh 0.1.6 适配(工作流引擎行改名)
dsh 0.1.6-alpha.1 把内置预设的工作流引擎行 workflow-worker-thread 改名为
workflow-ptc,并删除了旧包。组合里一行 import 失败会拒绝整棵 preset 挂载,
所以把旧名钉死在资产里的 preset 在新版上会直接不可用。本插件两个拼法都不钉:物化时
从宿主自己的内置 preset 现场抄那一行的 id、包名与 disabled 状态
(rowFormsOf / alignEngineRow),并让 tool-ralph 跟随新版默认的 disabled: true。
改写是纯字符串手术(不解析 YAML,!!js 安全)且幂等;探测失败(旧宿主、无 roster)时
资产保持逐字节原样——一份资产通吃两个 era,升级顺序无关。
同一版还把 LocalBashExecutor 的受保护钩子改成了异步:插件的 runArgv 结果解包、
start 的返回形态与 confine 的取消信号都按加载期探测自适应,新旧宿主行为一致。
安装(公开 npm 插件,推荐)
npm: dsh-gitbash-shell, 源码与 Release: github.com/KannaKuron/dsh-gitbash-shell
# web 图形界面
dsh plugin --profile web add dsh-gitbash-shell
dsh plugin add 会自动:① pnpm 安装 npm 包 dsh-gitbash-shell;
② 检测到包声明的 dsh.bundle 后把它追加进该 profile 的
dsh.profile.bundles。重启该 profile 的 host 后生效。
它做了什么
bundle patch(cordis.patch.yml)应用三个改动:
pwsh-sandbox行disabled: true—— 每进程只允许一个ctx.shell;- 插入
gitbash-executor(dsh-gitbash-shell/shell):继承官方@deepseek-ai/dsh-bash-sandbox,仅把内层 argv 换成<git-bash.exe> -c <command>。沙箱策略/拒绝分类/后台任务/超时/设置节 全部沿用官方实现;full-access 分支单独接 Git Bash(父类那里硬编码裸bash); - 插入
gitbash-presets(dsh-gitbash-shell/presets):启动时把上表 4 个 preset 物化到首个 user-trust preset 根目录,并写.plugin-managed.json(逐文件哈希)——未改动则随版本刷新;被用户改过就 不再碰;卸载时(且仅当未改动)会清理。
环境变量:bash.exe 是 host 进程的直接子进程(不经 git-bash 登录壳),完整继承
系统环境变量与 DSH_* 快照,和原来 pwsh 拿到的完全一致。
配置
gitbash-presets 行支持 presets 数组,只物化你常用的模式(未列出的旧物化目录、
且未被用户修改过的,会自动清理):
- id: gitbash-presets
config:
presets: [standard-gitbash, minimal-gitbash] # 默认物化全部 4 个
配合 agent-presets 的 default,新会话直接落在 Git Bash 模式,免去每次在
模式选择器里翻找(原版 shipped 模式无法替换或隐藏——部署级、只读):
- id: agent-presets
config:
default: ptc-cordis # 或 standard-gitbash / minimal-gitbash
配置(执行器)
gitbash-executor 行支持:
config:
bashPath: "D:/Tools/Git/bin/bash.exe" # 默认 C:/Program Files/Git/bin/bash.exe
timeoutMs: 60000 # 默认 60s,可继续用 shell 设置节调整
验证
npm test
重启 host 后新会话:
- 工具列表里出现
bash(不再有pwsh),描述为 Git Bash; echo \$BASH_VERSION有输出、command -v bash指向 Git 安装目录。
卸载
dsh plugin --profile web remove dsh-gitbash-shell
或删除 profilepackage.json 中依赖 + dsh.profile.bundles 中的条目后
dsh plugin --profile web install。卸载并重启后,未改过的 * -gitbash
preset 会被插件自动清理;宿主 shell 回退为 PowerShell。
与 dsh-ptc-cordis-preset 联动
本插件在 host 上发布 gitBash 能力服务({ active, bashPath },仅 Windows 为 active)。
dsh-ptc-cordis-preset v0.5.0+ 在物化
PTC 创造模式 时会检测该信号:两个插件都安装时,PTC 创造模式自动物化为 Git Bash 版
(tool-bash 启用、tool-pwsh 禁用),无需新增模式、无需手工修改 preset;
只装本插件时 PTC 创造模式保持原样(由它自己的插件管理)。
切换生效后若
ptc-cordis目录已存在且被旧版本物化,删除~/.dsh/.agent-presets/ptc-cordis并重启,即由新逻辑重新物化。
POSIX 路径方言(v0.7.0 引入,受 posixPaths 开关门控)
Windows 上本插件把宿主 shell 换成 Git Bash 的同时,让模型看到的路径统一成 MSYS 盘根
POSIX 形式(/c/Users/...、/c/Program Files/...)。开关是 settings 命名空间
gitbash-shell 的布尔字段 posixPaths,默认开启(v0.10.0 起),可在 设置 → 插件
里本插件的「Git Bash 路径方言」卡片上随时切换;不修改任何 preset / 组合文件,标准/极简/
PTC/创造及用户自建模式一律覆盖。
开启时(仅 Win32),posixPaths 门控以下全部行为:
- 提示词源头替换:组装期(
system-prompt/assemble)把官方提示词 sections / contexts / variables 里的 Windows 绝对路径原位改写成/c/...——不增删任何内容、不动工具 schema; - 一句话指示:经
systemPrompt.context(order 126)注入全局指示——shell 是 Git for Windows bash,路径用 MSYS 盘根,所有工具都直接接受这种写法; - 参数翻译:
tools/execute上把文件工具的路径参数(file_path/path/workdir)由/c/...翻回C:/...交给 Node 文件工具;bash 的command字段不动——那是 Git Bash 母语; - 结果回流:成功结果里的路径元数据(
read/write/edit的path、glob的paths[]、grep的matches[].path)改写回 MSYS 形式;文件内容与错误结果不动; - 运行时事实:向官方
dsh-shell-env注册表贡献DSH_PATH_DIALECT=msys,模型可在执行时 核验(随开关实时生效)。
关闭后回到 dsh 原生行为:指示文本为空(组装期直接丢弃,零提示噪声),路径参数与结果元数据 都不再改写,文件工具收 Windows 路径。bash 始终是 Git Bash,不受此开关影响——它只决定 跨工具的路径方言。
与 dsh-better-sidebar 联动
装了 dsh-better-sidebar(v0.15.2+) 时,Windows 上本插件会通过它的官方设置补丁口(运行时 terminalShell 设置,对方文档明示"settings-page overrides win for terminals opened afterwards")把它打开的终端 shell 指向 Git Bash——UI 终端标签与模型侧 terminal_* 工具统一生效,不改对方一行代码、新开的终端即生效。此外,本插件的 bundle patch 还会给对方的行补上 config.shell(启动期解析,连 tab 标题也会显示 bash;对方未安装时该行无害跳过)。规则:
- 插件全权接管:Windows 上每次启动都无条件把它的
terminalShell设为 Git Bash——即使你在设置页/别处改过,下次插件启动也会改回来; - 卸载本插件 → 自动还原为你改之前的原值(回到它的默认解析:pwsh / powershell);
- 想关掉本联动 → 本插件 row 配置加
betterSidebarShell: false。
许可
MIT © KannaKuron。参考与致敬:dsh-ptc-cordis-preset。
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile
交付方式: Git Bundle — KannaKuron/dsh-gitbash-shell#9c1083eca596bbffa12030f88f7a2dd8e8ec2a57。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
Windows-focused DSH bundle; Node.js 18 or later: >=0.1.0。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
仅当你明确希望 Windows DSH Profile 使用 Git Bash 时再启用;启用前请检查既有依赖 PowerShell 的工作流。
AI 审查于 2026/9/15 UTC 13:50。GitHub 事实核对日期: 2026/9/15 UTC 13:50。
自当前证据基线以来,没有记录到重要源码变化。