🇫🇷 Français

Context and Memory Management in Claude Code

Day 5 - Optimize long sessions and preserve your preferences

By Angelo Lima

A Claude Code session can last hours. But the longer the conversation, the heavier the context becomes. Today, we’ll see how to effectively manage memory and context for productive sessions.

The Hierarchical Memory System

Claude Code uses a 4-level memory architecture, from highest to lowest priority:

┌─────────────────────────────────────────┐
│ 1. Enterprise Policy (highest priority)│  ← Organization IT rules
├─────────────────────────────────────────┤
│ 2. Project Memory (.claude.md)         │  ← Project instructions
├─────────────────────────────────────────┤
│ 3. Project Rules (.claude/rules/)      │  ← Modular rules
├─────────────────────────────────────────┤
│ 4. User Memory (~/.claude/CLAUDE.md)   │  ← Personal preferences
└─────────────────────────────────────────┘

Level 1: Enterprise Policy

For organizations, admins can define global rules that apply to all users. These rules have maximum priority.

Level 2: Project Memory (.claude.md or CLAUDE.md)

The CLAUDE.md file at the project root:

# CLAUDE.md

## Tech Stack
- Next.js 14 with App Router
- Strict TypeScript
- Prisma + PostgreSQL
- Tailwind CSS

## Conventions
- Use Server Components by default
- Name files in kebab-case
- Tests with Vitest

## Strict Rules
- NEVER expose API keys client-side
- ALWAYS validate inputs with Zod

Level 3: Project Rules (.claude/rules/)

For modular and conditional rules:

.claude/rules/
├── typescript.md      # TypeScript rules
├── testing.md         # Testing rules
├── api/
│   └── security.md    # API security rules
└── frontend/
    └── components.md  # Component rules

Example rule with glob pattern:

<!-- .claude/rules/api/security.md -->
---
globs: ["src/api/**/*.ts", "src/routes/**/*.ts"]
---

# API Security Rules

- Always validate JWT tokens
- Rate limiting on all endpoints
- Log suspicious access

This rule only applies when working on files matching the patterns.

Level 4: User Memory

Your personal preferences in ~/.claude/CLAUDE.md:

# Personal Preferences

## Code Style
- I prefer early returns
- Comments in English
- No semicolons in JS/TS

## Communication
- Concise responses
- No emojis
- Table format for comparisons

Adding Instructions Live with

During a session, use # to add instructions:

# Use date-fns instead of moment.js

This instruction is added to the project’s CLAUDE.md and persists between sessions.

Importing Context with @

You can reference other files in your CLAUDE.md:

# CLAUDE.md

## Architecture
See @docs/architecture.md for details.

## Patterns
Follow patterns in @src/features/auth/ for new features.

Import supports up to 5 levels of recursion.

The /compact Command

When context becomes too heavy, use /compact:

/compact

This command:

  • Summarizes the conversation
  • Removes non-essential details
  • Preserves important information
  • Reduces token consumption

When to Use /compact

Situation Action
Session > 30 minutes Consider /compact
Lots of code displayed /compact recommended
Topic change /compact then new task
“Context too long” error /compact required

Checkpoints: Your Safety Net

Claude Code automatically creates a checkpoint at each user prompt.

How the System Works

Prompt 1 → [Checkpoint 1] → Claude Response
Prompt 2 → [Checkpoint 2] → Claude Response
Prompt 3 → [Checkpoint 3] → Claude Response
          ↑
    You can return here

Going Back with Esc Esc

Double-press Esc to open the rewind menu:

Rewind options:
1. Conversation only  → Keep code, go back in conversation
2. Code only          → Keep conversation, undo modifications
3. Both               → Undo everything (code + conversation)

The /rewind Command

Alternative to the shortcut:

/rewind

You can also specify how far back:

/rewind 3  → Go back 3 prompts

Important Limitations

Checkpoints do NOT track:

Not Tracked Example
Files deleted by bash ! rm -rf node_modules
Files moved by bash ! mv src/old src/new
Manual modifications Edits made in your IDE
Concurrent sessions Another Claude Code instance

Tip: Use Git as a complement for true history.

Automatic Session Cleanup

Claude Code automatically cleans up old sessions.

Cleanup Configuration

In .claude/settings.json:

{
  "cleanupPeriodDays": 30
}

Sessions older than this period are deleted.

View Existing Sessions

/sessions

Resume a Session

claude -r <session-id>

Or continue the last one:

claude -c

Best Practices for Long Sessions

1. Structure Your Tasks

Session 1: Exploration and planning
  └─ /compact before finishing

Session 2: Implementation feature A
  └─ /compact before finishing

Session 3: Implementation feature B
  └─ /compact before finishing

2. Use /clear Between Different Topics

> [Authentication task completed]

/clear

> Now, let's work on the payment system

3. Document What You Learn in CLAUDE.md

Instead of repeating the same instructions:

# I learned the project uses a specific pattern

This becomes a permanent instruction.

4. Combine Checkpoints and Git

# Before a risky modification
git add -A && git commit -m "checkpoint before refactoring"

# Make the modification with Claude

# If it doesn't work
git reset --hard HEAD

Monitoring Context Usage

With /cost

/cost

Session cost: $0.45
Tokens used: 45,000 (input) + 5,000 (output)
Context size: ~40,000 tokens

Signs of Overloaded Context

Sign Action
Slower responses /compact
Claude “forgets” instructions /compact + remind
Cost increasing fast /compact
Context error /compact required

Optimized Workflow Template

# Start of session
claude

# 1. Recall context if needed
> Summarize what we did yesterday on the auth feature

# 2. Define today's task
> Today, we continue with tests

# 3. Work...

# 4. At regular intervals (30-45 min)
/cost
# If > 50k tokens → /compact

# 5. Before changing major topics
/clear

# 6. At end of session
# Add learnings to CLAUDE.md
# Allows next session to benefit from context

What’s Coming Tomorrow

In Day 6, we’ll see Git workflows with Claude Code: automatic commits, PR creation, and using checkpoints for effective collaboration.


This article is part of the “Master Claude Code in 20 Days” series. Day 4: Prompt Engineering

Share: