Claude Code Memory: Everything You Need to Know
Claude Code is powerful, but it has a memory problem. Each session starts fresh. Your carefully explained project context, architectural decisions, and coding conventions—gone. This guide explains ...
Claude Code Memory: Everything You Need to Know
Claude Code is powerful, but it has a memory problem. Each session starts fresh. Your carefully explained project context, architectural decisions, and coding conventions—gone. This guide explains how Claude Code's memory works, its limitations, and how to build persistent context that survives across sessions.
Claude Code's context window resets between sessions. After weeks of working on a project, Claude still needs you to re-explain the same things. This isn't a bug—it's how LLMs work. But there are solutions.
How Claude Code's Memory Actually Works
Claude Code doesn't have true persistent memory. What it has is a context window—a working memory that holds your current conversation, file contents, and instructions. Understanding this distinction is crucial.
The Context Window
| Aspect | Details |
|--------|---------|
| Standard limit | 200,000 tokens |
| Enterprise limit | 500,000 tokens |
| Planned expansion | 1,000,000 tokens |
| What counts | Every message, file read, tool output |
Everything in your session competes for this space. When you read files, run commands, or have long conversations, you consume tokens. When the window fills up, older context gets compressed or dropped.
What Happens When Context Fills Up
Claude Code now triggers compaction at around 75% utilization—leaving 25% (roughly 50K tokens) free for active reasoning. When compaction happens:
- Earlier conversation history gets summarized
- Less relevant context is compressed
- Active files and recent instructions are preserved
The problem? Compaction is lossy. Important context from earlier in the session can get lost, leading to what developers call "context rot"—degraded output quality as the session lengthens.
---
Claude Code's Built-in Memory System
Claude Code provides a hierarchical memory system through CLAUDE.md files. These are loaded automatically at session start.
Memory File Hierarchy
``
~/.claude/CLAUDE.md # Global preferences (all projects)
~/.claude/CLAUDE.local.md # Personal global settings (gitignored)
./CLAUDE.md # Project-level instructions
./CLAUDE.local.md # Personal project settings (gitignored)
`
Files higher in the hierarchy take precedence. Claude reads from home directory up through your project directory.
What to Put in CLAUDE.md
`markdown
Project Memory
Tech Stack
- TanStack Start (React 19)
- Cloudflare Workers
- Drizzle ORM + D1
Commands
bun --bun run dev - Start development
bun run build - Production build
Coding Standards
- Use TypeScript strict mode
- Prefer server functions over API routes
- Components in src/components, routes in src/routes
Project Context
@docs/architecture.md
@docs/api-reference.md
`
Importing External Files
Use the
@path/to/file syntax to import additional context:
`markdown
CLAUDE.md
Core Documentation
@docs/getting-started.md
@docs/database-schema.md
Current Sprint
@docs/sprint-14-goals.md
`
Imports can nest up to 5 levels deep. But remember—every imported file consumes tokens. Keep imports focused and minimal.
---
The Limitations You'll Hit
1. No Cross-Session Persistence
This is the big one. When you start a new Claude Code session, everything learned in the previous session is gone. Claude doesn't remember:
- Bugs you fixed together
- Architectural decisions you discussed
- Your feedback on its code style
- What you were working on
You can resume sessions with
claude --resume or claude -c, but that only works for recent conversations and still consumes your context window.
2. Fading Memory Within Sessions
Even within a session, Claude's effective memory degrades. As your
CLAUDE.md files grow larger, Claude's ability to find the most relevant information diminishes. The signal gets lost in the noise.
3. Context Rot
Long sessions accumulate context that gradually becomes less useful. Compaction preserves recent activity but may drop important decisions made earlier. Developers report needing to re-explain things mid-session.
4. Re-establishment Overhead
Every new session requires re-establishing:
- Project structure understanding
- Active task context
- Coding conventions
- Recent decisions and their rationale
This overhead is substantial—studies show tasks that take 1-2 minutes with proper context can take 10+ minutes without it.
---
Best Practices for Claude Code Memory
Only include information essential for every session. Move project-specific details to separate files and import with
@docs/file.md only when needed.
Put personal settings in
CLAUDE.local.md files—they're gitignored automatically and won't conflict with team settings.
Use
/clear to reset the conversation when switching between unrelated tasks. This prevents context pollution.
Use
/compact to summarize and compress your conversation when it gets long. You'll lose detail but prevent context exhaustion.
Keep important decisions in actual documentation files, not just in conversation history. What's in files persists; what's in chat doesn't.
---
The Real Solution: External Context Management
Claude Code's built-in memory is a starting point, not a complete solution. For serious development work, you need external context management.
What External Context Provides
title="True Persistence"
description="Context that survives not just across sessions, but across days, weeks, and project phases."
/>
title="Semantic Search"
description="Instead of loading everything into context, retrieve relevant memories based on what you're working on."
/>
title="Task Continuity"
description="Pick up where you left off with full context, not just a conversation summary."
/>
title="Learning Retention"
description="Claude remembers what it learned—patterns, preferences, and project-specific knowledge."
/>
CAS: The Context Layer for Claude Code
CAS (Coding Agent System) solves the memory problem by providing a complete context layer:
Persistent Memory
`
Remember: User prefers functional components over class components
Remember: The auth system uses JWT tokens stored in httpOnly cookies
Remember: Always run tests before committing
`
These memories persist indefinitely and are automatically surfaced when relevant.
Task Tracking
`
Task: Implement user authentication
- Status: in_progress
- Notes: Using Supabase Auth, needs email verification
- Blocked by: Database schema migration
`
Tasks maintain context across sessions. Resume exactly where you left off.
Semantic Search
`
Search: How did we handle rate limiting?
Found: Entry from Dec 15 - Implemented token bucket algorithm...
`
Instead of loading everything, retrieve just what's relevant.
Rules and Skills
`
Rule: Always use TypeScript strict mode in this project
Rule: Format code with Prettier before committing
`
Persistent coding standards that Claude follows automatically.
Setting Up CAS
`bash
Install CAS
npm install -g cas-mcp
Add to Claude Code's MCP configuration
{
"mcpServers": {
"cas": {
"command": "cas-mcp",
"args": ["serve"]
}
}
}
`
Now Claude Code has persistent memory that actually works.
---
Memory Management Commands
Built-in Commands
| Command | Purpose |
|---------|---------|
|
/memory | Show loaded memory files |
|
/clear | Reset current conversation |
|
/compact | Compress conversation to summary |
|
claude -c | Continue most recent session |
|
claude --resume | Pick specific session to resume |
CAS Commands
| Command | Purpose |
|---------|---------|
|
cas_remember | Store a persistent memory |
|
cas_search | Find relevant context |
|
cas_task_create | Create a tracked task |
|
cas_context | Get full session context |
---
Common Memory Problems and Solutions
Problem: Claude Forgets Project Structure
Symptom: Claude asks about file locations or project organization it should know.
Solution: Create a focused architecture document and import it:
`markdown
CLAUDE.md
@docs/architecture.md
`
Keep the architecture doc updated as the project evolves.
Problem: Claude Ignores Coding Standards
Symptom: Claude generates code that doesn't match your conventions.
Solution: Be specific in CLAUDE.md and reinforce with examples:
`markdown
Code Style
- Use
async/await over .then() chains
Prefer named exports over default exports
Use type for object shapes, interface for extensible contracts
Example Component
@examples/component-template.tsx
`
Problem: Context Exhaustion Mid-Task
Symptom: Claude loses track of what you're doing during a long task.
Solution: Use CAS to track the task explicitly:
`
Create task: Implement payment processing
- Break into subtasks
- Add notes as you progress
- Claude can check task context anytime
`
Problem: Repeating Yourself Across Sessions
Symptom: Every new session requires explaining the same things.
Solution: Store persistent learnings in CAS:
`
Remember: This project uses path aliases - @ maps to src/
Remember: Database migrations require env vars in .env.local
Remember: The user prefers detailed commit messages
``
These surface automatically in future sessions.
---
The Future of Claude Code Memory
Anthropic is actively improving context management. Recent updates introduced:
- Context editing — 84% reduction in token consumption
- Smarter compaction — Better preservation of important context
- Session memory (coming) — Automatic capture of key information
But even with improvements, Claude Code's memory will always be session-scoped. For true persistence across your development lifecycle, external context management remains essential.
---
Conclusion
Claude Code's memory is powerful but ephemeral. The context window provides impressive working capacity, but it resets with each session. For professional development work, you need more.
Key takeaways:- Understand the limits — 200K tokens, session-scoped, subject to compaction
- Use CLAUDE.md wisely — Keep it lean, import specific files as needed
- Manage sessions actively — Clear between tasks, compact when needed
- Add external persistence — CAS provides the memory layer Claude Code lacks
Stop repeating yourself. Stop re-explaining your project. Give Claude Code the memory it deserves.
CAS provides persistent memory, task tracking, and semantic search for Claude Code. Install it once, and Claude remembers everything important across all your sessions.