> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orcapods.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Workbench, Chat & Compare

> Run an agent against a prompt and inspect every streamed step — in Workbench, Chat, or Compare mode.

The Workbench is the primary interactive surface in Orca: pick an agent, send it a prompt, and watch every step stream in live. One screen offers **three modes** via a segmented control at the top.

<Tabs>
  <Tab title="Workbench">
    The full inspector — command bar, transcript, timeline, and per-event detail. Send a prompt with **⌘/Ctrl+Enter**.
  </Tab>

  <Tab title="Chat">
    A condensed conversation view of the same run, rendered as bubbles. Send with **Enter**.
  </Tab>

  <Tab title="Compare">
    Run one prompt across **two agents side-by-side** to compare their behavior and output.
  </Tab>
</Tabs>

## Running a prompt

<Steps>
  <Step title="Pick an agent">
    Choose a profile from the **Agent picker** in the command bar, or select one of the agent cards on the empty canvas.
  </Step>

  <Step title="Pick or start a session">
    Use the **Session picker** beside the agent picker to continue an existing [session](/concepts/sessions) or start a new one. The session carries conversation state across runs.
  </Step>

  <Step title="Type a prompt and send">
    Type into the composer and send — **⌘/Ctrl+Enter** in Workbench, **Enter** in Chat. Use the **starter-prompt** shortcuts to drop in a ready-made prompt, and **Arrow Up / Arrow Down** to walk your prompt history.
  </Step>

  <Step title="Watch it stream">
    The [run](/concepts/runs) streams live over SSE. If you reload the page mid-run, the Workbench **reattaches** to the in-flight stream.
  </Step>
</Steps>

You can **cancel** an in-flight run at any time. If cooperative cancellation has not completed after six seconds, the disabled **Cancelling…** control changes to **Force stop**. Force stop briefly waits for cancellation to release the session claim normally, then steals it only if the run is genuinely stuck, and marks the run cancelled. The resulting toast distinguishes a forcibly released stuck session and reports any best-effort termination warning codes.

Every run also has a **shareable permalink** — the agent, session, and run are encoded in the URL params, so you can paste a link and land a teammate on the exact same view.

## Workbench layout

### Command bar

* **Agent picker** and **Session picker**, plus a shortcut to start a new session.
* Live **session status** and **run count** for the selected session.
* **Sandbox** and **VFS** chips showing whether a [sandbox](/concepts/sandboxes) and virtual filesystem lease are active. Hover a chip for its full identifier or mount details.

### Transcript and Debug

Two tabs switch the main panel between the human-readable **Transcript** and a raw **Debug** view.

* User and agent messages appear as compact one-line previews, grouped under run headers with status, start time, duration, and token totals. Each row shows token, duration, and elapsed-time metadata; select a message to read its full Markdown in the detail panel.
* Tool events show their status, readable name, identifying argument, token count, duration, and the first line of a prose result field when one is available. Structured JSON without a prose field stays in the detail panel instead of appearing in the compact row. Select a tool, progress, error, or usage event to inspect its full payload.
* **Kind-filter pills** narrow events by kind: **user**, **agent**, **tool**, **error**.
* **Event search** filters the transcript by text.
* **Export** dropdown saves the transcript as **Markdown** or **JSON**.

### Timeline

The full timeline scrubber and its controls remain visible above the transcript:

Events appear in **Input**, **Model**, and **Tools** lanes, separated by faint dashed guides. Each span is colored by event kind and reflects its recorded duration; selecting a span opens that event's detail panel. Transcript search and kind filters dim non-matching spans without removing them from the timeline.

For older sessions, long quiet periods are compressed into fixed-width break markers so active runs remain readable. Time labels, hover targets, and brush interactions still map to the actual session timestamps across each break.

| Control         | What it does                                              |
| --------------- | --------------------------------------------------------- |
| **Brush**       | Drag to scope the transcript to a time window.            |
| **Follow-live** | Keep the view pinned to the newest events as they stream. |
| **Jump-to-run** | Snap to the start of a specific run.                      |

Selecting any event opens a **per-event detail panel** beside the transcript. Structured objects and arrays render as a collapsible tree, with long strings expandable in place and a copy control for the complete payload. Close the panel with its close control or **Esc**.

## Chat mode

Chat mode renders the same underlying run as condensed **conversation bubbles** — a cleaner surface when you want the dialogue without the event-level detail. Send prompts with **Enter**.

## Compare mode

Compare mode runs a single prompt against **two agents at once**, side by side. Pick each agent and session from the comparison command bar, then use the shared composer to send identical input to both.

## Related

<CardGroup cols={3}>
  <Card title="Runs" href="/concepts/runs">
    What a run is and how it streams.
  </Card>

  <Card title="Sessions" href="/concepts/sessions">
    How session state persists across runs.
  </Card>

  <Card title="Agents" href="/dashboard/agents">
    Create the agents you run here.
  </Card>
</CardGroup>
