CLAUDE_CODE_SESSION_ORIGIN
A Claude Code environment variable, read out of the shipped bundle. It has been in the build since v2.1.259, including the newest one read.
A new CLAUDE_CODE_SESSION_ORIGIN environment variable is read and passed through to spawned subsessions.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.259.
In the changelogs
6Releases whose published page names CLAUDE_CODE_SESSION_ORIGIN.
-
v2.1.317
Two more environment variable names join Claude Code's session lists
Claude Code now lists
CLAUDE_CODE_FIZZY_GROVEandCLAUDE_CODE_DEEP_TWILIGHTalongside its other session environment variablesfound in this entry's text, named in this entry
-
v2.1.315
New environment variable passed on to programs Claude Code starts
Claude Code now passes a new variable,
CLAUDE_CODE_SESSION_BEGAN_AS_COPY, on to the programs it startsfound in this entry's text, named in this entry
-
v2.1.285
A check for sessions started from claude.ai chat was revised
Claude Code checks for sessions whose
CLAUDE_CODE_SESSION_ORIGINisclaude_ai_chattogether with a second conditionfound in this entry's text, named in this entry
-
v2.1.281
Artifacts tool: prompt text variants behind tengu_cobalt_plinth_sloe
The Artifacts tool's instructions to the model now come in three text variants, v0, v1 and v2, chosen once per session
found in this entry's text
-
v2.1.259
New CLAUDE_CODE_SESSION_ORIGIN env var passthrough
A new CLAUDE_CODE_SESSION_ORIGIN environment variable is read and passed through to spawned subsessions.
found in this entry's text, named in this entry
-
v2.1.259
New env vars added to allowlists/passthrough
Several environment variables were added to passthrough allowlists, including GIT_ALLOW_PROTOCOL and CLAUDE_CODE_SKILL_PROPOSALS.
found in this entry's text, named in this entry
First cited
1The earliest release whose published evidence quoted CLAUDE_CODE_SESSION_ORIGIN was v2.1.259, 2 Sep 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.
Presence across releases
1Build by build
57One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the environment variable does. All environment variables.