The daemon is a background process that starts and manages background jobs. When it starts a job, the request (the dispatch) can pass environment settings along. If CLAUDE_CONFIG_DIR is not set in the daemon's own environment, a CLAUDE_CONFIG_DIR supplied by the dispatch is now dropped with a warning unless all of these are true:
- It is an absolute path
- It contains no
.. - It is this daemon's own config home
Adopting and reattaching to background sessions now also clean the dispatch's environment through the same kind of check, and reattachEnv is discarded.
A background job cannot be pointed at an unexpected configuration folder through the dispatch. If a job ignores a config directory you passed, the warning "dropped dispatch CLAUDE_CONFIG_DIR" is the place to look.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
* Point `CLAUDE_CONFIG_DIR` at a per-tenant directory so tenants do not share the `~/.claude.json` global config. When each config directory serves one working directory and you don't pass a [`SessionStore`](/docs/en/agent-sdk/session-stor…agent-sdk/hosting see the edit
Between settings files, `env` values follow [settings precedence](/docs/en/settings#settings-precedence), so a managed settings entry overrides the same variable in user or project settings. Project and local settings can't set some variab…env-vars see the edit
Anthropic's documentation has since written up CLAUDE_CONFIG_DIR, on Environment variables.