CLAUDE_CONFIG_DIR
A Claude Code environment variable, read out of the shipped bundle. It has been in the build since v2.1.138, including the newest one read.
Resumed sessions no longer inherit a stale config directory or abort on a failed file copy.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.222.
In the changelogs
19Releases whose published page names CLAUDE_CONFIG_DIR.
-
v2.1.301
Debug log can leave out backend lines; clearer v5 storage warning
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
found in this entry's text
-
v2.1.295
Home settings can now be seeded in self-hosted runner sessions
Seeding of home settings now also runs for runner child sessions that declare an absolute
CLAUDE_CONFIG_DIR, not only managed cloud workersfound in this entry's text, named in this entry
-
v2.1.282
Clearer file sync error when the Claude Code config folder is not writable
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
found in this entry's text, named in this entry
-
v2.1.281
Windows env-var case normalisation now covers CLAUDE_CONFIG_DIR
On Windows, a CLAUDE_CONFIG_DIR variable written in any upper or lower case is now recognised under its standard name
found in this entry's text, named in this entry
-
v2.1.281
CLAUDE_CODE_SUBAGENT_MODEL_FORCE added to a propagated env list
CLAUDE_CODE_SUBAGENT_MODEL_FORCE joins a list of passed-on env vars, and RUNNER_ENVIRONMENT is added next to GITHUB_ACTIONS
found in this entry's text
-
v2.1.281
CLAUDE_CODE_LEGACY_BUNDLE is ignored when a project settings file sets it
CLAUDE_CODE_LEGACY_BUNDLE is ignored with a warning when it comes from a settings file rather than your launch environment or own settings
found in this entry's text
-
v2.1.281
Background-session spawn drops unsafe CLAUDE_CONFIG_DIR from dispatch env
Background jobs now drop an unsafe CLAUDE_CONFIG_DIR passed in by a dispatch, with a warning
found in this entry's text, named in this entry
-
v2.1.274
IDE lockfile discovery also checks the home directory when cwd is blank
IDE lockfile discovery now also checks the home directory when the working directory is blank
named in this entry, found in this entry's text
-
v2.1.271
Self-hosted runner gains host-config snapshotting for sessions
The self-hosted runner can now snapshot an operator's Claude config and seed it into every session, with a drain-marker mechanism
found in this entry's text
-
v2.1.268
New internal SDK field: user_output_styles_dir
SDK session data now exposes user_output_styles_dir, the resolved path to the user-level output-styles folder
found in this entry's text, named in this entry
-
v2.1.248
Project settings can no longer redirect your config directory
A project's settings can no longer redirect CLAUDE_CONFIG_DIR to somewhere else.
named in this entry, found in this entry's text
-
v2.1.247
Working-tree upload refuses linked worktrees and scratch-space checkouts
Working-tree upload now refuses linked worktrees and checkouts sitting in temporary scratch directories.
found in this entry's text
-
v2.1.246
Startup drops a storage backend built for a different CLAUDE_CONFIG_DIR
Startup warns and skips a storage backend built against a different CLAUDE_CONFIG_DIR.
named in this entry, found in this entry's text
-
v2.1.234
CLAUDE_CODE_PROJECT_DIR_NAMEoverrides the per-project state folderYou can name the per-project history folder yourself, as long as you also set a custom config directory.
named in this entry, found in this entry's text
-
v2.1.222
Resume no longer inherits a stale config directory or a half-copied file
Resumed sessions no longer inherit a stale config directory or abort on a failed file copy.
named in this entry, found in this entry's text
-
v2.1.33
CLAUDE_CONFIG_DIR Support in Team Spawning
found in this entry's text
-
v1.0.32
Improvements
found in this entry's text
-
v1.0.28
Improvements
found in this entry's text
-
v1.0.5
🆕 Flexible Configuration Directory
found in this entry's text
First cited
4The earliest release whose published evidence quoted CLAUDE_CONFIG_DIR was v2.1.33, 6 Feb 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
149One 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.