Support custom-named settings files (e.g. settings.fai.json)

Resolved 💬 4 comments Opened Feb 26, 2026 by mcgear Closed Mar 28, 2026

Feature Request

Problem: Tools that manage Claude Code configuration (like session managers, workbench orchestrators, etc.) currently must write to the fixed settings.local.json file. This creates conflicts when multiple tools or workflows need to manage different aspects of settings independently.

Proposed Solution: Support custom-named settings files that follow a pattern like settings.<name>.json (e.g. settings.fai.json, settings.team.json). Claude Code would merge all matching settings.*.json files in the .claude/ directory alongside the existing settings.json and settings.local.json.

Use Case: We build a CLI tool (fai) that manages session hooks, environment variables, and workbench configuration for Claude Code. Currently we write everything to settings.local.json, which means:

  • Our managed config is interleaved with any user-local settings
  • If the user manually edits settings.local.json, they might accidentally break our hook configuration
  • There's no clean separation between "tool-managed" and "user-managed" local settings
  • Multiple tools competing for settings.local.json have no namespace isolation

With settings.<name>.json support, our tool could own settings.fai.json entirely while leaving settings.local.json for user-managed overrides.

Suggested Merge Order:

  1. settings.json (checked in, team defaults)
  2. settings.*.json (tool-managed, alphabetical)
  3. settings.local.json (user overrides, highest priority)

This keeps settings.local.json as the final override (matching current behavior) while giving tools a clean namespace.

Alternatives Considered:

  • Subdirectories (e.g. .claude/settings.d/) — more complex, less discoverable
  • Environment-variable-based config — doesn't persist across sessions
  • Writing directly to settings.json — conflicts with version control

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗