> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/jackdog668/claude-code/llms.txt
> Use this file to discover all available pages before exploring further.

# session

> Resume, continue, and manage past Claude Code sessions.

Claude Code persists conversation history to disk so you can resume where you left off. Session management is handled through CLI flags on the main `claude` command and the `/resume` slash command inside an interactive session.

## Resuming sessions

### Continue the last session

Pick up exactly where you left off in the current directory:

```bash theme={null}
claude -c
claude --continue
```

### Resume by session ID

Pass a specific session UUID to jump directly into that conversation:

```bash theme={null}
claude --resume 550e8400-e29b-41d4-a716-446655440000
claude -r 550e8400-e29b-41d4-a716-446655440000
```

### Open the interactive picker

Omit the ID to browse past sessions in an interactive list, with optional search:

```bash theme={null}
claude --resume
claude --resume "my feature branch"
```

<ParamField path="-r, --resume [session-id-or-search]" type="string | boolean">
  Resume a conversation. Provide a session ID to resume directly, or a search
  term to pre-filter the interactive picker, or omit the value entirely to open
  the picker with no filter.
</ParamField>

<ParamField path="-c, --continue" type="boolean">
  Continue the most recent conversation in the current directory. Equivalent to
  `--resume` with the ID of the last session.
</ParamField>

<ParamField path="--fork-session" type="boolean">
  When resuming, create a new session ID instead of reusing the original. Use
  together with `--resume` or `--continue` to branch off a copy of the
  conversation.
</ParamField>

<ParamField path="--no-session-persistence" type="boolean">
  Disable session persistence for this run — the session will not be saved to
  disk and cannot be resumed. Only works with `--print`.
</ParamField>

<ParamField path="--session-id <uuid>" type="string">
  Use a specific UUID for the new session. Must be a valid UUID and must not
  already exist. When used with `--resume` or `--continue`, `--fork-session`
  must also be specified.
</ParamField>

<ParamField path="-n, --name <name>" type="string">
  Set a display name for this session. The name is shown in the `/resume`
  picker and in the terminal title.
</ParamField>

## The `/resume` slash command

Inside an interactive session, run `/resume` (aliased as `/continue`) to open
the session picker without leaving the CLI:

```
/resume
/resume my-feature
/continue
```

## Clearing the current session

The `/clear` slash command (aliased as `/reset` and `/new`) clears the current
conversation history and frees up context, starting a fresh turn within the
same process:

```
/clear
/reset
/new
```

## Session storage

Sessions are stored as JSONL transcript files under:

```
~/.claude/projects/<project-hash>/
```

Each file is named with the session UUID. The `cleanupPeriodDays` setting
(default: 30) controls how long transcripts are retained before being deleted
at startup.

```json ~/.claude/settings.json theme={null}
{
  "cleanupPeriodDays": 60
}
```

Set `cleanupPeriodDays` to `0` to disable session persistence entirely.

<Tip>
  Use `--name` to give sessions a human-readable label so they are easier to
  find in the `/resume` picker later.

  ```bash theme={null}
  claude --name "oauth-refactor" -c
  ```
</Tip>
