Goose
可用 GOOSE_SHELL 环境变量 Windows macOS Linux 难度 初
设一个环境变量:Windows 上 shell 工具按 GOOSE_SHELL 启动,非 cmd/PowerShell 名字一律传 -c——指向 niu.exe 即用。
PowerShell · 持久化 GOOSE_SHELL 到用户环境
[Environment]::SetEnvironmentVariable('GOOSE_SHELL', "$env:LOCALAPPDATA\Programs\Niubash\niu.exe", 'User') 步骤
- 运行上面的持久化命令,重开终端后启动 goose
- 让 goose 跑任意一条命令(如 ls),确认输出是 bash 方言而非 cmd
验证
echo "SHELL=$SHELL"; uname -s ——期望 uname -s 以 MSYS_NT- 开头(goose 的 shell 工具此时走 niu -c)
回滚
[Environment]::SetEnvironmentVariable('GOOSE_SHELL', $null, 'User') 注意事项
- 源码核实(2026-10-21 HEAD,block/goose crates/goose/src/agents/platform_extensions/developer/shell.rs):windows_shell() 取 GOOSE_SHELL、缺省 cmd;参数风格按文件名分派 pwsh/powershell→-Command、cmd→/C、其余→-c——niu.exe 落进 -c 分支,正是 niu 的一次性执行语法
- 本条为读发行源码结论(source-verified),未逐台实测;桌面端行为另计,以 CLI 为准
- Goose 桌面端另有登录 shell 逻辑(ui/desktop loginShellPath),以 CLI 行为为准
来源
block/goose shell.rs(windows_shell / 参数分派,源码核实)agents.md#goose- agents.md(探测机制完整文档)↗