CLAUDE_PID

Updated by

CLAUDE_PID is a Claude Code environment variable: Holds the CLI's own process ID and powers a self-protection shim: the injected shell wrapper around pkill/pgrep refuses to signal any match equal to ${CLAUDE_PID}, so an agent-run pkill -f can't terminate Claude Code itself. Added between v2.1.212 and v2.1.215 and still present in v2.1.294. It is listed in the official reference.

StatusPresent in v2.1.294
AddedAdded between v2.1.212 and v2.1.215
CategoryOther
Official docsListed

How to set it

For one session, export it in the shell that starts Claude Code:

export CLAUDE_PID=<value>
claude

To apply it to every session, add it to the env object of a settings file:

// ~/.claude/settings.json
{
  "env": {
    "CLAUDE_PID": "<value>"
  }
}

Release notes that mention it

Related variables

Frequently asked questions

What does CLAUDE_PID do?

Holds the CLI's own process ID and powers a self-protection shim: the injected shell wrapper around pkill/pgrep refuses to signal any match equal to ${CLAUDE_PID}, so an agent-run pkill -f can't terminate Claude Code itself.

Which Claude Code version has CLAUDE_PID?

Added between v2.1.212 and v2.1.215 and still present in v2.1.294.

How do I set CLAUDE_PID?

Export it before starting Claude Code (export CLAUDE_PID=value), or add it to the "env" object in ~/.claude/settings.json to apply it to every session.

All variables, searchable: Claude Code environment variables.