| # Manage sessions and history |
|
|
| Resume, browse, and rewind your conversations with Gemini CLI. In this guide, |
| you'll learn how to switch between tasks, manage your session history, and undo |
| mistakes using the rewind feature. |
|
|
| ## Prerequisites |
|
|
| - Gemini CLI installed and authenticated. |
| - At least one active or past session. |
|
|
| ## How to resume where you left off |
|
|
| It's common to switch context—maybe you're waiting for a build and want to work |
| on a different feature. Gemini makes it easy to jump back in. |
|
|
| ### Scenario: Resume the last session |
|
|
| The fastest way to pick up your most recent work is with the `--resume` flag (or |
| `-r`). |
|
|
| ```bash |
| gemini -r |
| ``` |
|
|
| This restores your chat history and memory, so you can say "Continue with the |
| next step" immediately. |
|
|
| ### Scenario: Browse past sessions |
|
|
| If you want to find a specific conversation from yesterday, use the interactive |
| browser. |
|
|
| **Command:** `/resume` |
|
|
| This opens a searchable list of all your past sessions. You'll see: |
|
|
| - A timestamp (for example, "2 hours ago"). |
| - The first user message (helping you identify the topic). |
| - The number of turns in the conversation. |
|
|
| Select a session and press **Enter** to load it. |
|
|
| ## How to manage your workspace |
|
|
| Over time, you'll accumulate a lot of history. Keeping your session list clean |
| helps you find what you need. |
|
|
| ### Scenario: Deleting sessions |
|
|
| In the `/resume` browser, navigate to a session you no longer need and press |
| **x**. This permanently deletes the history for that specific conversation. |
|
|
| You can also manage sessions from the command line: |
|
|
| ```bash |
| # List all sessions with their IDs |
| gemini --list-sessions |
| |
| # Delete a specific session by ID or index |
| gemini --delete-session 1 |
| ``` |
|
|
| ### Scenario: Delete session on exit |
|
|
| If you're doing a one-off task and don't want to leave any session history |
| behind, use the `--delete` flag when exiting: |
|
|
| ``` |
| /exit --delete |
| ``` |
|
|
| This removes the current session's conversation history and tool output files |
| before exiting. It's useful for privacy-sensitive tasks or quick one-off |
| interactions. |
|
|
| ## How to rewind time (Undo mistakes) |
|
|
| Gemini CLI's **Rewind** feature is like `Ctrl+Z` for your workflow. |
|
|
| ### Scenario: Triggering rewind |
|
|
| At any point in a chat, type `/rewind` or press **Esc** twice. |
|
|
| ### Scenario: Choosing a restore point |
|
|
| You'll see a list of your recent interactions. Select the point _before_ the |
| undesired changes occurred. |
|
|
| ### Scenario: Choosing what to revert |
|
|
| Gemini gives you granular control over the undo process. You can choose to: |
|
|
| 1. **Rewind conversation:** Only remove the chat history. The files stay |
| changed. (Useful if the code is good but the chat got off track). |
| 2. **Revert code changes:** Keep the chat history but undo the file edits. |
| (Useful if you want to keep the context but retry the implementation). |
| 3. **Rewind both:** Restore everything to exactly how it was. |
| |
| ## How to fork conversations |
|
|
| Sometimes you want to try two different approaches to the same problem. |
|
|
| 1. Start a session and get to a decision point. |
| 2. Save the current state with `/resume save decision-point`. |
| 3. Try your first approach. |
| 4. Later, use `/resume resume decision-point` to fork the conversation back to |
| that moment and try a different approach. |
| |
| This creates a new branch of history without losing your original work. |
|
|
| ## Next steps |
|
|
| - Learn about [Checkpointing](../../cli/checkpointing.md) to understand the |
| underlying safety mechanism. |
| - Explore [Task planning](task-planning.md) to keep complex sessions organized. |
| - See the [Command reference](../../reference/commands.md) for `/resume` |
| options, grouped checkpoint menus, and `/chat` compatibility aliases. |
|
|