DEV Community

Echo
Echo

Posted on

Claude Code memory, resume, and session retrieval are three different jobs

I used to think Claude Code's memory, /resume, and session history were all solving the same problem. They are not. Once I separated them, my workflow got a lot less fragile.

1. Memory is for reusable facts

CLAUDE.md, .claude/rules/, and auto memory are for information that should carry into future sessions. This is where project conventions, build commands, debugging notes, and repeated corrections belong.

Good use cases:

  • "Always use pnpm in this repo."
  • "The integration tests need Redis."
  • "API handlers live under this directory."
  • "Claude keeps missing this convention, so write it down."

This is not the same as reopening an old conversation. It is a way to give the next conversation better starting context.

2. Resume is for a known session

claude --continue reopens the most recent conversation in the current directory.

claude --resume reopens a specific session by ID or name, or lets you choose from a picker.

This is the right layer when you know which conversation you want to continue. Naming sessions helps a lot here.

Good use cases:

  • You stopped working on a PR yesterday and want to continue it.
  • You named the session auth-refactor and want to reopen it.
  • You only need the most recent conversation in this repo.

3. Retrieval is for when you forgot which session it was

The harder case is not "can Claude continue a known session?"

The harder case is "which old session was that?"

After a few repos, the ID, date, terminal tab, and exact session name blur together. You may remember the project, bug, or decision, but not the session handle. Digging through ~/.claude/projects/ raw JSONL files is not a workflow.

That is a separate retrieval problem:

  • browse old sessions by project
  • find the relevant conversation before reopening it
  • avoid guessing session IDs or scrolling through a flat picker
  • keep Claude Code and Codex work visible across repos

This is the layer I built Shelf for: https://github.com/Harukaon/shelf

Shelf is not a replacement for --continue, --resume, CLAUDE.md, or auto memory. Those native layers are useful. Shelf is meant to sit beside them as a desktop workspace for browsing and reopening Claude Code and Codex sessions by project.

Short version

  • Memory is for reusable facts.
  • Resume is for a known session.
  • Retrieval is for finding the old session when you do not remember the ID, name, tab, or date.

I keep the three layers separate now and it stopped most of the "where did that conversation go?" panic.

Top comments (0)