---
title: "Sessions"
description: "The sitting list, the timeline, and how Assay draws a conversation."
---

A **session** (a sitting) is one harness conversation. `session_id` is the spine. Spend, type, episodes, touches, path-product, and scope all hang on it.

## The list

Dashboard → **Sessions**. Each row is a sitting: type, product / objective, tokens, cost.

Filters:

- principal
- window
- type
- objective
- touches
- who opened it (`initiated=subagent`)
- minimum cost

Episode and touch chips sit beside the primary. Unknown sittings (no objective window) are not hidden. They are unplaced.

The list does **not** need the content key. It is metadata.

## The timeline

Open a sitting. You get the conversation, turn by turn, with per-turn cost joined from the ledger. The header carries the whole sitting's **Tokens / Cost**.

- Human and agent messages are open. Long ones clamp.
- Tool calls fold behind a computed heading (counts and tool names).
- Agent reasoning folds.
- **Subagent messages fold.** A briefing an agent wrote to a subagent is captured with the human role because it is the user side of *that* subagent's conversation. It is not a person. The control **Show human subagent messages** reveals them. They are on the page either way.

An unreadable turn (missing key, shredded, corrupt) is drawn as unreadable. It is not drawn as silence.

## Set type from the page

Click the type value and type. Enter saves. Escape or click away abandons.

- A sitting with no type reads `unannotated` and is editable the same way.
- The write is declared-family. It outranks judge and heuristic.
- Re-typing replaces. Emptying does nothing. Deleting is a different act.
- Minted shares, snapshots, and embedded hosts do not get the writer.

See [Type](/type).

## Share

The share control is top-right of the session page, when sharing is configured. See [Share](/share).

## CLI

```bash
assay transcripts list
assay transcripts show --session <id>
assay turns --session <id>
```

`transcripts show` is the store inspection form. `turns` is the debug timeline. The dashboard is the readable one.
