# The transcript

Opening a card shows its transcript in a panel beside the board. It shows your messages, the
agent's replies as Markdown, its thinking, each tool it runs with its output or the lines it
changed, its questions, what it's doing while it works, and quiet rows for status changes, errors and
notes.

Creating sessions, the board and its cards are in
[Sessions and the board](/docs/sessions-and-board/), and the composer you send from in
[The composer](/docs/sessions-composer/).

## The panel's header

The header shows the title and the status, with the bell, **Tell me when it's done**, and buttons
for **Export the transcript**, **Fork**, **Delete**, **Archive** and **Close the transcript**. A
button shows only where the session's agent can do it: Gemini CLI has no **Fork**. One the session
can't do now, such as **Fork** while a turn runs, is dimmed, and its tooltip says why. Under them
are where the session works, named as its card names it, after its tree or its home: the repository
and branch or commit, or the folder. Hover over it for the folder's full path, and click it to show
the folder in Finder, Explorer or your file manager. At the right end are the tokens used, ↑ in and
↓ out (hover over them for the words, which name the part read from the agent's cache and the part
spent thinking, where it counts them), with the cost where there is one (see
[Insight and code workflows](/docs/insight-and-code-workflows/#context-usage-and-limits)), and the
agent.

- **Rename session:** the pencil that shows beside the title when you point at it opens it for
  editing. Enter saves and Escape cancels. A title holds up to 120 characters. `/rename` with a
  title renames the session; alone, it opens the title for editing.
- **Fork** starts a new session from the conversation as it stands now, in the same folder. Its
  transcript holds the original's conversation, then a row where the fork began, naming the session
  it was forked from by its title as it is now, or "Forked from another session" once that one is
  deleted. Its card lands first in the board's **Sessions**, its first row or column, and it opens
  in the panel. A worktree session's fork shares its worktree. If the original conversation was
  compacted after the fork, the fork says so and asks you to fork it again. Gemini CLI can't fork.
- With Claude Code and Codex, **Branch from before this prompt**, beside one of your prompts, starts
  a new session from before that prompt, and this one stays as it is (see `/branch` in
  [Conversation commands](/docs/conversation-commands/)).
- `/cd` moves a session to another folder, and the agent carries on with the same conversation
  there; the transcript says "Moved to" the new folder. `/cd` works with Claude Code and Codex. What
  it can't move, and when, is under `/cd` in [Conversation commands](/docs/conversation-commands/).

## What the transcript shows

Only your messages and the agent's replies sit in bubbles. Everything else that isn't for you to
read, such as the agent's thinking, the tools it runs, its subagents and notes, is a light row with
no box: an icon, one line, and a status at its end. Permissions, questions and plans keep their
cards, as they wait for you.

- A row that opens starts with a chevron, turned down while it's open, as thinking's is. A row with
  nothing to open keeps the chevron's room empty, so every row's icon lines up.
- Scrolling down through an open row, its first line stays at the top of the transcript, on the
  panel's own colour with a little room around it and the panel header's line under it, while the
  rest scrolls on beneath it, fading out toward that line as it does under the header. Once you've
  scrolled past its end, a row you opened closes, so scrolling back up finds it closed, and the
  focus, if it was in the row, goes to its first line. A row that opens by itself, as an edit's
  changes and an answered question do, stays open, and so does a row the agent's newest words carry
  up while you're at the transcript's end. Clicking that first line while it's held at the top
  closes the row and brings the transcript back to the row's top.
- A row's icon, chevron and status sit level with its first line, however far its words wrap.
- What the agent changed or handed on is in full white: an edit, a file written, moved or deleted, a
  skill and a subagent's work. Reads, searches, fetches, commands, notes and messages to or from
  another session stay grey, as thinking does. A file a row's line names is a link, in the link colour, whatever
  its kind, except in a subagent's own rows. A failure keeps its own colour.

- Your messages, with the files you sent as chips at the top, above any words, as the message box
  shows them (see [Attaching files](/docs/sessions-attachments/)), and the row a reply quotes above them (see
  [Replying to a row](#replying-to-a-row)). Hovering over a message shows its actions, and each
  shows as the focus reaches it: **Reply**, and **Branch from before this prompt** and **Rewind to
  before this prompt** where the agent offers them; one that can't be used now is dimmed, with the
  reason in its tooltip. A message another session sent is a row instead: a message from that
  session, by the title it had when it sent it, then the start of the message, opening to the whole
  message and **From** that session, which you click to open it. Hovering over it shows the same
  actions (see [Sessions messaging each other](/docs/sessions-messaging/)).
- The agent's replies, as Markdown: headings, lists, tables, and code coloured as Files colours it.
  A code block's **Copy code**, at its top right while you hover over it or move the focus there,
  copies its code alone, without the fence, its language or its line numbers. Raw HTML isn't drawn,
  and an image shows as its description. A link to a page opens in your browser, and only when it's
  https. A link to a file opens in Moontors, wherever the file is: an image, an SVG, a font, a PDF,
  a table or a text file up to 5 MB in the preview over the transcript (see
  [Opening a file](/docs/sessions-attachments/#opening-a-file)), at the line the link names; any other
  file, such as a video, in Files, opened in its tab with the tree open down to it and the file
  selected, when it's inside the session's folders, and otherwise shown in your file manager, never
  opened. Moontors opens only a file the session's agent linked in its words, or one its tools
  named, and never one on a network share or a device. Any other link does nothing. What one of
  Claude Code's own local commands prints shows as a reply too.
- Thinking: a row that says **Thinking…** while the agent thinks, then **Thought for** how long it
  took. Click it to read the thinking as the agent sums it up: Moontors asks Claude Code and Codex
  for summaries of their thinking, and Gemini CLI sends its thoughts. Codex signed in with ChatGPT
  sums up its thinking only at times, so its row can hold no words.
- Tools, subagents and background tasks, each a row of its own where it began (see
  [Tools and subagents](/docs/sessions-tools/)).
- While a turn runs, the transcript ends in one row saying what the agent is doing, with the time it
  has taken so far; only a message the agent hasn't taken in yet, or what waits for the turn's end,
  comes after it. When the newest row is still under way, that row says it: thinking shows its time
  where its status sits, with the size of the thinking where Claude Code counts it, and a tool or a
  subagent shows its time after its status, as 12s after **Running** (after **Pending** for a Claude
  Code call). Otherwise a row of its own says **Writing…** or **Waiting for you** when a question, a
  plan or a permission waits, both with no time, or names the tool or subagent still running further
  up with its time, or says **Working…** with the turn's time.
- Permissions, questions and plans, which wait for your answer (see [Permission
  modes](/docs/permission-modes/) and [Questions and plans](/docs/questions-and-plans/)).
- Quiet rows for what happened to the session, most of them a thin rule across the transcript with
  their words in the middle:
  - a change into or out of waiting, such as **Running** → **Waiting for you**;
  - **Stopped**, with why when it wasn't you: "Stopped: the agent crashed", "Stopped: the daemon
    stopped mid-turn" or "Stopped: signed out";
  - a change of model or effort, and of permission mode;
  - "Context cleared", a rewind, "Compacting the conversation…" then "Conversation compacted", or
    "Conversation compacted automatically", with the tokens before and after where the agent says
    them, and **Summary** to open where it sent one (or "Compaction didn't finish");
  - a goal set, changed or cleared, and a turn a goal or a loop starts by itself (see
    [Conversation commands](/docs/conversation-commands/));
  - errors, each led by **Error**, some with **Sign in** (see [Signing in](/docs/sign-in/));
  - notes from the agent or from Moontors, each a light row with an info icon, such as "The agent
    stopped: its reply reached the length limit.", "The agent stopped: it reached its step limit for
    one turn.", "The agent declined to continue.", "The agent's saved conversation was gone, so it
    started a new one.", that the instruction files the agent reads, as CLAUDE.md, are longer than
    recommended for the model, that the agent's moderation blocked your message, its reply, a tool
    call or a tool's result, as Codex's can, or "The agent warns:" followed by the agent's own
    words, as Claude Code's and Codex's warnings, suggestions and notes are, such as what a hook
    says;
  - a turn the agent's safety check stopped, with the ways it offers to continue (see
    [When the agent's safety check stops a turn](#when-the-agents-safety-check-stops-a-turn));
  - while Codex tries again by itself, one note each try updates, saying why: "The agent lost its
    connection — reconnecting…", "The agent couldn't connect — retrying…", or "The agent's service
    is overloaded — retrying…", as when the service holds back capacity, then a note once it goes
    on, as "The agent lost its connection and reconnected."
- Unrecognized events: what the agent sent that Moontors doesn't know shows as a count of
  unrecognized events; open it to see what was sent. Once a later Moontors knows it, older Claude
  Code and Codex sessions show it as what it is too, wherever it can be read on its own.

## When the agent's safety check stops a turn

Codex's safety check can stop a turn it judges could lead to harm in biology or cybersecurity, as
Codex's own terminal does.

- While it looks for safer ways to continue, the turn's last row says "Finding safer ways to
  continue…".
- Once the turn ends, after the error Codex gives, a row says "The agent's safety check stopped this
  turn.", then what the turn touched on, in Moontors' own words, such as "It touches on access to
  accounts or systems beyond what's allowed."
- Under it, **Ways to continue** offers the safer requests Codex suggests, up to three, each by its
  own name, with the words it sends shown when you point at it. Choosing one starts a new session
  from before the stopped turn, as [`/branch`](/docs/conversation-commands/) does, and sends those
  words there, as written; this session stays as it is.
- The ways are offered while the stopped turn is still the session's latest: a later message,
  `/clear`, a rewind, a compaction or a fork takes them away, and the row keeps its words alone.
- The phone shows the row, and its ways, as the window does.

What Moontors leaves out is under [Known limits](/docs/known-limits/#sessions).

## A turn's footer

A turn that finishes ends with a footer; a stopped or failed one ends with its Stopped or error row
instead. The footer shows:

- how many files the agent and its subagents edited in the turn, with the lines added and removed,
  a file both edited counted once: click it for each file, shown from the session's folder as a
  tool's row shows it, its lines added and removed at the right;
- how long the turn took and when it ended, shown when you hover over the turn's last reply or its
  footer, or move the focus there. Times follow your system's 12- or 24-hour clock. A turn that
  ended on an earlier day says the day too, counted in your own calendar days and always in days:
  yesterday at 1:21 AM, or 46 days ago at 1:21 AM. It moves on at midnight with the transcript
  open, or as your computer wakes;
- **Copy reply**, the copy icon beside that time on a turn with a reply: it copies the turn's reply
  as the agent wrote it, without its tools, thinking or questions. Its icon turns to a check for a
  moment. Words you select in the transcript copy with a right-click's **Copy**.

## Replying to a row

To answer one thing in the transcript, a reply of the agent's, your own message, a tool's row or a
note, hover over its row, or move the keyboard's focus to it, and choose **Reply**: at the row's top
right, or beside your own message with its other actions. A click in the row leaves it hidden once
the pointer goes. Or select words in a row and choose **Reply** under them. Either way, the focus
goes to the message box, after any words you've typed. A permission, a question or a plan still
waiting for you is answered rather than replied to, so it offers **Reply** only once it's answered.
Files sent alone have no words to reply to, and a turn's footer isn't replied to either.

- The row's words, a command named in the agent's own words with what it was given, the command
  among it, or the words you selected, show at the top of the message box as a quote, above any
  files and your words, two lines of it at most, with an X to take it off. Escape takes it off too.
  There's one quote at a time: another **Reply** takes its place.
- What you send then replies to it. The agent reads the quote first, as a Markdown quote, then your
  words, so it knows what you mean even once the conversation has been compacted. A reply needs
  words or files of its own, and a command can't be one.
- A quote keeps up to 2,000 characters of a row, cut there with an ellipsis.
- Your message shows its quote above its words, dimmed. Click the quote, or press Enter on it, to
  scroll to the row it quotes, or to the subagent's row that holds it, which is marked for a moment
  and takes the focus, so a screen reader reads it. It keeps the focus once the mark is gone: the
  arrow keys scroll on from there, and Tab goes on from it. Followed by a click, it shows its focus
  ring at your next key. Once that row is gone, as after a rewind, the quote leads nowhere.
- A reply sent while the agent works goes as any message does then (see
  [Sending while the agent works](/docs/sessions-composer/#sending-while-the-agent-works)).
  Rewinding to before it brings back its quote with its words.
- The exported transcript shows a reply's quote above its words.