Logo Vincent
Back to all posts

Claude Code /resume: Pick Up Where You Left Off

Claude
Claude Code /resume: Pick Up Where You Left Off
Table of Contents

Why You Need /resume

When using Claude Code, you’ll frequently run into situations like these:

  • You’re halfway through a task, have to join a meeting, and exit Claude Code
  • You come back the next day wanting to pick up where you left off
  • You’re juggling multiple features and need to switch between different conversations

If you start a new conversation every time, the problem is obvious: all your previous context is gone. Claude Code doesn’t know what you did yesterday, which approaches you discussed, or which ideas you ruled out. You have to re-explain the background and let it re-understand the code — wasting both tokens and time.

That’s where /resume comes in.

What Is /resume

/resume is a built-in slash command in Claude Code for restoring previous conversation sessions.

In interactive mode, type:

/resume

An interactive session picker appears, showing all your recent conversations. Each entry includes:

  • Conversation summary
  • Message count
  • Git branch name
  • Timestamp

Select one, hit Enter, and the entire conversation context is restored — chat history, tool call results, code modifications, everything.

Multiple Ways to Resume

Claude Code offers several ways to resume conversations, suiting different scenarios:

Switch Within Interactive Mode

/resume

No need to exit your current session. Just type /resume during a conversation and select the session to restore.

Resume Last Session on Startup

claude --continue
# or shorthand
claude -c

Directly resumes your last conversation without opening the picker. Perfect for the “left work yesterday, picking up today” scenario.

Choose a Session on Startup

claude --resume
# or shorthand
claude -r

Opens the session picker so you can choose which conversation to restore.

Resume a Specific Session

claude --resume abc123

If you know the session ID, you can specify it directly.

Resume a PR-Linked Session

claude --from-pr 123

Restores the conversation associated with a specific Pull Request — great for code review scenarios.

Session Picker Shortcuts

The session picker isn’t just a simple list — it has some handy keyboard shortcuts:

KeyFunction
AToggle scope: current directory / all projects
BFilter by current git branch
RRename the selected session
PPreview the selected session’s content

Where Are Conversations Stored

All conversations are automatically saved locally — no manual action needed:

~/.claude/projects/<encoded-project-path>/xxx.jsonl

Each project has its own folder, and each .jsonl file inside is a complete conversation record containing all messages, tool invocations, and output results.

Conversations never expire — whether from yesterday or last month, as long as the file exists, it can be restored.

Practical Use Cases

Scenario 1: Multi-Day Feature Development

You’re building a complex feature. Day one: data models and API layer done. Day two: time for the frontend.

# Next day
claude -c

Claude Code restores yesterday’s context — it remembers what you did, what issues came up, and which approaches you chose. Just say “continue with the frontend” and go.

Scenario 2: Parallel Tasks

You’re working on three features simultaneously, each in a different conversation.

/resume

Press B in the picker to filter by current branch and quickly find the right conversation.

Scenario 3: Code Review Continuation

A colleague opened a PR. You reviewed half of it yesterday, time to finish today.

claude --from-pr 42

Directly restore the conversation context linked to that PR.

Practical Tips

Tip 1: Give Sessions Meaningful Names

Default session names are auto-generated summaries that aren’t always easy to find. Press R in the picker to rename:

feature-auth-module
bugfix-login-redirect
refactor-database-layer

Meaningful names make sessions much easier to find later.

Tip 2: Use /clear to Segment Your Work

Don’t pile everything into one session. After completing a task, use /clear to reset the context and start fresh. This keeps each session focused on a single topic, makes them easier to find when resuming, and reduces hallucination issues from overly long contexts.

Tip 3: —continue with a Prompt

claude -c "continue with the frontend"

Resume your last conversation and send a message at the same time — one fewer step of interaction.

Tip 4: Watch Quality in Long Sessions

While conversations can be resumed indefinitely, response quality may degrade when the context gets too long — too much information can cause Claude Code to “lose focus”. If responses start getting unreliable, consider starting a new session with /clear and re-syncing the key context.

/resume vs Starting Fresh

/resumeStarting Fresh
ContextFully preservedStarts from zero
Token UsageHistorical context consumes tokensLow initial consumption
Best ForContinuing unfinished tasksBrand new independent tasks
RiskQuality may drop with very long contextNeed to re-describe background

Each approach has its place. Use /resume for unfinished tasks, start a new conversation for completely new work.

Final Thoughts

/resume solves a simple problem: don’t let your conversations go to waste.

When using Claude Code for development, it’s impossible to finish everything in one sitting. You’ll always be interrupted — meetings, end of day, task switching. Without /resume, every time you come back you’d have to rebuild the context from scratch, wasting tokens and time.

With it, Claude Code becomes a partner that “remembers where you left off”. You can leave anytime, come back anytime, and pick up right where you stopped.

One command, and every conversation counts.

Related Articles

Claude Code Agent Loop: Dissecting the Heart of an AI Coding Assistant

How does Claude Code understand your requests, invoke tools, and self-recover step by step? A source-code deep dive into the Agent Loop's core architecture — streaming responses, parallel tool execution, auto-compaction, and error recovery.

Where Is Claude Code settings.json? 5 Config Files, 1 Priority Rule

Claude Code has 5 config file locations: user-level (~/.claude/), project-level (.claude/), local-only, CLI flags, and enterprise managed settings. Learn which file to use when, how priority works, and why your settings might be ignored.

Claude Code settings.json Permissions: Control Exactly What AI Can Do

Stop clicking 'Allow' on every action. Configure Claude Code's permissions system — set allow/deny/ask rules, use wildcards, control MCP tools, and protect sensitive directories. Every permission option with practical examples.

Claude Code settings.json Hooks: Auto-Run Scripts at Every Step

Want to auto-validate commands before they run? Send Slack notifications when tasks finish? Claude Code hooks let you inject custom scripts at key moments — PreToolUse, PostToolUse, Stop, Notification — with practical examples.

Claude Code settings.json: Every Config Field Explained with Examples

Complete reference for every Claude Code settings.json field: environment variables, model selection, hooks, permissions, status line, theme, auto-updates, and more — all with working code examples you can copy and paste.

© 2026 vincentqiao.com . All rights reserved.