<!-- Markdown mirror. Canonical: https://empryo.com/docs/tools/sessions -->

# Sessions

> Empryo saves every conversation as you go. Resume a session by id, export it as markdown or JSON, or move it to another machine with its checkpoints.

Every conversation is a session. Empryo saves it as you work, so you can close the app and pick up the same conversation later, export it, or move it to another machine.

Sessions are saved per project, in the `.empryo/sessions/` folder of that project. Each session is written to one file that grows as the conversation goes on, so if Empryo quits unexpectedly, you can resume from what was already saved.

## Resume

In the terminal UI, press `Ctrl+P` (or run `/session history`) to open the session picker. Type to filter, pick a session and continue where you left off.

From the command line:

```bash
empryo --headless --session <prefix> "now add tests"
```

You only need the start of a session id: `abc` finds `abc123…`. If more than one session starts with the same letters, Empryo tells you instead of guessing.

## Reopen a closed tab

Use `/tab reopen` in the desktop app or terminal UI. It also appears in slash-command autocomplete. It restores the most recently closed tab in the current session; repeat to restore earlier tabs. Both apps keep the last ten recently closed tabs while they are running.

On desktop, press `⌘⇧T` on macOS or `Ctrl+Shift+T` on Windows/Linux, or right-click a tab and choose **Reopen closed tab**. In the terminal UI, use `Ctrl+Shift+T` if your terminal forwards that key combination. `/tab reopen` works when the terminal captures the shortcut.

### See and restore every tab in the session

In the terminal UI, `/tabs` opens a panel with every tab in the current session: open tabs first, then closed ones, newest first. Type to filter by name. Press Enter on an open tab to switch to it, or on a closed tab to restore it with its conversation, model, mode and settings. Unlike `/tab reopen`, it can bring back any closed tab, not only the last one, and it still works after you quit and resume the session, because closed tabs are kept in the session log (the last 25). When ten tabs are already open, closed rows say so; close a tab first.

Closing a tab stops its running turn. Reopening does not restart that turn. Clearing a conversation is different from closing its tab: reopening is not an undo for `/session clear`. To return to an older saved session, use `/session history`.

## Saving

Sessions save automatically after every turn. There is no save button.

| Command | What it does |
|---------|--------|
| `/session new` | Start a new session (the current one is kept) |
| `/session rename` | Rename the current session |
| `/session clear` | Clear the chat history |

## Export

```
/session export markdown
/session export json
/session export clipboard
/session export all          full diagnostic dump (prompt + tools)
/session export api          toggle per-step API request logging
```

Exports are written to the project's `.empryo/exports/` folder. `clipboard` copies the chat as markdown instead. `all` and `api` are for troubleshooting: they include much more detail than a normal export.

## Portable bundles

A bundle packs a whole session into one `.empryo-session.tar.gz` file: the conversation and everything saved with it. Copy it to another machine or another checkout of the repository, import it, and you can resume it there like any other session.

```
/session bundle                       export this session (to .empryo/exports/)
/session bundle path/to/out.tar.gz    export to an explicit file
/session bundle import <file>         import a bundle into this project
```

Importing never overwrites an existing session. If the id is already taken, the imported session gets a new id. Files in the archive that do not belong to a session, or that try to write outside the sessions folder, are rejected before anything is written.

## Import from other tools

In the desktop app, `/import` brings in past sessions from Claude Code, Codex and OpenCode.

## Checkpoint tags

Sessions keep their [checkpoints](/docs/tools/checkpoints), which are stored as git tags. When you resume a session, its undo history comes back with it. When you delete a session, its checkpoint tags are deleted too.

## Shortcuts

These are for the terminal UI.

| Key | Action |
|-----|--------|
| `Ctrl+P` | Browse sessions |
| `Ctrl+B` / `Ctrl+F` | Step back and forward through checkpoints |

## Multiple tabs

Each tab in a session has its own messages and its own checkpoint history. Tabs are saved and restored with the session.
