How to resume a Claude Code session

Pick up a Claude Code conversation where you left off with claude --continue, claude --resume or /resume. Naming sessions so you can find them, the picker's shortcuts, what a resumed session keeps and what it does not, branching a session, and why a session is missing from the list.

Short answer: Run claude --continue (or claude -c) in the same folder to reopen your most recent session there. Run claude --resume to choose from a list, or type /resume inside a running session. Name a session with /rename auth-refactor and you can come back to it with claude --resume auth-refactor.

You closed the terminal, the laptop went to sleep, or it was simply the end of the day. Claude Code saved the whole conversation as it went, so there is no need to explain the task again. Checked against Claude Code 2.1.308.

Which command resumes which session?

CommandWhat it opens
claude --continueThe most recent session in the current folder
claude --resumeThe session picker, to choose one
claude --resume <name>A named session, directly
claude --resume <session-id>A session by its ID, from any folder
claude --from-pr <number>The picker, filtered to sessions linked to that pull request
/resumeThe picker, from inside a running session
/resume <name>Switches straight to a named session

If there is nothing to continue in the folder, claude --continue prints No conversation found to continue and exits. Sessions are stored per project folder, so start Claude Code in the same folder as before.

How do you name a session so you can find it again?

WhenHow
At startclaude -n auth-refactor
During the session/rename auth-refactor (the name also shows on the prompt bar)
In the pickerHighlight a session and press Ctrl+R

A session you never name still gets a generated title, a short summary of your first prompt, and that title works with --resume too. Accepting a plan in plan mode replaces it with a title based on the plan. Names matter most when you run several tasks at once: "auth-refactor" is easier to find than the fifth session called "fix the tests".

How do you use the session picker?

claude --resume with no name, or /resume, opens the picker. Each row shows the name or title, how long ago it was active, the git branch and the size.

KeyDoes
↑ ↓ or j kMove
Enter, or 1 to 9Resume the highlighted one, or the one at that number
SpacePreview the conversation
Typing, or /Search; paste a pull request URL to find the session that made it
Ctrl+BOnly sessions from the current git branch
Ctrl+WSessions from all worktrees of the repository
Ctrl+ASessions from every project on this computer
Ctrl+RRename

What does a resumed session keep?

KeptNot kept
The conversation, tool calls and results (from the last compaction summary on, if it was compacted)Background commands and subagents that were running; they show as unfinished notes
The model it was usingFlags like --mcp-config, --settings, --plugin-dir and --add-dir: pass them again
The permission mode, when you resume from the terminal by --continue, name or ID (with exceptions: bypass permissions is not restored)Folders added during the session with /add-dir
Scheduled tasks that have not expiredA tool call that was cut off: Claude is told to check whether it took effect before running it again

Your settings.json files are read again at every start, so anything set there needs no flag.

How do you try another approach without losing this one?

Branch the session. Inside it, run /branch try-streaming to copy the conversation so far into a new session and switch to it; the original stays as it was and remains in the picker. From the command line, add --fork-session:

claude --continue --fork-session

Do not open the same session in two terminals without forking: the messages of both end up mixed in one transcript. To go back to an earlier point within one session instead, use /rewind; Undo Claude Code changes with /rewind covers it.

Why is my session not in the list?

CauseFix
You started Claude Code in another foldercd there, or press Ctrl+A in the picker for every project
It was a claude -p run or an Agent SDK sessionThey are left out of the picker and --continue: resume by session ID, or use claude -p --continue
Its first prompt was a /loopSuch sessions are left out of the picker and --continue
It is older than 30 daysTranscripts are deleted after cleanupPeriodDays, 30 by default; raise it in settings.json to keep them longer
It is in another worktreeCtrl+W in the picker

Where can you check this?

Can you see all your past sessions in one place?

Usage Insights for Claude Code reads the folder where Claude Code keeps these sessions, in your browser with nothing uploaded, and turns it into a dashboard: active days, a weekday by hour heatmap, projects, tools, skills, models, tokens and cost. Where Claude Code keeps your history explains the files themselves.

The tool

Do it in your browser.

Claude Code

Usage Insights for Claude Code

See what you and your team did with Claude: activity, what you built, the tools and skills you used, cost and telemetry, from your Claude Code history, in your browser.

Keep reading

More from the blog.

Every post