Feature request: decouple CLAUDE.md and MEMORY.md controls — autoMemoryEnabled should not toggle both simultaneously

Resolved 💬 4 comments Opened Apr 23, 2026 by OnCeUponTry Closed May 27, 2026

Summary

autoMemoryEnabled is a single toggle that controls both CLAUDE.md loading and MEMORY.md loading simultaneously. These two features are distinct and should be independently controllable.

Current behavior

A single setting controls everything:

{
  "autoMemoryEnabled": true
}

When true, Claude Code:

  1. Loads and injects CLAUDE.md (project/user instructions)
  2. Loads and injects MEMORY.md and all memory files
  3. Injects a system prompt explaining how to use the memory system

There is no way to enable one without the other.

The problem this causes

  • If a user wants persistent memory (MEMORY.md) but does not want CLAUDE.md auto-loaded (e.g. managing it manually or via a sync tool), there is no way to do that.
  • Conversely, if a user wants CLAUDE.md loaded but does not want the memory system active, also impossible.
  • The injected system prompt explaining memory usage (point 3 above) is a direct consequence of this coupling — it is injected whenever the memory system is on, with no way to suppress it independently. This adds tokens even for users who understand the memory system and do not need the instructions.

Requested behavior

Split autoMemoryEnabled into separate controls:

{
  "claudeMdEnabled": true,
  "autoMemoryEnabled": true
}

Or at minimum add a way to suppress the instructional system prompt while keeping memory active:

{
  "autoMemoryEnabled": true,
  "autoMemoryInstructions": false
}

Why this matters

Power users who manage their own instruction files (e.g. via sync tools that write to CLAUDE.md) need to decouple these two features. The current coupling forces an all-or-nothing choice that reduces flexibility.

View original on GitHub ↗

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