Skip to content

RFC: Config Hot-Reload for CLAUDE.md and Settings #15858

Description

@evansenter

Problem

When iterating on Claude Code configuration (CLAUDE.md, settings.json), changes aren't picked up by running sessions. Users must restart each session to apply updates.

This is particularly painful for:

  • Dotfiles maintainers who manage Claude Code configuration across machines
  • Teams sharing project-level CLAUDE.md that evolves during development
  • Power users iterating on workflows and permissions

Proposed Solutions

Option A: File-watch with automatic reload

  • Watch CLAUDE.md and settings.json for changes
  • Automatically reload and notify user: "Configuration updated from ~/.claude/CLAUDE.md"
  • Pros: Seamless, zero friction
  • Cons: May surprise users mid-conversation if context shifts

Option B: Built-in /reload command

  • Add /reload slash command to re-read all config files
  • User explicitly triggers reload when ready
  • Pros: User controls timing, predictable behavior
  • Cons: Requires manual action

Option C: Hybrid approach

  • Watch for changes, notify user: "CLAUDE.md changed. Run /reload to apply."
  • User decides when to reload
  • Pros: Awareness + control
  • Cons: Slightly more complex

Recommendation

Option B or C. Explicit user control is safer for maintaining conversation coherence.

Additional Considerations

  • Should /reload reload commands too, or just CLAUDE.md/settings?
  • Should there be granular options: /reload memory, /reload settings, /reload commands?
  • How does this interact with the memory hierarchy (enterprise → project → user)?
  • Could MCP server configs also be hot-reloaded?

Use Case

I maintain my Claude Code configuration in a dotfiles repo. When I update ~/.claude/CLAUDE.md or add new commands to ~/.claude/commands/, I currently need to restart all running Claude Code sessions to pick up changes. With multiple sessions open across different projects, this is disruptive to workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions