What is the difference between claude --continue and claude --resume?

claude --continue          # newest session here
claude --resume            # choose from a list

Same stored sessions, different way of selecting one.

Answer

--continue reopens the most recent session in the current directory with no prompt and no arguments. --resume lets you choose: with no argument it opens a picker, and with a name or session ID it goes straight there. The ID form searches beyond the current directory, which --continue never does.

What it does

Both flags reopen a stored session. They differ in how the session is chosen.

claude --continue

Takes the most recent session in the current directory. No list, no arguments, no ambiguity, because "most recent" is decided for you.

claude --resume

Lets you choose. With no argument it opens a picker; with a name, a generated title or a session ID it opens that session directly. A name that matches several sessions opens the picker with it pre-filled.

The other difference is reach. --continue only ever looks at the current directory, and skips -p and SDK runs, background sessions and sessions that began with /loop. --resume <name> reaches the other worktrees of the repository, and --resume <session-id> searches the current project and its git worktrees first, then every other project on the machine.

--continue--resume
Which sessionnewest interactive one in this directorythe one you pick
Interactionnonepicker, unless you pass an identifier
Scopecurrent directory onlyother worktrees by name, any project by ID

When to use it

Use --continue for the common case: you were working here, you stopped, you are back. It is the shortest path and there is nothing to get wrong.

Use --resume when the newest session is not the one you want. You did something else in between, or the session belongs to another project, or you have an ID in a script.

Example

Back to what you were doing:

claude -c

Choose from this project's history:

claude --resume

Reopen a specific session from anywhere on the machine:

claude --resume 7f3d9a2c-1b4e-4c8a-9f2d-3e5b7c1a0d6f

In a non-interactive run, only the identifier form works, because there is no picker to show:

claude -p "what did we conclude?" --resume <session-id>

Common mistakes

Reaching for --resume out of habit. If you want the last session where you are, --continue skips the picker entirely.

Assuming --resume alone works without a terminal UI. In -p runs it needs an explicit session ID.

Confusing the flag with the slash command. claude --resume starts a new process and picks a session to open; /resume, typed inside a running session, switches the conversation you are already in. That is the one that gets you back to a cleared context. Its alias is /continue, which shares a name with the flag and nothing else.