# Sessions

> Inspect coding-agent conversations, plans, commands, changes, pull requests, reviews, and cloud desktops, and propose edits safely.

Sessions is the inspection record for coding agents on your account. It brings together sessions reported by Claude Code and Codex, work started in Silos, Automation runs, and Estelle CI runs.

Open a session to read its conversation and plan, inspect commands and changes, review pull requests, or propose a file edit.

## Capture your sessions

Install the Estelle plugin for Claude Code or Codex, or run `estelle install-hooks` with the CLI. In Codex, also run `/hooks` and trust Estelle's hooks, then restart the agent. See [Install Estelle](https://docs.fatelabs.ca/install).

Sessions started by Estelle appear without a local plugin. A local session appears only after its hook reports it and only to the account that owns that connection.

## Find a session

The board uses three lifecycle columns:

| Column | Meaning |
|---|---|
| **Running** | The agent is working. |
| **Waiting for review** | The agent needs input or approval, or is ready for you to review. |
| **Ended** | The session completed, failed, or was cancelled. |

Sessions with no recorded lifecycle appear separately under **No verified state** rather than being guessed into a column. **Earlier runs** contains read-only diary records, mostly from before session streaming. Older ended sessions are hidden until you choose **Show**.

Right-click a session for **Open**, **Rename**, **Copy link**, **Copy ID**, **Ask Estelle about this**, or **Hide**. Hide affects only this browser. **Ask Estelle about this** starts a question with that session as context.

## Inspect the work

The conversation sits beside the work pane. Read agent messages alongside tool calls and their output, edits, commands, tests, plans, and delivery receipts. Scroll back for earlier events; an empty area means nothing was reported there, not necessarily that the agent did nothing.

| Tab | What to inspect |
|---|---|
| **Git** | Changes, pull requests, Prism, a guided tour, and commits. |
| **Editor** | Changed files or other files available from the session or indexed repository. |
| **Desktop** | The cloud desktop for a session bound to a Silo, or its last recorded screenshot when available. |
| **Terminal** | The current cloud terminal, or the commands and output recorded from another environment. |
| **Files** | The repository file list reported by the session, with changed paths marked. |

A local session has no cloud desktop or live terminal. Its Terminal tab is a read-only record of reported commands and output.

## Review changes and pull requests

In **Git**, the **Diff** view identifies whether it is showing the session's own changes or a selected pull request's diff from GitHub. Use unified view to add notes on a line, or split view to compare old and new code. Mark files **Viewed** as you finish them.

The other views answer different questions:

- **Prism** shows recorded tests and checks, GitHub checks when available, Estelle CI for the pull request's head, and Prism's published review.
- **Tour** provides a walkthrough of the change.
- **Commits** lists commits and their authors. If there are no commits, the changes may still be uncommitted in the working tree.

When a session has several pull requests, pick one from the list to inspect its own diff, checks, review, and commits. Use the filter when the list is long.

Recorded checks and GitHub checks are separate evidence. A recorded test result describes what the session reported; GitHub's read describes the checks currently attached to the pull request.

### Fix a finding or failed check

Choose **Fix with AI** on a Prism finding or failed check. Read the exact task, repository, target branch, and estimated plan usage before choosing **Start**.

This starts a Codex fix in a new Silo. For an open pull request, its commits go to that pull request's branch; for other work, the fix opens a new pull request. A started fix is not yet a result: follow its new session and inspect what it changed.

You can also select line notes and Prism findings to send as one message. A running cloud agent receives them directly; otherwise Estelle offers a new fix run.

### Merge deliberately

For an open pull request, choose **Squash and merge**, **Merge**, or **Rebase and merge**, then confirm. The merge is pinned to the head commit shown. If the branch moved after that read, GitHub refuses rather than merging code you did not review. Branch protection and merge permission still apply.

## Propose a file edit

Open a file from **Editor** or **Files**. Editing depends on what is available:

- On a running Silo you own, the file opens live. **Save** writes back to that machine, and a changed-file conflict is reported instead of overwriting someone else's newer work.
- Elsewhere, a complete file from the session or indexed repository can be edited as a proposal. **Propose change…** offers a downloadable `.patch` or **Open a pull request…**, which starts a confirmed fix run.
- A file shown only as changed lines stays read-only because there is no complete base file to edit safely.

An indexed file may be older than the repository's current state. Git refuses a patch that no longer applies rather than overwriting newer work. A pull-request proposal arrives only after its fix run finishes; it is not created when you click **Propose change**.

## Follow up with the agent

For a session with an available cloud machine, use **Add a follow up…**. The receipt says whether the message or new run was confirmed. The session's later activity shows what the agent did with it.

A session mirrored from Claude Code or Codex on your own computer is read-only here. Continue it in the original client, or use a [room](https://docs.fatelabs.ca/rooms) to share context and decisions.

## Limits

**Limit:**

Sessions shows what was reported. Missing hooks, untrusted Codex hooks, or a CLI key belonging to a different account can make a session absent. See [Troubleshooting](https://docs.fatelabs.ca/troubleshooting).

- Machine tabs require a session bound to one of your Silos. They do not turn a local session into a cloud session.
- Files and diffs can be unavailable or partial. The page labels those cases rather than proving that no changes occurred.
- Merging and saving are explicit actions. Starting a fix or pull-request run never means the change has already landed.

## Related

- [Install Estelle](https://docs.fatelabs.ca/install): Set up supported native plugin hooks and verify acknowledged session entries.
- [Orchestra](https://docs.fatelabs.ca/orchestra): Review plans and control live runs.
- [Prism](https://docs.fatelabs.ca/prism): Understand pull-request review findings.
