GuideDeep Dive

The Ultimate Guide to Claude Code Context Management

January 11, 2026 · 12 min read

Context window management is the difference between productive Claude Code sessions and frustrating ones. After months of daily use and building memory tools for Claude Code, here's everything I've learned about managing context effectively.

1. The Context Problem

Every Claude Code session starts fresh. Claude doesn't remember your previous conversations, your project structure, or the decisions you made yesterday. This is by design—it's a privacy feature—but it creates a productivity challenge.

The symptoms are familiar:

  • Re-explaining your project structure every session
  • Claude forgetting decisions made earlier in a long session
  • Losing context after auto-compaction
  • "Wait, didn't we already fix that?" moments
  • Having to re-establish coding conventions repeatedly

The root cause is the context window—the limited memory Claude has during any single conversation.

2. How Context Windows Work

Claude Code uses Claude's API with a context window of approximately 200,000 tokens. That sounds like a lot, but it fills up faster than you'd expect:

What Counts Toward Context

  • ✓ Your messages (prompts)
  • ✓ Claude's responses
  • ✓ File contents Claude reads
  • ✓ Command outputs
  • ✓ Error messages and logs
  • ✓ CLAUDE.md file contents
  • ✓ MCP tool inputs and outputs

A typical coding session might look like:

CLAUDE.md: ~2,000 tokens
Initial file reads: ~15,000 tokens
Your prompts: ~5,000 tokens
Claude's responses: ~30,000 tokens
Code changes and diffs: ~10,000 tokens
Test outputs: ~8,000 tokens
Total: ~70,000 tokens (35% of window)

That's just 30 minutes of moderate activity. Heavy debugging or exploring a new codebase can burn through 200k tokens in under an hour.

3. Understanding Compaction

When the context window fills up, Claude Code compacts the conversation. This is an automatic summarization process that condenses the conversation history to free up space.

The Compaction Problem

Compaction is lossy. Details get dropped. Claude's summary might miss:

  • Specific file paths you were working on
  • Why certain approaches were rejected
  • Edge cases you discussed
  • Exact error messages and their solutions
  • Context about the broader architecture

The result: Claude might re-suggest approaches you already tried, forget constraints you mentioned, or lose track of the overall goal.

You can trigger compaction manually with /compact, which gives you more control over when it happens.

4. Context Preservation Techniques

Technique 1: Front-Load Critical Information

Put your most important context in CLAUDE.md. This file is read at the start of every session and survives compaction.

# CLAUDE.md
## Project: E-commerce API
Stack: Node.js, Express, PostgreSQL, Redis

## Critical Constraints
- All prices stored in cents (integers)
- User IDs are UUIDs, never integers
- Rate limit: 100 req/min per API key

## Recent Decisions
- 2026-01-10: Switched from JWT to sessions (security audit)
- 2026-01-09: Added Redis caching for product catalog

Technique 2: Periodic Summaries

Before context fills up, ask Claude to summarize progress:

Summarize what we've accomplished in this session:
1. What files were modified
2. What problems were solved
3. What's still pending
4. Any decisions or constraints we established

Save this to CLAUDE.md under ## Session Notes

Technique 3: Checkpoint Files

For long tasks, create checkpoint files that capture state:

# .claude/checkpoints/auth-refactor.md
## Goal: Refactor authentication to use sessions

## Completed
- [x] Created sessions table
- [x] Updated User model
- [x] Modified login endpoint

## In Progress
- [ ] Update middleware (src/middleware/auth.ts)

## Blocked
- Password reset flow depends on email service update

Technique 4: Strategic /clear

Sometimes a clean slate is better than fighting context drift. Use /clear when:

  • Switching to a completely different task
  • Claude seems confused about the goal
  • You notice Claude repeating mistakes
  • The conversation has gone in circles

But first: save any important context to CLAUDE.md or a checkpoint file.

5. CLAUDE.md Best Practices

Your CLAUDE.md file is your most powerful context management tool. Here's how to structure it for maximum effectiveness:

Essential Sections

Project Overview

2-3 sentences on what the project does, the stack, and key architecture decisions.

Directory Structure

Key directories and their purposes. Don't list every file—focus on patterns.

Coding Standards

Formatting, naming conventions, error handling patterns, test requirements.

Do NOT Section

Critical constraints and anti-patterns. This prevents Claude from making common mistakes.

Recent Context

Current task, recent decisions, ongoing work. Update this frequently.

Keep it under 3,000 tokens. A CLAUDE.md that's too long wastes context space. Be concise and update it regularly to stay relevant.

6. Tools for Context Management

Several tools can help manage context more effectively:

momentum

Fast context recovery plugin. Takes snapshots of your work and restores them instantly (<5ms) after /clear or between sessions.

Learn more →

memory-mcp

Persistent memory across sessions. Claude can store and recall information using natural language commands.

Learn more →

/cost Command

Built into Claude Code. Use /cost to see how much context you've used. Helps you know when compaction is coming.

7. Workflow Patterns

Pattern: Session Handoff

At the end of each session, create a handoff document:

Before we end, create a session handoff:

## What was accomplished
[list completed work]

## Current state
[describe where things stand]

## Next steps
[prioritized list]

## Important context
[anything the next session needs to know]

Save to .claude/handoff-[date].md

Pattern: Task Isolation

For unrelated tasks, use separate sessions. One session for bug fixes, another for new features. This prevents context pollution and makes compaction less damaging.

Pattern: Progressive Refinement

Instead of one long session, work in focused sprints:

  1. Session 1: Research and planning (save to CLAUDE.md)
  2. Session 2: Core implementation (checkpoint progress)
  3. Session 3: Testing and refinement (fresh context)
  4. Session 4: Documentation and cleanup

8. Advanced Techniques

Pre-Compaction Dumps

When you notice context filling up, preemptively save state:

We're running low on context. Before compaction:
1. List all files modified this session
2. Summarize our approach and why we chose it
3. Note any gotchas or edge cases discovered
4. Save everything to CLAUDE.md ## Session State

Selective File Loading

Don't let Claude read entire files when it only needs snippets:

# Instead of:
"Read the entire auth.ts file"

# Do this:
"Show me only the validateToken function in auth.ts"

# Or:
"Read lines 45-80 of auth.ts"

Context-Aware Prompts

Include relevant context in your prompts instead of relying on memory:

# Instead of:
"Now fix the other bug we discussed"

# Do this:
"Fix the null pointer in handleSubmit (line 42 of UserForm.tsx)
that we identified from the TypeError: Cannot read property 'email' of null"

Conclusion

Context management is a skill that improves with practice. The key principles:

  • Invest in CLAUDE.md - It's your permanent context anchor
  • Save before clearing - Never lose important context
  • Use tools - momentum and memory-mcp exist because this problem is real
  • Be explicit - Include context in prompts rather than assuming memory
  • Work in sprints - Fresh sessions beat context drift

Master these techniques and you'll spend less time re-explaining and more time building.

Want More Help?

Get the Claude Code Cheat Sheet for a quick reference, or book a consulting session for personalized help with your workflow.