{"name":"CLAUDE_CODE_RESUME_SESSIONSTART_HOOKS_WAIT_MS","slug":"claude-code-resume-sessionstart-hooks-wait-ms","family":"env","title":"Environment variables","noun":"environment variable","description":"Claude Code now reads three new environment variables: agent progress summaries, a sleep-compaction delay and a resume hook wait","description_source":"entry","described_by":{"version":"2.1.296","anchor":"three-new-claude-code-env-vars-registered-and-read-agent"},"presence":{"first_seen":"2.1.296","removed_in":null,"in_current_build":true,"newest_mined":"2.1.296","builds":1,"mined_builds":139,"first_cited":{"version":"2.1.296","released_at":"2026-10-09 16:58:10","spans":1}},"aliases":[],"entries":[{"version":"2.1.296","anchor":"three-new-claude-code-env-vars-registered-and-read-agent","heading":"Three new environment variables for progress summaries, compaction timing and resume hooks","line":"Claude Code now reads three new environment variables: agent progress summaries, a sleep-compaction delay and a resume hook wait","released_at":"2026-10-09 16:58:10","reason":"found in this entry's text"},{"version":"2.1.296","anchor":"three-new-claude-code-env-vars-are-stripped-from-the-spawn","heading":"Three new environment variables for timing and agent progress summaries","line":"Claude Code reads three new environment variables, none active unless set, and keeps them out of the programs it launches","released_at":"2026-10-09 16:58:10","reason":"found in this entry's text"}],"entries_total":2,"docs":[],"docs_total":0,"gates":[],"related":[{"name":"CLAUDE_CODE_RESUME_FROM_SESSION","slug":"claude-code-resume-from-session","description":"Child worker processes no longer inherit your session id, resume prompt or auth handles."},{"name":"CLAUDE_CODE_RESUME_INTERRUPTED_TURN","slug":"claude-code-resume-interrupted-turn","description":"Resuming a turn interrupted by shutdown now correctly sees the tool call as still pending instead of faked-answered."},{"name":"CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS","slug":"claude-code-resume-interrupted-turn-max-age-ms","description":"The staleness cutoff for auto-resuming an interrupted turn is now configurable, defaulting to 6 hours"},{"name":"CLAUDE_CODE_RESUME_PROMPT","slug":"claude-code-resume-prompt","description":"Child worker processes no longer inherit your session id, resume prompt or auth handles."},{"name":"CLAUDE_CODE_RESUME_REASON","slug":"claude-code-resume-reason","description":"New CLAUDE_CODE_RESUME_REASON env var labels why an interrupted turn was resumed"},{"name":"CLAUDE_CODE_RESUME_SOURCE_ALIVE","slug":"claude-code-resume-source-alive","description":"Set by Claude Code in the environment of a background session it launches, as `<sessionId>|<boundary>[|<parentSessionId>]` or a bare boundary value (`1` when there is none), apparently to mark that the session it was forked from is still alive. On resume the child parses it and, when it is a bare value or names the resumed session or its parent, changes how the transcript is loaded; when the boundary is an ISO timestamp and a session ID is present, the job record gains `forkSourceAlive`, `forkBoundaryAt` and `forkSessionId`."},{"name":"CLAUDE_CODE_RESUME_THRESHOLD_MINUTES","slug":"claude-code-resume-threshold-minutes","description":"Minimum age in minutes of the last user or assistant message older than one minute before Claude Code offers the resume-return prompt with the choices `compact`, `continue`, `dismiss` and `never`. Default `70` when unset or not a number; `0` is taken literally and removes the age requirement. The prompt also needs `tengu_gleaming_fair` or `tengu_gleaming_fair_reuse` on, the user not having picked `never`, and the conversation at or above `CLAUDE_CODE_RESUME_TOKEN_THRESHOLD`."},{"name":"CLAUDE_CODE_RESUME_TOKEN_THRESHOLD","slug":"claude-code-resume-token-threshold","description":"Minimum estimated token count of the conversation before Claude Code offers the resume-return prompt with the choices `compact`, `continue`, `dismiss` and `never`. Default `100000` when unset or not a number; `0` is taken literally and removes the token requirement. The prompt also needs `tengu_gleaming_fair` or `tengu_gleaming_fair_reuse` on and the last message older than `CLAUDE_CODE_RESUME_THRESHOLD_MINUTES`."},{"name":"CLAUDE_CODE_RESUME_TOLERATES_CONTEXT_APPENDS","slug":"claude-code-resume-tolerates-context-appends","description":"Resuming can pick up an interrupted tool call, but only with two env vars set."},{"name":"CLAUDE_CODE_RESUME_TOLERATES_CONTEXT_SEEDS","slug":"claude-code-resume-tolerates-context-seeds","description":"Setting CLAUDE_CODE_RESUME_TOLERATES_CONTEXT_SEEDS stops resume treating some final messages as an interrupted turn"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-code-resume-sessionstart-hooks-wait-ms","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}