dsh-win-bash

DSH PLUGIN会话与消息

仓库 MYiYang/dsh-win-bash

会话与消息 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

dsh-win-bash 是 MYiYang 维护的 会话与消息 类 DSH 可安装插件, 仓库为 MYiYang/dsh-win-bash,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-win-bash 是会话与消息类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-28 创建于 2026-10-28
README 10.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:MYiYang/dsh-win-bash
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

GitHub 集成终端命令

上游标签

deepseek-harnessdsh-plugingit-bashwindows

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-win-bash当前 L4 · 沙盒安装通过 低风险 0 未标注 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方MYiYang仓库 dsh-win-bash · 默认分支 main
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-28 · 2026-10-28最后推送 2026-10-28
本站收录2026-10-30首次进入本站目录的时间

README 全文

10.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-win-bash

English | 中文

Windows 上用 Git Bash 执行命令的 DeepSeek Harness 插件。

它做什么

DSH 出厂组合按平台开关两套 shell:Windows 上 host 组的是
@deepseek-ai/dsh-pwsh-sandbox(PowerShell),各 agent preset 挂
@deepseek-ai/dsh-tool-pwsh;bash 那一套默认禁用——因为 dsh-bash-local
直接 spawn PATH 上的 bash,而 Windows 上 PATH 里的 bash.exe 是
C:\Windows\system32\bash.exe,即 WSL 启动器,不是 Git Bash。WSL 是另一套
文件系统视图、不认 C:\ 风格路径,不能当 Windows shell 直接替。

本插件补上缺的那块:

  • 一个 ctx.shell provider,spawn 明确解析出来的 Git Bash
    (\bin\bash.exe -c),并完整继承上游机制:托管进程组、
    超时/中止分类、有界输出与落盘、模型友好环境(NO_COLOR、TERM=dumb、
    PAGER=cat)、后台任务、文件沙箱;
  • 出厂自带的模型侧 bash 工具,接到这个 executor 上。

它是旁挂在 pwsh 栈旁边,而不是替换:loader 行声明
isolate: { shell: 'win-bash' },把 executor 和工具放进一个私有服务领域。
host 的 ctx.shell(pwsh)既不被替换也不会重复注册,preset 的 pwsh
工具原样不动。

安装

dsh plugin --profile desktop add dsh-win-bash

从本地目录装(开发/未发布版本)就用 link: 指向那个目录:

dsh plugin --profile desktop add link:/path/to/dsh-win-bash

该命令写入 profile 依赖,并把 dsh-win-bash 追加进 dsh.profile.bundles;
loader 行由插件自己的 cordis.patch.yml 提供。宿主在下次启动时加载新
bundle(应用运行中时,profile reconcile 会热加载该行)。

换个 profile 也用同样命令、换个 profile 名即可。

配置

所有开关都在 win-bash 这一行上(在 profile 的 cordis.patch.yml 里用
- id: win-bash / config: {...} 覆盖——patch 会整份替换该行 config):

键 默认值 含义
bashPath '' bash.exe 绝对路径;留空 = 自动探测
promptHint true 是否加一条「优先用 bash」的系统提示段
sandboxFallback auto 宿主上「已证实的受限 spawn 失败」意味着什么——见下文
timeoutMs 120000 前台默认超时(上游默认值)
maxTimeoutMs 600000 单次超时覆盖的上限
maxOutputBytes 64000 单流内存上限,超出落盘
maxSpillBytes 67108864 单流完整输出落盘上限
graceMs 3000 kill 升级与退出后管道 drain 宽限期
cwd (不设) 默认工作目录;单次调用以会话工作区为准

今天的受限 Git Bash 起不来(sandboxFallback)

Windows 上上游的 ACL runner(@deepseek-ai/dsh-sandbox-windows-acl)在
WRITE_RESTRICTED 受限令牌下起受限子进程,而 Git Bash 在这个令牌下无法完成
初始化
。已知两条路通向同一个死法——STATUS_DLL_INIT_FAILED、退出码
0xC0000142,工具层表现为 (no output) [exit code: 3221225794]:

  1. 宿主没有控制台。 runner 起控制台子进程靠继承宿主控制台(它自己的
    文档:「Console isolation is unavailable」,CREATE_NO_WINDOW /
    CREATE_NEW_CONSOLE 变体在受限令牌下会死)。从 Explorer/开始菜单双击启动的
    DSH 桌面版是 GUI 进程,整棵进程树没有控制台,控制台子进程在 DLL init
    阶段死亡。真实桌面版安装方的报告里,出厂的 pwsh 工具同样这样静默死掉。
  2. msys 共享对象(所有宿主都中招)。 Git Bash 背后的 msys 运行时在初始化时
    要创建 \BaseNamedObjects\msys-*,受限令牌拒掉这个创建(0xC0000022),
    bash 带着一坨 fatal error 栈信息死在 stderr 上。妾身用真发货 runner 在
    开发机上复现了:同样的 spawn,cmd.exe 和 powershell.exe 都活着(有无
    控制台都一样)——只有 bash 死。从终端启动 DSH 躲不过这条路。

同一条命令放到 danger-full-access 下立刻正常,因为它压根不进沙箱链路。所以
在 Windows 上,下面的降级不是权宜之计——它就是在「带文件沙箱的会话」里让
bash 工具能用的那个配置。

sandboxFallback 决定这份「已证实的初始化死亡」怎么处理:

值 行为
fail 抛出带根因和出路明确的显式错误;绝不非受限运行
unconfined 压根不调沙箱:每条命令直接跑 Git Bash,结果标 enforcement: 'none'。不弹授权——这是操作员的站立授权,给没有审批通道的宿主(CI、headless)用
auto(默认) 行激活时跑一次只读受限探针:拿到 0xC0000142 阳性签名后,每条受限调用(含第一条)都以沙箱拒绝应答,命令不执行。出厂的 bash 工具随即渲染 [sandbox: file access denied under mode] 和升级提示;模型带 sandbox_permissions + 一句理由重试同一条命令,由 harness 的审批通道问用户。只有「允许本次」真正执行——以批准的更宽模式非受限跑。探针判不明时,第一条真实受限调用拿到阳性签名后锁存同样的拒绝行为。

auto 永远不会绕过能用的沙箱:只有拿到 0xC0000142 阳性签名才走这条路——
真跑起来的受限子进程产生不了这个签名(cmd 和 pwsh 在同样的 spawn 下活着;某条
命令在非受限下也这样崩的话,问用户只是同一个结果的诊断,不是误报)。终端里跑的
dsh / dsh web 保留上游能用的部分——但按上面第 2 条,受限 Git Bash 在
Windows 上跟启动方式无关地坏,所以 auto 在那儿照样拒绝,这是正当行为。

auto 下用户看到什么: 第一条受限 bash 调用返回 (no output),带拒绝标记和
提示——用 sandbox_permissions(最窄的够用的更宽模式)加一句理由重试同一条命令,
「授权框会问用户」。重试拉起一个审批请求(允许本次操作使用 权限:…);
批准后命令非受限执行,结果的 sandbox 事实是
{ mode: 'danger-full-access', denied: false }——诚实的标记,没有 bypass 戳。
拒绝则抛错:「the user rejected escalating this command … it stays denied, so
stop and explain instead of working around it」。宿主日志里有一条一次性
win-bash: … 警告写明根因。探针在行激活时已证死的话,系统提示段也会写明,模型
就直接要 danger-full-access,不用一格一格爬梯子。

上游(不归本插件): 第 1 条要 runner 在宿主无控制台时改用
DETACHED_PROCESS(或先判 GetConsoleWindow() === NULL 再选 flags)——harness
仓库目前没有这个分支。第 2 条 runner 压根修不了:WRITE_RESTRICTED 令牌没法给
msys 运行时在 \BaseNamedObjects 里开对象创建的口子,所以 Windows 上的受限
Git Bash 要么用本插件的降级,要么等上游换沙箱机制。

Git Bash 探测顺序

  1. 行配置里的 bashPath;
  2. 环境变量 DSH_GIT_BASH_PATH;
  3. 注册表(HKLM/HKCU/WOW6432Node 的 SOFTWARE\GitForWindows →
    InstallPath)——F:\ssdpath\Git\2331 这种带版本号的安装就是这样找到的;
  4. 常见安装位置(%ProgramFiles%\Git、%ProgramFiles(x86)%\Git、
    %LOCALAPPDATA%\Programs\Git、Chocolatey、scoop、MSYS2);
  5. PATH 按序找,跳过 C:\Windows\System32 下的 WSL 启动器。

显式的 bashPath(或环境变量)排在最前且不受 WSL 过滤限制,所以确实想用
WSL bash 的人可以显式指过去;但它仍然必须存在——显式路径不存在时会继续往下
探测(与 dsh-pwsh-local 一致)。自动探测永远不会选 WSL 启动器——找不到就
报一个带修复指引的错,不猜。

验证

会话里让模型(或你)执行:

bash: echo "$BASH_VERSION"; uname -s

输出 MINGW64_NT-* 就是 Git Bash;若是 Linux 说明跑到了 WSL。插件页里
这一行显示为 win-bash(dsh-win-bash),宿主启动日志会打印
win-bash: using Git Bash at <路径>。

回滚

dsh plugin --profile desktop remove dsh-win-bash

或禁用该行(plugin_manager → win-bash,或在 profile patch 里
disabled: true)。两种方式都让宿主精确回到出厂状态:pwsh executor、
preset 的 pwsh 工具、没有 bash 工具。组合里别的东西一律不动——插件从不
在自己的领域之外写任何东西。

已知限制

  • 仅 Windows。 行上带了 process.platform !== 'win32' 门;POSIX 上出厂
    bash 栈本来就在跑,再挂一个 bash 工具会重名。
  • pwsh 仍然可用。 要删它就得整份重述某个 agent preset 的插件列表,而那
    份快照会在每次 DSH 升级后悄悄过期(其中一个包改名就会让该 preset 挂载
    失败、影响所有会话)。promptHint 提示段负责把模型引向 bash;绝不
    该看到 pwsh 的会话,用一个不含它的 preset 即可。
  • Git Bash 的路径语义就是 MSYS 语义。 /f/... 风格路径,带反斜杠的
    Windows 路径可能需要加引号——这是 Git Bash 的常态,和任何 Git Bash 用户
    面对的模型侧界面相同。
  • 受限沙箱路径是继承而非重写。 workspace-write/read-only 模式下由
    上游的 windows-acl runner 包裹我们的 argv,变的只是被包裹的可执行文件。
  • 今天的 Windows 宿主没有一个能沙箱 Git Bash。 两条独立的路都在命令跑起来之前
    杀死受限子进程:宿主没有控制台(runner 自己的文档局限——从终端启动 DSH 只能躲过
    这一条),以及受限令牌下 msys 运行时建不了 \BaseNamedObjects\msys-* 对象——
    这条跟 DSH 怎么启动无关,台台都中。两者都是 ACL runner 的上游局限,不是换个
    shell 能绕的——第一条路上 pwsh 死得一模一样。sandboxFallback: auto 下,插件
    对这样的调用以拒绝应答,让用户去授权更宽的模式。
  • 受限 Git Bash 在每一台 Windows 宿主上都坏,不止桌面版。 runner 的受限令牌下
    msys 运行时建不了 \BaseNamedObjects\msys-* 共享对象(0xC0000022 → bash 死
    0xC0000142);妾身用真发货 runner 复现过,同样的 spawn 下 cmd、pwsh 都活。
    所以 sandboxFallback 是 Windows 上的工作配置——auto 之下,它让每一个这样
    的调用都经过用户授权,而不是悄悄非受限跑掉。

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-win-bash 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:MYiYang/dsh-win-bash` 即可。

dsh-win-bash 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-win-bash 安全吗?

低风险。

dsh-win-bash 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-win-bash 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

MYiYang 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。