diff --git a/src/agents/shell-utils.ts b/src/agents/shell-utils.ts index b4a703861b..bad3e7d803 100644 --- a/src/agents/shell-utils.ts +++ b/src/agents/shell-utils.ts @@ -1,6 +1,7 @@ import fs from "node:fs"; import path from "node:path"; import { spawn } from "node:child_process"; +import path from "node:path"; function resolvePowerShellPath(): string { const systemRoot = process.env.SystemRoot || process.env.WINDIR; @@ -30,7 +31,13 @@ export function getShellConfig(): { shell: string; args: string[] } { }; } - const shell = process.env.SHELL?.trim() || "sh"; + const envShell = process.env.SHELL?.trim(); + const shellName = envShell ? path.basename(envShell) : ""; + // Fish rejects common bashisms used by tools, so prefer bash when detected. + if (shellName === "fish") { + return { shell: "/bin/bash", args: ["-c"] }; + } + const shell = envShell || "sh"; return { shell, args: ["-c"] }; }