CLAUDE_PID
Updated by Alex Sorokoletov
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.
| Status | Present in v2.1.294 |
|---|---|
| Added | Added between v2.1.212 and v2.1.215 |
| Category | Other |
| Official docs | Listed |
How to set it
For one session, export it in the shell that starts Claude Code:
export CLAUDE_PID=<value>
claudeTo 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
- Claude Code Version Tracker: Undocumented Env Vars, Feature Gates & Models
- claude-code-env-vars-v2-1-215
Related variables
ANTHROPIC_BETAS: Comma-separated beta feature headers.ANTHROPIC_CUSTOM_HEADERS: Custom HTTP headers (newline-separated Key: Value).ANTHROPIC_FEDERATION_RULE_IDANTHROPIC_ORGANIZATION_IDANTHROPIC_WORKSPACE_IDBETA_TRACING_ENDPOINT: Custom endpoint for beta tracing.CLAUDE_AFK_COUNTDOWN_MSCLAUDE_AI_ORIGIN: Overrides the base URL for Claude AI authentication endpoints.
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.