bainianlaoyao/bash-on-windows
在Windows上,可用的bash工具仅限于Git Bash,且PowerShell已被禁用。
项目介绍Project Overview
这是让 Windows 上 Git Bash 成为 DeepSeek Harness 唯一终端的插件,通过 bundle patch 禁用 pwsh、启用 bash,并提供三个 bash-only 派生预设。适合想在 Windows 会话中彻底移除 PowerShell、只让模型调用 Git Bash 的场景;macOS/Linux 上为空操作。注意:win32 沙箱默认 danger-full-access 且审批 never,需 PATH 中已有 Git Bash。
This plugin makes Git Bash the only terminal for DeepSeek Harness on Windows. Its bundle patch disables PowerShell and enables bash, while three derived presets expose bash-only sessions. Use it when Windows sessions should never expose pwsh to the model; it is a no-op on macOS/Linux. Caveat: the win32 sandbox defaults to danger-full-access with approval never, and Git for Windows must provide bash on PATH.
请帮我了解并安装插件:【bash-on-windows】【https://github.com/bainianlaoyao/bash-on-windows】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add windows-bash
把 bainianlaoyao/bash-on-windows 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
windows-bash
让 Windows 上 Git Bash 成为 DeepSeek Harness 唯一终端工具 的插件(bundle + agent preset)。
官方 dsh 在 Windows 上默认只给 PowerShell(dsh-base 用 process.platform 表达式在 win32 禁用 bash、启用 pwsh);本插件把这一默认翻转成 只有 git bash。macOS / Linux 上官方默认本来就是 bash-only,插件是 no-op。
与 dsh-bash-terminal(可切换 PowerShell / Git Bash / WSL)不同,本插件是"唯一"语义:PowerShell 从运行时和模型工具面彻底移除。
组件
| 组件 | 说明 |
|---|---|
cordis.patch.yml |
bundle patch(dsh.bundle.patch):宿主平面翻转——tool-bash 启用、tool-pwsh 禁用;执行器 bash-sandbox 启用、pwsh-sandbox 禁用;win32 沙箱默认 danger-full-access + 审批 never(带 DSH_PERMISSION_MODE 逃生口,非 Windows 不动) |
presets/standard-bash code-bash cordis-bash |
bash-only 派生预设(官方预设 + 两行翻转),因为 bundle patch 无法修改 dsh 内置预设文件 |
scripts/install.ps1 |
把三个预设以 junction 形式安装到 $DSH_HOME\.agent-presets\(支持 -Uninstall) |
scripts/build-presets.mjs |
从 pristine @deepseek-ai/dsh 源重新生成派生预设(上游升级时用) |
scripts/check-rows.mjs |
契约测试:预设与 patch 的 bash-only 不变量 |
工作机制(两层,缺一不可)
- 宿主平面(bundle patch):
exec_command/bash工具的执行器是bash-sandbox(内部spawn 'bash',Windows 上即 PATH 里的 git bash);pwsh-sandbox被禁用,PowerShell 在运行时不存在。 - 会话平面(派生预设):web 界面(
dsh-web-app)把宿主平面的tool-bash/tool-pwsh同时禁用、让每个会话由 preset 挂载工具。所以模型侧"只看到 bash"必须由预设文件完成——这正是官方预设文件被本地改过的原因;本插件把它变成可分发、不依赖改官方文件的派生预设。
安装
# 1) 宿主平面(bundle patch)
dsh plugin --profile web add github:bainianlaoyao/windows-bash # GitHub 分发
dsh plugin --profile web add windows-bash # npm 分发(已发布;预构建安装免 allowBuilds)
# 或手动把 cordis.patch.yml 里的 6 行补进 profile 的 cordis.patch.yml
# 2) 会话平面(三个 bash-only 预设,junction 安装,不复制代码)
powershell -ExecutionPolicy Bypass -File scripts/install.ps1
# 3) 重启 dsh,新建会话,选择 standard-bash / code-bash / cordis-bash 预设
前置条件:已安装 Git for Windows(bash 在 PATH 中)。
npm 包名与仓库名相同:windows-bash(dsh.profile.bundles 里加入 "windows-bash" 后 pnpm install 亦可)。
卸载
powershell -ExecutionPolicy Bypass -File scripts/install.ps1 -Uninstall
# bundle 行从 profile 补丁层手动删除
测试
node scripts/check-rows.mjs # 契约:三个预设 + patch 的 bash-only 不变量
升级 dsh 后
node scripts/build-presets.mjs --src <pristine agent-presets 目录> 重新生成派生预设并提交;宿主平面补丁行无需改动(目标行 id 由官方包提供)。
安全
见 SECURITY.md——重要:win32 默认沙箱为 danger-full-access 且审批为 never,这是 git bash cygwin 运行时的硬性要求。
许可
MIT。派生预设来自 DeepSeek Harness agent presets(MIT,Copyright (c) 2026 DeepSeek),各预设目录内附 LICENSE.deepseek-harness。
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS