
Claude Settings
- Updated January 12, 2026
- bjornallvin/cc-plugins
Claude-Settings is a plugin for managing and merging Claude settings files across user, project, and local scopes with merge capabilities. It keeps configuration consistent and resolvable across layers. Best for teams maintaining shared Claude Code configuration.
Key points
- Merge settings files
- User/project/local scopes
- Conflict-aware merging
Claude Settings by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
/plugin marketplace add bjornallvin/cc-plugins/plugin install claude-settings@cc-pluginsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | January 12, 2026 |
|---|---|
| Repository | bjornallvin/cc-plugins ↗ |
What it does
Manage and merge Claude settings files across user, project, and local scopes.
README.md
claude-settings
A Claude Code plugin for managing and merging settings across user, project, and local configuration files.
Overview
Claude Code has a settings precedence system where higher-level settings completely override lower-level ones (no automatic merging). This plugin helps you understand which settings are active and merge settings from overridden files when needed.
Settings file precedence:
./.claude/settings.local.json(highest - overrides everything)./.claude/settings.json(overrides user settings)~/.claude/settings.json(lowest - user-level defaults)
Features
- Settings Inspection: View all settings files and see which one is currently active
- Merge Capabilities: Merge settings "upwards" from overridden files into the active file
- Conflict Detection: Identify and handle conflicting settings gracefully
- Safe Operations: Creates backups before making changes
Installation
Copy the claude-settings directory to your Claude Code plugins location:
/plugin marketplace add bjornallvin/cc-plugins
/plugin install claude-settings@cc-plugins
Commands
/claude-settings.analyze
Check all Claude settings files and show their contents with clear indication of which file is active.
What it shows:
- All three settings file locations and their contents
- Which settings file is currently active (based on precedence)
- What settings are being overridden and ignored
- Summary of permissions, hooks, and other configuration in each file
Example output:
[USER] ~/.claude/settings.json
- permissions: 4 allow rules, 2 deny rules
- hooks: 1 hook configured
[PROJECT] ./.claude/settings.json
- File not found
[LOCAL] ./.claude/settings.local.json
- File not found
=== ACTIVE SETTINGS ===
⚡ User settings are ACTIVE
File: ~/.claude/settings.json
💡 TIP: Run '/claude-settings.merge' to merge settings from overridden files.
/claude-settings.merge
Merge settings from overridden (lower-precedence) files into the active settings file.
How it works:
- Combines
permissions.allowandpermissions.denyarrays (removes duplicates) - Merges
hooks(active file's values win on conflicts) - Merges other settings (active file's values win on conflicts)
- Creates a timestamped backup before making changes
- Shows preview and requests confirmation before applying
Merge strategy:
| Setting Type | Behavior |
|---|---|
permissions.allow / permissions.deny |
Combine all unique patterns from all files |
hooks |
Add new hooks; keep active file's value on conflicts |
| Other keys | Add new keys; keep active file's value on conflicts |
Example output:
Found overridden files:
- ~/.claude/settings.json (2 permissions, 1 hook)
Active file: ./.claude/settings.local.json
Merge preview:
✓ Adding 2 new deny patterns
✓ Adding hook: sessionStart
⚠️ Conflict: hook 'userPromptSubmit' exists in both (keeping active file's value)
Create backup? Creating: ./.claude/settings.local.json.backup-20251021-113000
Apply merge? [Waiting for confirmation...]
✅ Merged successfully!
- Added 2 permission patterns
- Added 1 hook
- Resolved 1 conflict (kept active file's value)
💡 Run '/claude-settings.analyze' to verify the merged settings.
Use Cases
Scenario 1: Project overrides your user settings
You have secure deny rules in ~/.claude/settings.json, but a project has ./.claude/settings.json that doesn't include those protections.
Solution:
- Run
/claude-settings.analyzeto see what's being overridden - Run
/claude-settings.mergeto copy your user-level protections into the project settings
Scenario 2: Local override without losing project config
You created ./.claude/settings.local.json for temporary local testing, but you want to preserve the project settings from ./.claude/settings.json.
Solution:
- Run
/claude-settings.analyzeto see both files - Run
/claude-settings.mergeto merge project settings into your local file
Scenario 3: Understanding which settings are active
You're not sure which configuration file is controlling Claude's behavior.
Solution:
Run /claude-settings.analyze to see all files and which one is active
How Settings Precedence Works
When multiple settings files exist, Claude Code uses complete override (not merging):
- If
./.claude/settings.local.jsonexists, it's the only file used - Else if
./.claude/settings.jsonexists, it's the only file used - Else
~/.claude/settings.jsonis used
This means:
- ❌ Settings are NOT merged automatically
- ❌ You can lose important user-level settings if project settings exist
- ✅ This plugin helps you merge manually when needed
Best Practices
Before starting work on a new project:
- Run
/claude-settings.analyzeto see if project settings exist - Run
/claude-settings.mergeif you want to preserve your user-level settings
- Run
When creating project settings:
- Start by running
/claude-settings.analyzeto see your user settings - Create project settings, then run
/claude-settings.mergeto include user defaults
- Start by running
When collaborating:
- Share
./.claude/settings.jsonwith your team (commit to git) - Keep
./.claude/settings.local.jsonin.gitignorefor personal overrides - Use
/claude-settings.mergeto sync team settings into your local overrides
- Share
Regular maintenance:
- Periodically run
/claude-settings.analyzeto ensure expected settings are active - Check for overridden settings that you might want to merge
- Periodically run
Safety Features
- Backups: Automatically creates timestamped backups before modifying files
- Preview: Shows exactly what will be merged before applying changes
- Confirmation: Requires user approval before writing changes
- Conflict reporting: Clearly shows when settings conflict and which value wins
- Read-only check: The check command never modifies files
Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues.
License
MIT