Sessions

Resume past conversations, branch from any point in history, rename sessions, and export them.

Every Tau conversation is a session, saved to disk so you can come back to it. Sessions are stored as append-only JSONL under ~/.tau/sessions/, organized per working directory, so resume flows focus on the project you’re in.

Listing sessions

tau sessions

Each row shows the session id, title, model, and working directory.

Resuming

From the shell:

tau --session <session-id>

From inside the TUI:

/resume            # open a picker of past sessions
/resume <id>       # resume a specific session

The /resume picker has a search field that filters by session name or model. Start typing to narrow the list, then use the arrow keys and Enter (or click) to pick a session.

To deliberately start fresh instead of resuming, use tau --new-session (or /new in the TUI).

When you quit the TUI and the session was persisted, Tau prints a reminder of the exact command to resume it:

To resume this session: tau --session <session-id>

Branching from history (/tree)

A session is a tree, not just a line — so you can go back and try a different path without losing what you had.

Run /tree to open the session tree, then select an earlier entry:

If a summary request fails, Tau falls back to a deterministic summary.

Recovering older sessions

Older Tau versions could leave malformed tool-call history when a run was interrupted. Providers reject that history, so every prompt in the resumed session could fail with a 400 error about a missing tool call or tool output.

Tau validates the active branch during resume and after /tree navigation. It repairs missing, misplaced, duplicate, or orphaned tool results by appending a provider-safe branch while preserving the original JSONL entries. A durable session diagnostic records what changed. Repeating resume is idempotent and does not append another repair when history is already valid.

Renaming

New sessions are automatically given a short name from the first message when Tau can generate one. Tau shows the confirmed message first—including the expanded text from a prompt-template slash command—then performs naming without holding up that transcript update. The name appears anywhere session names are already shown, including the /resume picker and id completions.

Auto-naming makes one high-level provider request. The provider adapter may retry transient failures according to its configured max_retries. If those attempts are exhausted, or the response is not a usable title, Tau does not start another naming request: the session continues normally and uses a short local fallback when possible.

/name My refactor session

Use /name at any time to manually override the automatic name. Tau will not replace a name you set yourself.

Exporting

Export a session to a shareable file:

/export                              # HTML, into the current directory
/export --format jsonl               # raw JSONL
/export --format html report.html    # explicit destination

Or from the shell:

tau export <session-id>                     # HTML (default)
tau export <session-id> session.html
tau export <session-id> --format jsonl

The source can be an indexed session id or a path to a JSONL session file. After a successful /export, Tau shows the destination in the TUI transcript. This status is display-only: it is not saved to session history or sent to the model as context.

HTML exports are self-contained and include two tabs: Transcript preserves the session tree and entries in storage order, while Cache summarizes the active branch’s model requests, prompt caching, output and reasoning tokens, estimated API-rate cost, tool calls, and compactions. Cache charts are interactive—hover for exact values and select a legend item to hide a series—and can be downloaded as static PNG images with white backgrounds. The export follows Tau’s themes: tau-light in light mode and tau-dark in dark mode, with charts recoloring live when you toggle the theme. When /export creates HTML from the live session, it also includes the current system prompt in a separate, collapsed System Prompt section. Review that section before sharing: the prompt may expose project instructions, skill guidance, paths, or other local context. Offline tau export of an indexed session or arbitrary JSONL file omits this section because session JSONL does not persist the prompt.

The system prompt is display-only export metadata, not a transcript entry. Direct JSONL exports and JSONL downloaded from the HTML remain entry-only and do not contain it.

Every transcript entry is a compact accordion row (icon, title, one-line preview, timestamp) that expands to reveal the full content; thinking blocks, tool-call arguments, and tool-result details are nested accordions. The export header includes controls to:

Tool rows are titled Tool: <name> (for example, Tool: read), and the session tree labels tool entries with just the tool name for readability.

Where sessions live

~/.tau/sessions/<cleaned-path>-<short-hash>/

For example, /Users/you/repos/tau becomes something like repos-tau-a1b2c3. The original JSONL is append-only — compaction and branching change the active view, never the recorded history. See Configuration for the exact layout.