Support for user-global memory (loaded across all projects)
Problem
The system prompt instructs Claude that its persistent memory lives at a project-scoped path derived from cwd:
You have a persistent, file-based memory system at /Users/<user>/.claude/projects/<sanitized-cwd>/memory/
There is no documented mechanism to declare user-global rules that should apply across all projects.
In practice, behavioral rules and preferences (coding style, security policies, "do not do X" patterns, naming conventions for shared infrastructure like 1Password vaults / cloud accounts) end up being either:
- Duplicated manually into every project's memory folder (laborious, drift-prone, error-prone).
- Stored in \
~/.claude/memory/\(which exists and looks intentional given the \MEMORY.md\index file there) but never loaded into the model's context unless the user explicitly tells Claude to read it mid-session.
Observed behavior
- A \
~/.claude/memory/\folder containing ~25 \feedback_*.md\files + a \MEMORY.md\index is silently ignored at session start. - Claude discovers it only via filesystem inspection when prompted (e.g. \
ls ~/.claude/memory/\). - The user has to repeat the same rules in every new project, or accept that Claude will violate them until the context window is "primed" mid-session.
Expected behavior
One of:
- Auto-load \
~/.claude/memory/\in addition to project-scoped memory at session start, with the same conventions (MEMORY.md as index). - Support \
@import\directives in memory files so a project memory can reference user-global rules (\@import ~/.claude/memory/feedback_no_unrequested_additions.md\). - Document an officially supported settings.json hook (e.g. \
sessionStart\hook) that injects user-global rules into the system prompt, with an example in the docs.
Workarounds currently used
- \
cp ~/.claude/memory/feedback_*.md ~/.claude/projects/<project>/memory/\at each new project bootstrap. - Telling Claude "read ~/.claude/memory/MEMORY.md first" at the start of important sessions.
Neither scales for a heavy user with many concurrent projects.
Environment
- Claude Code CLI (latest)
- macOS 25.5.0
- Models: Opus 4.7 / Sonnet 4.6
Related
This isn't strictly a bug — Claude technically follows what its system prompt says. It's a missing feature for users who want consistent behavior across projects without per-project duplication.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗