{"name":"CLAUDE_JOB_DIR","slug":"claude-job-dir","family":"env","title":"Environment variables","noun":"environment variable","description":"About 220 environment variables now parse and validate in one place, including bounds checks.","description_source":"entry","described_by":{"version":"2.1.228","anchor":"about-220-more-environment-variables-move-to-the-typed-regis"},"presence":{"first_seen":"2.1.138","removed_in":null,"in_current_build":true,"newest_mined":"2.1.309","builds":150,"mined_builds":150,"first_cited":null},"aliases":[],"entries":[{"version":"2.1.295","anchor":"prompt-draft-persisted-to-claude-job-dir","heading":"Unsent prompt text is saved to a file when CLAUDE_JOB_DIR is set","line":"When CLAUDE_JOB_DIR is set, Claude Code keeps what you have typed but not sent in a .prompt-draft file in that folder","released_at":"2026-10-08 18:22:58","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"new-env-var-claude-code-commit-between-keys-for-the-terminal","heading":"New env var CLAUDE_CODE_COMMIT_BETWEEN_KEYS for the terminal renderer","line":"A new environment variable, CLAUDE_CODE_COMMIT_BETWEEN_KEYS, is read by the terminal display code and counts as off when unset","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.228","anchor":"about-220-more-environment-variables-move-to-the-typed-regis","heading":"About 220 more environment variables move to the typed registry","line":"About 220 environment variables now parse and validate in one place, including bounds checks.","released_at":"2026-08-11 17:45:45","reason":"named in this entry, found in this entry's text"},{"version":"2.1.191","anchor":"prompt-draft-auto-save-in-development","heading":"Prompt Draft Auto-Save [In Development]","line":null,"released_at":"2026-06-24 18:54:40","reason":"found in this entry's text"}],"entries_total":4,"docs":[{"source":"claude-code","path":"agent-view","title":"Manage multiple agents with agent view","documented":false}],"docs_total":1,"gates":[],"related":[{"name":"CLAUDE_AFK_COUNTDOWN_MS","slug":"claude-afk-countdown-ms","description":"How many milliseconds before auto-continue the on-screen countdown appears on an unanswered [`AskUserQuestion`](\/docs\/en\/tools-reference) dialog. Default `20000` (20 seconds), capped at the auto-continue timeout. Has no effect unless auto-continue is on; see the [`askUserQuestionTimeout`](\/docs\/en\/settings-reference#askuserquestiontimeout) setting and `CLAUDE_AFK_TIMEOUT_MS`. Requires Claude Code v2.1.198 or later"},{"name":"CLAUDE_AFK_TIMEOUT_MS","slug":"claude-afk-timeout-ms","description":"How many milliseconds of idle time before an unanswered [`AskUserQuestion`](\/docs\/en\/tools-reference) dialog auto-continues without you. Auto-continue is off by default; opt in with the [`askUserQuestionTimeout`](\/docs\/en\/settings-reference#askuserquestiontimeout) setting. This variable is an override for demos and automated tests: when set, it takes precedence over that setting and turns auto-continue on even when the setting is unset or `never`. Setting `0` doesn't turn the timeout off; it closes the dialog immediately. In v2.1.198 and v2.1.199, auto-continue was on by default with a `60000` (60 seconds) timeout. Requires Claude Code v2.1.198 or later"},{"name":"CLAUDE_AFTER_LAST_COMPACT","slug":"claude-after-last-compact","description":"When `1`, `true`, `yes` or `on`, every request that fetches a session's log entries from the session ingress API adds the query parameter `after_last_compact=true`, asking the server for the entries after the last compaction. Unset, the parameter is not sent."},{"name":"CLAUDE_AGENT_SDK_CLIENT_APP","slug":"claude-agent-sdk-client-app","description":"Names the application built on the Agent SDK. When set, it is sent on Anthropic API requests as the `x-client-app` header and appended as `client-app\/<value>` to Claude Code's `User-Agent` strings (`claude-cli\/...` and `claude-code\/...`). If the value is rejected as a header value, the error names this variable as its source."},{"name":"CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS","slug":"claude-agent-sdk-disable-builtin-agents","description":"Set to `1` to disable all built-in [subagent](\/docs\/en\/sub-agents) types such as Explore and Plan. Only applies in non-interactive mode (the `-p` flag). Useful for SDK users who want a blank slate. This also removes `general-purpose`, the subagent Claude Code runs when an Agent tool call omits `subagent_type`. Such a call then fails with [`subagent_type is required`](\/docs\/en\/errors#subagent-type-is-required)"},{"name":"CLAUDE_AGENT_SDK_DISABLE_MCP_MANIFESTS","slug":"claude-agent-sdk-disable-mcp-manifests","description":"The Agent SDK can now read tool lists from in-process MCP servers itself and pass them to the CLI when it starts"},{"name":"CLAUDE_AGENT_SDK_MCP_NO_PREFIX","slug":"claude-agent-sdk-mcp-no-prefix","description":"Set to `1` to skip the `mcp__<server>__` prefix on tool names from SDK-created MCP servers. Tools use their original names. SDK usage only"},{"name":"CLAUDE_AGENT_SDK_VERSION","slug":"claude-agent-sdk-version","description":"Your entrypoint and SDK version are checked against known values before being reported."},{"name":"CLAUDE_AGENTS_SELECT","slug":"claude-agents-select","description":"`claude agents` resolves its directory filter through storage rather than the raw path."},{"name":"CLAUDE_AI_ORIGIN","slug":"claude-ai-origin","description":"The remote trigger tool can create webhook triggers so routines fire on outside events."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-job-dir","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}