让 Windows 上 DeepSeek Harness 的终端工具只剩 Git Bash:启用 bash 执行器与工具、全局禁用 PowerShell,并附 standard/code/cordis 三个 bash-only agent 预设及配套的 full-access 沙箱默认值。
安装
# npm 包(预构建)
dsh plugin --profile web add windows-bash
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:bainianlaoyao/windows-bash
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
让 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。
链接
同类插件
strukto-ai/mirage#dsh★ 3453
把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Slack、Gmail、Notion、Postgres)而非宿主磁盘,支持按挂载点设置读/写/执行模式、按命令选择沙箱(进程内 monty、pyodide、quickjs;远程 docker、e2b、daytona),并可在虚拟终端中安装 CLI(git、gh、slack、linear、ntn、gws,或自行注册的程序树)作为命令头词。
hust-open-atom-club/oh-dsh★ 203
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
Jayden-X-L/forkprobe★ 66
同一任务并行试跑多个技能,对比结果选出最优。
vlln/plugin-registry★ 44
插件生态基建:浏览器面板管理官方 repository 插件(0 patch)+ make-dsh-plugin 插件开发引导技能。
forrestchang/dsh-multica-runtime★ 38
让 dsh 运行时跑在 Multica 上。
omdsh-dev/dsh-plugin-check★ 21
插件健康检查:扫描清单协议/patch 格式/构建陷阱,零依赖只读。