You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Drop leftover Supervisor references from README and README-CN
- Trim Configuration Merge Strategy section to a concise paragraph
- Note these doc changes under [Unreleased] in CHANGELOG
- ✅ Environment variables you manually set in settings.json - ccc never edits them
118
-
119
-
#### What Gets Managed
120
-
121
-
- 🧹 Supervisor Stop hook - automatically cleaned up if present from previous versions
106
+
When you run `ccc`, your existing `settings.json` is read and deep-merged with ccc.json. Priority: **user `settings.json` > provider > base `settings`**. Your manual edits, plugins, and hooks are preserved; provider env is passed via command line and never written into `settings.json`.
122
107
123
108
#### Environment Variable Conflicts (Hard Guard)
124
109
125
-
Claude Code's `settings.json``env` field **overrides** environment variables passed by ccc when launching claude (empirically verified). If `settings.json`contains keys that would shadow the provider env, switching providers silently fails (wrong base_url / token / model).
110
+
Claude Code's `settings.json``env` field **overrides** environment variables passed by ccc when launching claude. If `settings.json`shadows provider env, switching silently fails (wrong base_url / token / model).
126
111
127
-
**ccc refuses to start claude — and refuses to run `ccc validate` — when it detects such conflicts.**Instead of silently editing your file, ccc prints the offending keys (without their values, to avoid leaking secrets) and tells you how to fix it. ccc never modifies the `env` field of your `settings.json`.
112
+
**ccc refuses to start claude — and refuses to run `ccc validate` — when it detects such conflicts.**It prints the offending keys (without values, to avoid leaking secrets) and never modifies your `settings.json``env` field.
128
113
129
114
A key is considered conflicting if it:
130
115
- starts with `ANTHROPIC_` or `CLAUDE_`, **or**
131
116
- collides with any key defined in ccc.json's base / provider `env`.
132
117
133
118
**How to fix:** remove those keys from `~/.claude/settings.json`'s `env` and move provider-related configuration into `providers.<name>.env` in `~/.claude/ccc.json`.
134
119
135
-
#### How It Works
136
-
137
-
When you run `ccc`:
138
-
1. Your existing `settings.json` is read (if it exists)
139
-
2. Configuration is merged with priority: `user > provider > base`
140
-
3. Environment variables from provider are passed via command line (not written to settings.json)
141
-
4. Leftover Supervisor hooks are cleaned up
142
-
143
-
This ensures your manual configuration is never lost!
0 commit comments