Follow Discord
Sweep 02 Oct 2026 · 18:55Z Build v2.1.288 509 read Stable v2.1.285 Latest v2.1.288 Next v2.1.288 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Manage sessions changedsessions

Nearest release: v2.1.284, published 16 hours after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 28 Sep 2026 00:42 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 28 Sep 2026 23:37 UTC.

Upstream edited
Recorded here
Lines+52added
Lines−52removed
From line 10 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits27to this page, all time

The whole hunk

from line 10, old and new numbered
/
lines
from line 10
1010 
1111Sessions are saved continuously to [local transcript files](#export-and-locate-session-data) as you work, so you can return to one after exiting or running `/clear`. Use these entry points:
1212 
13| Command | What it does |
14| :---------------------------------- | :--------------------------------------------------------------------------------------------------------------------- |
15| `claude --continue` | Reopens the most recent conversation in the current directory |
16| `claude --resume` | Opens the [session picker](#use-the-session-picker) |
17| `claude --resume <name>` | Resumes the named session directly |
13| Command | What it does |
14| :- | :- |
15| `claude --continue` | Reopens the most recent conversation in the current directory |
16| `claude --resume` | Opens the [session picker](#use-the-session-picker) |
17| `claude --resume <name>` | Resumes the named session directly |
1818| `claude --resume <transcript-path>` | Resumes the conversation stored in the `.jsonl` [transcript file](#where-transcripts-are-stored) at that absolute path |
19| `claude --from-pr <number>` | Opens the session picker filtered to sessions linked to that pull request |
20| `/resume` | Switches to a different conversation from inside an active session |
19| `claude --from-pr <number>` | Opens the session picker filtered to sessions linked to that pull request |
20| `/resume` | Switches to a different conversation from inside an active session |
2121 
2222Claude Code leaves sessions created with [`claude -p`](/docs/en/headless) or the [Agent SDK](/docs/en/agent-sdk/overview) out of the session picker and out of `claude --continue`. You can still resume one by passing its session ID to `claude --resume <session-id>`. With `claude --continue`, Claude Code also skips [sessions whose first prompt was `/loop`](#where-the-session-picker-looks). When you run [`claude -p --continue`](/docs/en/headless#continue-conversations), Claude Code includes `-p`, SDK, and `/loop` sessions.
2323 
from line 51
5151 
5252Restoring plan mode on the non-interactive and VS Code paths requires Claude Code v2.1.246 or later. Each row names the permission mode the session ended in, which of the terminal, non-interactive, and VS Code paths you resume it by, and the permission mode Claude Code starts the resumed session in.
5353 
54| Session ended in | How you resume | Permission mode after you resume |
55| :------------------ | :------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
56| `bypassPermissions` | Terminal | The permission mode a new session would start in. To [bypass permissions](/docs/en/permission-modes#skip-all-checks-with-bypasspermissions-mode) again, enable it at launch with one of its launch flags or `permissions.defaultMode: "bypassPermissions"` in [user, `--settings`, or managed settings](/docs/en/settings-reference#permissions-defaultmode) |
57| `plan` | Terminal | The permission mode a new session would start in |
58| `auto` | Terminal | `auto`, only when your account still meets the [auto mode requirements](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) |
59| Manual | Terminal | Manual when a new session would start in auto mode from the [built-in default](/docs/en/permission-modes#which-mode-a-session-starts-in). When a `defaultMode` from a settings file [takes effect](/docs/en/permission-modes#which-mode-a-session-starts-in), Claude Code starts the resumed session in that mode instead |
60| `plan` | Non-interactive, under the [conditions below](#resume-in-plan-mode-with-p) | Plan mode |
61| Any mode | Non-interactive, in any other case | The permission mode a new `claude -p` run would start in |
62| `plan` | VS Code | Plan mode, with [the exceptions on the VS Code page](/docs/en/vs-code#resume-past-conversations) |
54| Session ended in | How you resume | Permission mode after you resume |
55| :- | :- | :- |
56| `bypassPermissions` | Terminal | The permission mode a new session would start in. To [bypass permissions](/docs/en/permission-modes#skip-all-checks-with-bypasspermissions-mode) again, enable it at launch with one of its launch flags or `permissions.defaultMode: "bypassPermissions"` in [user, `--settings`, or managed settings](/docs/en/settings-reference#permissions-defaultmode) |
57| `plan` | Terminal | The permission mode a new session would start in |
58| `auto` | Terminal | `auto`, only when your account still meets the [auto mode requirements](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) |
59| Manual | Terminal | Manual when a new session would start in auto mode from the [built-in default](/docs/en/permission-modes#which-mode-a-session-starts-in). When a `defaultMode` from a settings file [takes effect](/docs/en/permission-modes#which-mode-a-session-starts-in), Claude Code starts the resumed session in that mode instead |
60| `plan` | Non-interactive, under the [conditions below](#resume-in-plan-mode-with-p) | Plan mode |
61| Any mode | Non-interactive, in any other case | The permission mode a new `claude -p` run would start in |
62| `plan` | VS Code | Plan mode, with [the exceptions on the VS Code page](/docs/en/vs-code#resume-past-conversations) |
6363 
6464<h5 id="resume-in-plan-mode-with-p">
6565 Resume in plan mode with `-p`
from line 101
101101 
102102Resuming by name resolves across the current repository and its worktrees. Both forms look for an exact match and resume it directly even if it lives in a different worktree:
103103 
104| Command | Exact match | Ambiguous name |
105| :----------------------- | :--------------- | :-------------------------------------------------------------------------- |
106| `claude --resume <name>` | Resumes directly | Opens the session picker with the name pre-filled as a search term |
107| `/resume <name>` | Resumes directly | Reports an error; run `/resume` with no argument to open the session picker |
104| Command | Exact match | Ambiguous name |
105| :- | :- | :- |
106| `claude --resume <name>` | Resumes directly | Opens the session picker with the name pre-filled as a search term |
107| `/resume <name>` | Resumes directly | Reports an error; run `/resume` with no argument to open the session picker |
108108 
109109## Name your sessions
110110 
111111Give sessions descriptive names so they're findable in the session picker and resumable by name. This matters most when you're working on several tasks in parallel.
112112 
113| When | How to set the name |
114| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
115| At startup | `claude -n auth-refactor` |
116| During a session | `/rename auth-refactor`. The name also appears on the prompt bar |
117| From the session picker | Highlight a session and press `Ctrl+R` |
118| On plan accept | Accepting a plan in [plan mode](/docs/en/permission-modes#analyze-before-you-edit-with-plan-mode) gives the session a generated title based on the plan unless you've already named it |
119| From claude.ai or the Claude app | Rename a [Remote Control session](/docs/en/remote-control#connect-from-another-device); Claude Code applies the same name in the CLI. Requires Claude Code v2.1.221 or later |
120| From the desktop app | Rename a session in the [desktop app](/docs/en/desktop#work-in-parallel-with-sessions) |
113| When | How to set the name |
114| :- | :- |
115| At startup | `claude -n auth-refactor` |
116| During a session | `/rename auth-refactor`. The name also appears on the prompt bar |
117| From the session picker | Highlight a session and press `Ctrl+R` |
118| On plan accept | Accepting a plan in [plan mode](/docs/en/permission-modes#analyze-before-you-edit-with-plan-mode) gives the session a generated title based on the plan unless you've already named it |
119| From claude.ai or the Claude app | Rename a [Remote Control session](/docs/en/remote-control#connect-from-another-device); Claude Code applies the same name in the CLI. Requires Claude Code v2.1.221 or later |
120| From the desktop app | Rename a session in the [desktop app](/docs/en/desktop#work-in-parallel-with-sessions) |
121121 
122122Once you name a session through a CLI route or from claude.ai, return to it with `claude --resume <name>` or `/resume <name>`; a desktop-app session resumes in the app, which keeps its own session history. See [Resume a session](#resume-a-session) for how name resolution behaves across worktrees.
123123 
from line 144
144144 
145145Run `/resume` inside a session, or `claude --resume` with no arguments, to open the interactive session picker. Use these keyboard shortcuts to navigate, search, and widen the list:
146146 
147| Shortcut | Action |
148| :------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |
149| `↑` / `↓` | Navigate between sessions |
150| `→` / `←` | Expand or collapse grouped sessions |
151| `Enter` | Resume the highlighted session |
152| `Space` | Preview the session content. `Ctrl+V` also works on terminals that don't capture it as paste |
153| `Ctrl+R` | Rename the highlighted session |
147| Shortcut | Action |
148| :- | :- |
149| `↑` / `↓` | Navigate between sessions |
150| `→` / `←` | Expand or collapse grouped sessions |
151| `Enter` | Resume the highlighted session |
152| `Space` | Preview the session content. `Ctrl+V` also works on terminals that don't capture it as paste |
153| `Ctrl+R` | Rename the highlighted session |
154154| `/` or any printable character other than `Space` | Enter search mode and filter sessions. Paste a GitHub, GitHub Enterprise, GitLab, or Bitbucket pull or merge request URL to find the session that created it |
155| `Ctrl+A` | Show sessions from all projects on this machine. Press again to return to the current repository |
156| `Ctrl+W` | Show sessions from all worktrees of the current repository. Press again to return to the current worktree. Only shown in multi-worktree repositories |
157| `Ctrl+B` | Filter to sessions from the current git branch. Press again to show all branches |
158| `Esc` | Exit the session picker or search mode |
155| `Ctrl+A` | Show sessions from all projects on this machine. Press again to return to the current repository |
156| `Ctrl+W` | Show sessions from all worktrees of the current repository. Press again to return to the current worktree. Only shown in multi-worktree repositories |
157| `Ctrl+B` | Filter to sessions from the current git branch. Press again to show all branches |
158| `Esc` | Exit the session picker or search mode |
159159 
160160Each row shows the session name if you set one, otherwise the AI-generated session title, conversation summary, or first prompt, along with time since last activity, git branch, and file size. Widen to all projects with `Ctrl+A` to also see each session's project path.
161161 
from line 185
185185 
186186`/branch` copies the transcript and switches the running Claude Code process to write to it. That distinction determines what the branch inherits:
187187 
188| State | After `/branch` |
189| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
190| Conversation history | Copied into the branch up to the point you ran `/branch` |
191| "Allow for this session" permission grants | Carried over; the branch runs in the same process, so your existing grants still apply. If you fork into a separate process with `--fork-session`, the new process starts without them and you re-approve there |
192| In-flight [background subagents](/docs/en/sub-agents#run-subagents-in-foreground-or-background) and [background Bash commands](/docs/en/interactive-mode#background-bash-commands) | Keep running. Their output appears in the new branch you switched into, not in the original session |
193| [Remote Control](/docs/en/remote-control) connection | Stays connected. A phone or browser connected to the session follows you into the branch and keeps receiving new messages there |
188| State | After `/branch` |
189| :- | :- |
190| Conversation history | Copied into the branch up to the point you ran `/branch` |
191| "Allow for this session" permission grants | Carried over; the branch runs in the same process, so your existing grants still apply. If you fork into a separate process with `--fork-session`, the new process starts without them and you re-approve there |
192| In-flight [background subagents](/docs/en/sub-agents#run-subagents-in-foreground-or-background) and [background Bash commands](/docs/en/interactive-mode#background-bash-commands) | Keep running. Their output appears in the new branch you switched into, not in the original session |
193| [Remote Control](/docs/en/remote-control) connection | Stays connected. A phone or browser connected to the session follows you into the branch and keeps receiving new messages there |
194194 
195195If you resume the same session in two terminals without forking, messages from both interleave into one transcript. For checkpoint-based rewind within a single session, see [Checkpointing](/docs/en/checkpointing).
196196 
from line 231
231231 
232232The location, retention, and write behavior are configurable:
233233 
234| To | Set | Where |
235| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------ |
236| Move storage off `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/en/env-vars) | Environment variable |
237| [Name the `<project>` directory yourself](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/env-vars) | Environment variable |
238| Change the 30-day retention | [`cleanupPeriodDays`](/docs/en/settings-reference#cleanupperioddays) | `settings.json` |
234| To | Set | Where |
235| - | - | - |
236| Move storage off `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/en/env-vars) | Environment variable |
237| [Name the `<project>` directory yourself](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/env-vars) | Environment variable |
238| Change the 30-day retention | [`cleanupPeriodDays`](/docs/en/settings-reference#cleanupperioddays) | `settings.json` |
239239| Set an age limit for [Claude Desktop and Cowork transcripts](/docs/en/claude-directory#cleaned-up-automatically) | [`desktopSessionCleanupPeriodDays`](/docs/en/settings-reference#desktopsessioncleanupperioddays) | User settings, managed settings, or `--settings` |
240| Suppress transcript writes in all modes | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/en/env-vars) | Environment variable |
241| Suppress writes for one non-interactive run | [`--no-session-persistence`](/docs/en/cli-reference) | CLI flag with `claude -p` |
240| Suppress transcript writes in all modes | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/en/env-vars) | Environment variable |
241| Suppress writes for one non-interactive run | [`--no-session-persistence`](/docs/en/cli-reference) | CLI flag with `claude -p` |
242242 
243243### Delete session data
244244 
Feedback