Reading the transcript
The transcript is the scrolling part of a conversation: everything you and the agent said, in order. This page covers how it is laid out and how you get around in it when it is long: scrolling, search, pinned messages and links that open a conversation.
What the transcript shows #
Rows run from the oldest loaded message at the top to the newest at the bottom.
- Your messages are labelled You.
- Replies carry no name. Their label shows the model, the reasoning effort when there is one, the relay mode and the time (see Labels).
- Tool activity, thoughts and sub-agents sit inside the reply they belong to. See While a turn runs.
- Event rows are the compact rows tagged relay event. See Watching sessions.
- Agent notes from other sessions are folded into one row; the reply to them shows as usual. See Agent notes.
- Day separators are a full-width line with the date, at the top of the
transcript and again each time the local day changes. The label reads
Today,Yesterday, then a date such asMon, 18 Aug, with the year added for earlier years. - A compaction marker is a full-width line where a Claude or DeepSeek session compacted
its context, for example
Context compacted · 410k → 38k tokens. When the size afterwards is not known it readsContext compacted · was 410k tokens. While the compaction runs it readsCompacting context…. See Compacting a conversation.
Day separators and compaction markers also appear as small dots beside the scrollbar, at their place in the conversation. Hover a dot to see its label. The dots cover the messages that are loaded; a conversation with neither kind of line has none.
Older messages #
A conversation opens on its newest 20 messages. Scroll up and the next 20 older ones load by themselves just before you reach the top, and the view stays on the message you were reading. A Load older messages button at the top does the same when you click it.
Added in 0.9.12 The relay reads only the page you ask for from its database, so opening a conversation and paging back take as long in a conversation of a few thousand messages as in a short one.
Scrolling #
Added in 0.9.11 The transcript moves by itself in two cases only: while you are at its end, and right after you sent a message yourself. Anywhere else it stays exactly where you are reading, whatever lands below: a reply, a relay event, another agent's note, a question, an approval or a plan board. The ⌄ button tells you that something arrived.
Jump to the end when I send a message in Settings → General decides the second case. It is on by default and saved in the browser. Switched off, your own message leaves you where you are as well.
Jump to the latest message Added in 0.9.10 #
A round ⌄ button fades in above the composer once you are about a screen above the end, or as soon as something new lands below you. Once it shows, it stays until you are back at the end.
| The button | Means |
|---|---|
| Plain | You are far from the end; nothing new arrived since you scrolled away. |
| Blue with a count | Added in 0.9.11 That many rows arrived below since you scrolled away, up to 99+. An agent's note and the reply to it count as two rows. |
| Blue with a dot | Added in 0.9.11 A reply below is still being written, so there is no new row to count yet. |
| Amber with ? | Added in 0.9.11 A question or an approval below waits for your answer. |
Screen readers announce the button as Jump to the latest message, with the count added when there is one, and hear New messages below. or A question is waiting for your answer below. when that changes.
- A click scrolls to the end, smoothly when you are up to three screens away and at once when you are further away (and at once if your system asks for reduced motion). The transcript then follows new rows again.
- If you reached an old message from a search result or a pin, the newest messages are not loaded yet. The button then loads the end of the conversation first. See Reading far up.
- A click also switches off a followed section of a running reply (see Following a section).
Reload, switching, rotating #
Added in 0.9.12 The browser remembers, per conversation, the message you were reading, or that you were at the end.
- Switching back to a conversation you viewed in this tab draws it at once as you left it: at the same message, with the older messages you had loaded, and with what was written meanwhile. The relay's fresh copy is merged in when it arrives. At the end, it opens at the end. The page keeps this for the last eight conversations, up to Messages kept per conversation for switching back around your place (200 by default; see Settings).
- A reload brings the last conversation you had open back, opened at the message you were reading with the messages around it. The rest loads as you scroll, up or down.
- Turning a phone, opening the keyboard or resizing the window keeps the message you were reading in place, and keeps you at the end if you were there.
Added in 0.9.11 The text you are reading also keeps its place when the reply you are in the middle of finishes, and when the conversation reloads. Added in 0.9.12 Pictures above your place that load late no longer push it down, also in a browser without scroll anchoring such as Safari. The transcript holds your place while they load, and lets go as soon as you scroll.
Reading far up Added in 0.9.12 #
A conversation opened at a pin, at a search result, or after a reload at the place you were reading, shows the messages around that place, not those at the end. While you read there:
- A message or reply that arrives is not put under what is loaded. It waits, and the ⌄ button counts it.
- Scrolling down loads every message in between, in order, and the waiting ones after them. A reply still being written shows once you are there.
- ⌄ loads the end and takes you there.
- A message you send from there loads the end and takes you to it, where your message, its reply and everything in between show. This happens even when Jump to the end when I send a message is off.
The view is not replaced by the newest messages when the page refreshes, until you reach the end in one of these ways.
Search #
🔍 Search messages in the conversation header opens a search across the messages of all your conversations, not only the open one. There is no search inside a single conversation.
- Type at least 2 characters. Results appear after a short pause, or at once with Enter. The box says Type at least 2 characters to search message history. until then.
- The search reads the text of messages, not conversation titles. Case does not
matter. Every word you type must appear in a message, in any order, and each
word matches the start of a word (
deployfindsdeployment). Up to 12 words count. - Archived conversations are searched too; deleted ones are not. The best matches come first.
- Each result shows the conversation title, the role (
userorassistant), the time and a snippet with the match marked. Results load 40 at a time; scroll the list for more. - A click closes the search, opens that conversation around the message, and scrolls to it with a short highlight. A message inside a folded agent exchange opens the row first.
- Escape or the close button hides the search and keeps your query and results for the next time you open it. The clear button empties them.
To find a conversation by its title, use the filter above the list. See The conversation list.
Pinned messages Added in 0.9.9 #
A pin is a bookmark on a message in a long conversation.
- Hover a message, or tap it on a phone, to show Pin next to Hide. A pinned message is marked 📍 Pinned and offers Unpin.
- Once a conversation has pins, a 📍 button with their count appears in its header. It opens 📍 Pinned messages: the pins in conversation order, each with who wrote it (You or Agent), the time and a short preview.
- A click on a row closes the list and scrolls to the message, also when it is far up in the history. If the message is gone, a note says That message is no longer in this conversation. 🗑 in a row unpins it.
- A conversation holds at most 100 pins. At the limit, Pin answers This conversation already has 100 pinned messages. Unpin one first.
- Pins are kept on the relay, so every device that has the conversation open shows them at once. The shared view does not show them.
- A conversation continued with
/starts without pins; they stay with the archived original. See Compacting a conversation.compact
Queued messages and the message of the running turn have no Pin button until they are settled.
Buttons on a message #
A message has no menu. These are all the buttons it can carry:
| Button | Where | What it does |
|---|---|---|
| Pin / Unpin | Next to Hide, on hover or tap | Bookmarks the message. |
| Hide / Unhide | Next to Pin | Keeps the message out of the shared view; you still see it, marked Hidden from shared viewers. |
| Cancel | On a queued message | Takes it out of the queue before it is picked up. |
| Stop | On the running reply | Stops the turn. |
| Resend | On a steered message that a Stop cut off | Sends it again as a new turn; it then reads Resent on every device. |
| Retry | On a note saying a worker could not be started, once the relay has stopped trying | Starts the conversation's worker again. |
Code blocks in a reply carry their own copy button. There is no button to copy a whole message or to quote one into your next reply.
Labels, times and usage #
The line under a message shows the time. Today it is the time of day; on an earlier day it is the date and the time. The format follows your browser's language.
Your messages show You and the relay mode. A reply's line adds, in this order, where they apply:
- the model, and the reasoning effort when it is not none,
- the relay mode, such as agent,
- auto when OAR chose the model,
- background continuation when the agent carried on by itself after a background task,
- ran on a provider, when the turn ran on another provider than the conversation's,
- a usage figure.
Only GitHub Copilot turns carry a usage figure: the credits the turn used
(for example +1), the share of the month it used in brackets, and month 62.
when the plan figure is known, with stale when that figure is old. See
GitHub Copilot.
Links that open a conversation #
Two addresses open one conversation when the app loads:
?conv=<id>is what the origin badge on an agent's note links to when the note came from a paired relay.?push_is what a tap on a push notification opens.conv=<id>
The app reads the parameter once and removes it from the address bar, so a reload does not jump back to that conversation.
Text size #
The transcript follows the Text scaling setting (see Text size), from 50% to 150%. Ctrl (or Cmd) with the mouse wheel and a two-finger pinch change it too. See Settings.
By provider #
The transcript works the same for every provider. Only the usage figure under a reply differs (see Labels, times and usage); context compaction markers come from Claude and DeepSeek sessions.