SecondBrain/reference/claude-code-setting-sources...

2.1 KiB
Raw Permalink Blame History

summary tags scope type source date last_updated
Claude Code's --setting-sources flag silently disables ALL plugins and hooks if "user" is omitted, because plugin enablement and hook wiring live only in ~/.claude/settings.json.
type/reference
tool/claude-code
global reference cc-os docs/plans/c3-spike-findings.md (spike a, 2026-07-08) 2026-07-08 2026-07-08

Claude Code --setting-sources silently drops all plugins without "user"

Verified 2026-07-08 via transcript-level inspection of headless runs (model self-report is unreliable for this — check the session JSONL for hook_additional_context / skill_listing entries instead).

  • --setting-sources picks which settings files load: user (~/.claude/settings.json), project (.claude/settings.json), local.
  • Plugin enablement (enabledPlugins) and all hook wiring live in the user file. Any invocation whose source list omits user (e.g. --setting-sources "" or project,local) starts a session with ZERO plugins and ZERO hooks — no error, no warning. Memory capture, vault sync, ADR reminders, orchestration injection: all silently absent for that session.
  • Symlinked local plugins and absolute-path hooks are NOT the issue — the only failure axis is whether user is in the list.

--settings <overlay.json> deep-merges enabledPlugins (verified 2026-07-08)

An overlay file passed via --settings merges enabledPlugins key-by-key into the user settings — only plugins explicitly set false are disabled; unlisted plugins and all hooks are untouched. Diff-only profile overlays (e.g. ~/.claude/profiles/*.json) are therefore safe. Measured caveat: disabling plugins saves almost no context (32 to 632 tokens for 59 plugins, post-ToolSearch) — the win is focus, not tokens.

Rule

Any wrapper, profile, or script that passes --setting-sources MUST include user. To slim a session, subtract via a --settings <overlay.json> file (e.g. an enabledPlugins diff in ~/.claude/profiles/) — never by dropping the user source.

Related: cc-os-hub, memsearch-sessionstart-injection-hardcoded