# History Navigator

> Browse, jump through, and search every Claude session: conversation and tool calls.

The History Navigator turns every Claude session into something you can browse, replay, and search. It reads Claude Code's own session transcripts and presents them as a navigator: a rail of past sessions on the left, the conversation and tool calls on the right.

## How it works

crystl parses the structured transcript Claude Code writes for each session (under `~/.claude`). Those transcripts are **read-only**: crystl reads them on demand and never modifies, copies, or deletes them.

The navigator is **Claude Code-only** for now. Codex and Antigravity CLI record their session history in different formats, so opening the navigator on one of those shards shows a Claude-only notice and `crystl history` returns nothing. Support for other agents' transcripts may come later.

Open the navigator from the gem menu (click the **⋮** on the gem's tab, or double-click its tile in the Crystal Rail) and choose **history**.

## Navigating a session

- The **rail** lists the gem's sessions, grouped by date. Opening from a live shard drops you straight into that shard's current session.
- Drilling into a session shows its **moments**, one per prompt, with a **‹ back** to the session list.
- The right pane has **Conversation** and **Tools** tabs: the dialogue, and every tool call with its input and result (click a tool row to expand the full payload).
- Click a moment in the rail to **jump** the right pane to that point. As you scroll the conversation, the rail highlights the moment you're looking at, so you always know where you are in time.

## Searching

The search box at the top of the rail spans **all of the gem's sessions** at once. It matches both conversation text and tool calls (tool names, commands, file paths, and output) so you can find the session where you ran a migration, or where Claude worked through a bug, even if you only remember a command or a filename. Each result is tagged by kind (prompt, reply, or tool); click one to open that session at the exact moment.

## From the command line

`crystl history` prints a shard's transcript (turns and tool calls) to the terminal. It's handy for an agent to read what happened earlier: after a context compaction, in a fresh shard, or to review a sibling shard's work. Each turn carries its **model, token usage, and duration**, and a **session summary** (total tokens, tool calls, models, wall-clock active time) prints on top, so you can judge a session's cost and context at a glance. Flags include `--tools-only`, `--limit`, and `--json` (full per-turn metadata: usage, model, stopReason, cwd, gitBranch); it defaults to the active shard like `crystl screen`.

## Remote sessions

For a remote (SSH) shard, the transcript lives on the remote host. crystl fetches it over the existing connection and reads it with the same navigator and CLI. No extra setup.

## Session restore

Separately from the navigator, crystl restores your Claude sessions when you restart. The conversation context, approval state, and session position are preserved, so you pick up exactly where you left off, without re-explaining context. Guild members also get session restore when loading [formations](/docs/formations).

Restore **on restart** is currently available for Claude Code sessions; Codex and Antigravity shards open fresh when crystl restarts. Note this is different from [resurrecting a closed shard](/docs/resurrect-shards) (undo-close), which *does* reopen Codex (`codex resume`) and Antigravity (`agy --conversation`) conversations as well as Claude — restart-restore just hasn't been extended to them yet.

---
Source: https://crystl.dev/docs/conversation-history/
