---
summary: 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.
tags:
  - type/reference
  - tool/claude-code
scope: global
type: reference
source: cc-os docs/plans/c3-spike-findings.md (spike a, 2026-07-08)
date: 2026-07-08
last_updated: 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 5–9 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]]
