Skip to content

Desktop transcript

Read a conversation in the desktop app, search it and act on a message.

The transcript shows your messages, the agent's replies, its thinking, its tool calls and their results. This demo plays a recorded session. Switch the density to compare.

Transcript
Rate limit the chat endpoint: 20 requests a minute per IP, and tell clients how long to wait when it trips. The chart shows who hit it last night.
    • The chat route now takes a token from a per-IP bucket: 20 a minute, with bursts of 5. Over the limit it answers 429 with a Retry-After header, so clients know how long to wait.

      All 44 server tests pass.

      Opus 5.538s4$0.0717k1.1k
    Document it in docs/server.mdx, then commit.
      • Documented under Limits in docs/server.mdx and committed as 83dfea7.

        Opus 5.552s3$0.0912k980

      Density and display#

      Compact is the default. It folds the work of each exchange into one row under your message, above the reply. Click the row to unfold it. Full gives every step its own row.

      Density and the other display settings are in Settings › Interface › Conversation and Settings › Interface › Tool activity. They stay on this computer, apart from the TUI (display settings).

      RowHow it rendersSetting (Settings › Interface)
      ThinkingThe model's reasoning, in a foldThinking blocks
      Tool callA one-line summary (Read src/app.ts), the full input, or nothingTool calls display
      Tool resultThe output under the call. ! shell output shows its last 10 lines until you expand it.Tool outputs, Full shell output
      Grouped callsOne row for all the calls of an exchangeGroup tool calls
      EditA diff of the change, with added and removed linesEdit diffs
      SubagentThe child's run, collapsed until you open itCollapse subagents
      Run receiptA line at the end of each runRun receipt
      Cache noticeA notice row in the transcriptCache notices

      Row icons (Settings › Interface › Conversation, on by default) puts an icon next to each message and step: you, the agent, and how each step went. Turn it off for a plainer conversation. The rows then start at the left edge, and a step's own line says how it goes: its name shimmers while it runs, and a red cross follows it when it failed. The setup wizard offers it too, under More options in its Conversation step. The Focused conversation preset turns the icons off, and Balanced and Detailed turn them on.

      This live window runs the sidebar and the chat column of the app with a scripted agent. Each switch redraws the chat the same way as Settings › Interface.

      Tool calls display
      Show tool calls as a summary, their full input, or not at all.
      Transcript density
      Full shows every step. Compact folds each exchange's work into one row.
      apiRate limit the chat endpoint
      Rate limit the chat endpoint: 20 requests a minute per IP, and tell clients how long to wait when it trips. The chart shows who hit it last night.
        • The chat route now takes a token from a per-IP bucket: 20 a minute, with bursts of 5. Over the limit it answers 429 with a Retry-After header, so clients know how long to wait.

          All 44 server tests pass.

          Opus 5.538s4$0.0717k1.1k
        Document it in docs/server.mdx, then commit.
          • Documented under Limits in docs/server.mdx and committed as 83dfea7.

            Opus 5.552s3$0.0912k980

          The Diffs panel shows the same edits file by file.

          Diagrams#

          When a reply holds a Mermaid code block (a fence that starts with ``````mermaid``), the transcript draws it as a diagram. Flowcharts, sequence, state, class and ER diagrams, Gantt charts, pie charts and more are supported. The diagram uses your theme: nodes, lines, text and chart colors come from the same colors and fonts as the rest of the app. It changes with the theme, light or dark, with no redraw.

          • The buttons in the top-right corner show when you point at the diagram. The code button shows the Mermaid source, with syntax highlighting in your code theme. Click it again to see the diagram. The copy button copies the source.
          • A diagram wider than the column shrinks to fit. The zoom buttons, next to the code button, zoom in and out. Fit diagram goes back to the whole diagram. You can also pinch, hold Cmd and scroll, or double-click. Drag to move around a zoomed diagram. Scrolling without Cmd scrolls the conversation.
          • While the reply streams, the diagram grows with it: it draws again a few times a second, from the part that has arrived. A line that is not complete yet keeps the last drawing. Zoom is available when the block is complete.
          • If the source has an error, the block shows the code, with the reason and the line under it.
          • Diagrams never load images or open links from the source.

          To show these blocks as code, turn off Settings › Interface › Conversation › Diagrams (on by default). The terminal app always shows the code.

          Each request to /chat goes through the limiter first:

          Long conversations#

          The app loads the latest part first, then earlier pages until the window is full. Scroll up or click Load earlier history for more. While a run streams, the view stays at the bottom until you scroll up. Settings › Interface › Conversation › Keep scroll position (on by default) reopens each conversation where you left it.

          In a messageDoes
          File chipOpens the file in the Files panel or your editor, per Settings › Interface › Files & editor
          Commit, pull request, #123, linkHover for a card with its details, such as a commit's subject, author and size. Links show the site's icon.
          # chat referenceHover for the other session's title, project, model and size
          Skill and command chipsHover for the description
          Extension referencesText that an installed extension recognizes, such as a ticket id, becomes a chip
          ImagesClick to open them full size
          Generated imagesA generate_image call shows a frame for each image while it runs. Each image fades in when it arrives. Click the path under it to open the file (Images).
          Video and audioPlay inline, from tool results

          Right-click a chip or badge to copy it, add it to the prompt or open it, plus any actions extensions add.

          While a run goes#

          A chip in the composer card shows 1m 29s, 72.2k, 41 tok/s, ~$0.123: elapsed time, tokens, tokens per second while text streams, and cost so far. ~ marks an estimate. A narrow window drops the rate, then the cost.

          When the app retries a failed provider call, a retrying n/m pill appears. If the call belongs to a sub-agent, the pill names it.

          In compact density, the work row under your message says what the run is doing. It reads Working, then Waiting for the model when nothing has moved on screen for a moment, or Retrying 2/3 during a retry. Once a wait or a retry passes five seconds, a badge after the words shows how long it has lasted. A model stream that goes silent for 5 minutes is retried, then moved to the next model of the chain.

          A run that fails or that you stop ends on one quiet line: Stopped and the reason, or Stopped by you. When that line ends the conversation and no run goes, Continue asks the model to go on, and Retry sends your message again when the run had done nothing yet.

          Act on a message#

          Right-click a message or a reply:

          ItemKeyDoes
          Copy selectionCopies the text you selected in that message, when there is some
          Copy messageCCopies the whole message
          Fork from hereFStarts a new session from this point
          Edit message (on your message)ECuts the history just before the message and puts its text and attachments back in the composer. Send it again to rerun it.
          Rewind to here (on a reply)RKeeps the history up to and including this reply, and drops the rest
          Delete turnDRemoves the turn
          Sent ageWhen the message was sent

          Edit message, Rewind to here and Delete turn are off while a run goes. Stop the run first. What a fork keeps and what deleting a turn changes: sessions.

          Control S enters select mode:

          KeyDoes
          Up Arrow Down ArrowPrevious or next message
          ReturnOpens the turn's details: Copy, Fork, Edit its text, Delete
          CCopies it
          FForks from it
          EscapeLeaves select mode

          Search the conversation#

          Open withSearch box
          Command FA Find in conversation box over the transcript. Files, Diffs and the editor keep Command F for themselves while they have the focus.
          ? as the first character of an empty composerThe composer turns into the search box

          Return and Shift Return jump to the next and previous match. Escape, or Backspace on an empty composer search, closes it.

          Reference#