{"name":"CLAUDE_CONFIG_DIR","slug":"claude-config-dir","family":"env","title":"Environment variables","noun":"environment variable","description":"Resumed sessions no longer inherit a stale config directory or abort on a failed file copy.","description_source":"entry","described_by":{"version":"2.1.222","anchor":"resume-no-longer-inherits-a-stale-config-directory-or-a-half"},"presence":{"first_seen":"2.1.138","removed_in":null,"in_current_build":true,"newest_mined":"2.1.308","builds":149,"mined_builds":149,"first_cited":{"version":"2.1.33","released_at":"2026-02-06 00:16:13","spans":4}},"aliases":[],"entries":[{"version":"2.1.301","anchor":"debug-log-routing-and-v5-storage-warnings","heading":"Debug log can leave out backend lines; clearer v5 storage warning","line":"The debug log can now skip lines that come from the backend, and the v5 storage warning has a second message for when the config home was absent","released_at":"2026-10-15 14:34:23","reason":"found in this entry's text"},{"version":"2.1.295","anchor":"home-settings-seed-gate-now-admits-runner-children-and-keeps","heading":"Home settings can now be seeded in self-hosted runner sessions","line":"Seeding of home settings now also runs for runner child sessions that declare an absolute `CLAUDE_CONFIG_DIR`, not only managed cloud workers","released_at":"2026-10-08 18:22:58","reason":"found in this entry's text, named in this entry"},{"version":"2.1.282","anchor":"file-sync-clearer-error-when-claude-cannot-hold-its-priv","heading":"Clearer file sync error when the Claude Code config folder is not writable","line":"When file sync cannot set up its private folder because of your config home, it now says so and tells you to check it is writable","released_at":"2026-09-24 15:56:22","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"windows-env-var-case-normalisation-now-covers-claude-config","heading":"Windows env-var case normalisation now covers CLAUDE_CONFIG_DIR","line":"On Windows, a CLAUDE_CONFIG_DIR variable written in any upper or lower case is now recognised under its standard name","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"claude-code-subagent-model-force-added-to-a-propagated-env-l","heading":"CLAUDE_CODE_SUBAGENT_MODEL_FORCE added to a propagated env list","line":"CLAUDE_CODE_SUBAGENT_MODEL_FORCE joins a list of passed-on env vars, and RUNNER_ENVIRONMENT is added next to GITHUB_ACTIONS","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"claude-code-legacy-bundle-is-ignored-when-a-project-settings","heading":"CLAUDE_CODE_LEGACY_BUNDLE is ignored when a project settings file sets it","line":"CLAUDE_CODE_LEGACY_BUNDLE is ignored with a warning when it comes from a settings file rather than your launch environment or own settings","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"background-session-spawn-drops-unsafe-claude-config-dir-from","heading":"Background-session spawn drops unsafe CLAUDE_CONFIG_DIR from dispatch env","line":"Background jobs now drop an unsafe CLAUDE_CONFIG_DIR passed in by a dispatch, with a warning","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.274","anchor":"ide-lockfile-discovery-also-checks-the-home-directory-when-c","heading":"IDE lockfile discovery also checks the home directory when cwd is blank","line":"IDE lockfile discovery now also checks the home directory when the working directory is blank","released_at":"2026-09-16 22:36:09","reason":"named in this entry, found in this entry's text"},{"version":"2.1.271","anchor":"self-hosted-runner-gains-host-config-snapshotting-for-sessio","heading":"Self-hosted runner gains host-config snapshotting for sessions","line":"The self-hosted runner can now snapshot an operator's Claude config and seed it into every session, with a drain-marker mechanism","released_at":"2026-09-14 19:45:19","reason":"found in this entry's text"},{"version":"2.1.268","anchor":"new-internal-sdk-field-user-output-styles-dir","heading":"New internal SDK field: user_output_styles_dir","line":"SDK session data now exposes user_output_styles_dir, the resolved path to the user-level output-styles folder","released_at":"2026-09-10 18:41:11","reason":"found in this entry's text, named in this entry"}],"entries_total":19,"docs":[{"source":"claude-code","path":"agent-sdk\/claude-code-features","title":"Use Claude Code features in the SDK","documented":false},{"source":"claude-code","path":"agent-sdk\/hosting","title":"Hosting the Agent SDK","documented":false},{"source":"claude-code","path":"agent-sdk\/session-storage","title":"Persist sessions to external storage","documented":false},{"source":"claude-code","path":"agent-sdk\/sessions","title":"Work with sessions","documented":false},{"source":"claude-code","path":"agent-view","title":"Manage multiple agents with agent view","documented":false},{"source":"claude-code","path":"amazon-bedrock","title":"Claude Code on Amazon Bedrock","documented":false},{"source":"claude-code","path":"authentication","title":"Authentication","documented":false},{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"claude-apps-gateway-deploy","title":"Claude apps gateway deployment and operations","documented":false},{"source":"claude-code","path":"claude-directory","title":"Explore the .claude directory","documented":false}],"docs_total":12,"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-config-dir","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}