Claude Code can now run some shell commands in a different way. Instead of placing the command text on the command line of the shell that runs it, Claude Code puts the text in an environment variable (a named value handed to a program) called __CLAUDE_CC_COMMAND_TEXT, and the shell reads and runs it from there.
This applies only when all of these are true:
- The command contains
pkill,pgreporpidwait - The shell is bash
- The computer runs Linux
CLAUDE_CODE_SHELL_PREFIXis not set- The command is no larger than 122,880 bytes
The new behaviour sits behind a server-controlled switch that is off unless it is switched on remotely. If a hook's environment file (a file of settings that a hook, meaning a user-defined script, loads before commands run) removes the variable, the command does not run and Claude Code shows an error saying that something the shell runs first got in the way, and asking you to run the command again.
Commands like pkill -f match processes by their full command line. When the command text is no longer on the shell's command line, such a pattern cannot accidentally match and kill the very shell that is running it.
tengu_golden_wirth Off in both readingsThe flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.
This account: off · anonymous baseline: off · compiled default in v2.1.315: off
These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.
Read once, for one account on one subscription tier, against v2.1.315. It isn't a statement about your account. What a flag value here can and cannot tell you
New in this build: tengu_golden_wirth