diff --git a/src/claude/sdk/query.ts b/src/claude/sdk/query.ts index 5ec76736..a22825b6 100644 --- a/src/claude/sdk/query.ts +++ b/src/claude/sdk/query.ts @@ -340,7 +340,10 @@ export function query(config: { // Spawn Claude Code process // Use clean env for global claude to avoid local node_modules/.bin taking precedence - const spawnEnv = isCommandOnly ? getCleanEnv() : process.env + // Always strip CLAUDECODE env var to prevent nested-session detection (Claude Code 2.1+) + const baseEnv = isCommandOnly ? getCleanEnv() : { ...process.env } + delete baseEnv.CLAUDECODE + const spawnEnv = baseEnv logDebug(`Spawning Claude Code process: ${spawnCommand} ${spawnArgs.join(' ')} (using ${isCommandOnly ? 'clean' : 'normal'} env)`) const child = spawn(spawnCommand, spawnArgs, {