{"version":"2.1.309","anchor":"credential-placeholder-stripping-when-anthropic-unix-socket","canonical_anchor":"credential-placeholder-stripping-when-anthropic-unix-socket","heading":"Credentials handled differently for child processes when ANTHROPIC_UNIX_SOCKET is set","tier":"notice","area":"Auth","scope":"both","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309\/e\/credential-placeholder-stripping-when-anthropic-unix-socket","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309","markdown":"### Credentials handled differently for child processes when ANTHROPIC_UNIX_SOCKET is set\n\nWith ANTHROPIC_UNIX_SOCKET set, placeholder credentials are recognized and auth tokens are no longer passed to child processes\n\n**Unclear.** The placeholder value and what Claude Code does when it finds one are not known.\n\n**What**\n\n`ANTHROPIC_UNIX_SOCKET` is an environment variable (a named value set before starting a program) that sends Claude Code's API traffic through a local socket, for example in a sandboxed or proxied setup. When it is set, Claude Code changes how it handles credentials for the programs it starts (child processes):\n\n- A new check treats `CLAUDE_CODE_OAUTH_TOKEN` or `ANTHROPIC_API_KEY` as a placeholder value, not a real secret.\n\n- The code that gives `ANTHROPIC_AUTH_TOKEN` or `ANTHROPIC_API_KEY` to a child process now gives it nothing in this case.\n\n- The list of values removed from a child process's environment now uses this new check instead of the old inline comparison against a placeholder, and draws on one more source list (including `CLAUDE_CODE_SUBSCRIPTION_TYPE`).\n\n**Why**\n\nIf you run Claude Code behind a socket that substitutes credentials, programs it starts no longer receive those auth tokens from it. Anything that depended on finding `ANTHROPIC_AUTH_TOKEN` or `ANTHROPIC_API_KEY` there may need another way to get them.\n\n- Area: Auth\n- Names: `ANTHROPIC_UNIX_SOCKET`, `CLAUDE_CODE_OAUTH_TOKEN`, `ANTHROPIC_API_KEY`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5\n- Scope: both\n- Heads-up: no"}