[FEATURE] Memory system should be opt-in (like plan mode), not automatic
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
The file-based memory system in Claude Code writes to and reads from ~/.claude/projects/.../memory/ automatically, without the user's knowledge or explicit consent. This means:
- Uninvited writes: Information gets saved to disk during a conversation even when the user never asked for it to be remembered.
- No control: There is no way for users to opt out of memory being written without digging into settings or deleting files manually.
- Unexpected behavior: Users may be surprised to find that Claude has been silently persisting information about them, their preferences, and their work across sessions.
This is analogous to the subagent spawning issue — behavior that has real side effects happening without user awareness or control.
Proposed Solution
Add a memory mode toggle, similar to plan mode, that controls whether the memory system is active:
- Off (default): No memory is read from or written to disk automatically. Claude operates statelessly per session.
- On (opt-in): Current behavior — memory is read at session start and written during the session when relevant information is encountered.
Users can enable it explicitly when they want persistent memory across sessions.
Alternative Solutions
- Prompt the user for confirmation before writing any memory entry
- Provide a clear
/memorycommand to view, edit, and delete memory entries, giving users full visibility and control
Priority
Medium-High — this touches user privacy and trust
Feature Category
Core CLI behavior / memory system
Use Case Example
A user asks to create a file locally and document something. Without memory mode being opt-in, notes about that action get silently written to the memory index. The user only discovers this when they notice unexpected files in ~/.claude/. With an opt-in memory mode, nothing is persisted unless the user has explicitly enabled it.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗