{"version":"2.1.318","anchor":"new-env-var-claude-code-program-use-case-stamped-value-fol","canonical_anchor":"new-env-var-claude-code-program-use-case-stamped-value-fol","heading":"New CLAUDE_CODE_PROGRAM_USE_CASE_STAMPED variable for programs that launch Claude Code","tier":"use","area":"Configuration","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.318\/e\/new-env-var-claude-code-program-use-case-stamped-value-fol","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.318","markdown":"### New `CLAUDE_CODE_PROGRAM_USE_CASE_STAMPED` variable for programs that launch Claude Code\n\nClaude Code now reads `CLAUDE_CODE_PROGRAM_USE_CASE_STAMPED`, which a launching program can set; the value `follow` picks a separate way of working out the use case\n\n**Unclear.** It is not stated what the program use case controls, so the effect of setting the variable is unknown.\n\n**What**\n\nClaude Code now reads an environment variable called `CLAUDE_CODE_PROGRAM_USE_CASE_STAMPED`. Claude Code never sets it itself. It is meant to be set by whatever program starts Claude Code, and it is passed through to processes Claude Code starts.\n\n- `follow`: Claude Code works out the program's use case in a different way\n\n- any other non-empty value: the use case counts as already stamped\n\n**Why**\n\nThis appears to be the plumbing that lets a program running Claude Code pass a use-case label down to the processes it starts. It only matters if the program that starts Claude Code sets the variable. Ordinary use is unaffected.\n\n- Area: Configuration\n- Names: `CLAUDE_CODE_PROGRAM_USE_CASE_STAMPED`\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}