> ## Documentation Index
> Fetch the complete documentation index at: https://continuum-three-olive.vercel.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat

> The multi-provider conversational surface — currently hidden while Continuum focuses on the Code workbench.

<Warning>
  **The Chat tab is hidden by default.** Continuum ships focused on the Code workbench, and
  since 2026-07-30 Chat is not in the tab bar on any client — Mac, iPhone, web, Windows,
  Linux, or Android.

  Nothing was removed. The surface, your chat history, and the daemon routes behind them are
  all still in the build; only the tab is hidden. On the Mac you can bring it back yourself:

  ```bash theme={"dark"}
  defaults write ai.continuum.mac clawdmeter.tab.chat.enabled -bool YES
  ```

  Relaunch Continuum and Chat rejoins the tab bar as ⌘1, pushing Code to ⌘2, Usage to ⌘3, and
  Settings to ⌘4. There is no equivalent switch on the other clients — on web, desktop, and
  mobile, hidden is hidden.

  This page documents Chat as it behaves when it is on.
</Warning>

Chat is the conversational surface. It is separate from the [Code workbench](/docs/surfaces/code):
Code spawns and controls agent sessions tied to a repo; Chat is for prompt-driven work where
you want the focus on the conversation. Both run on the same daemon and the same chat store,
but Chat has its own UI and its own multi-provider compare path.

<Note>
  **Cowork** is a second hidden surface, and it is not Chat. Where Chat is scoped to a
  conversation and Code to a repository, Cowork is scoped to a *folder* — durable memory,
  scheduled recurring runs, approval gating, and connected apps against a working directory
  that need not be a git repo. It is hidden on the same 2026-07-30 decision, behind its own
  `clawdmeter.cowork.enabled` default rather than the Chat one, and it is not documented here.
</Note>

## Modes

The provider picker — **Ask or compare** — holds a Solo / Compare / Synthesize toggle above a
checklist of your providers, each row carrying its own model and effort. Mode and selection
move together: tick one provider and you're in Solo, tick two or three and you're comparing.
The toggle is the shortcut in the other direction, adding or dropping providers to get you
into the mode you clicked.

<Tabs>
  <Tab title="Solo">
    One provider, one thread. Any provider you have configured can start a conversation:

    | Provider             | What it runs on                                                                                 |
    | -------------------- | ----------------------------------------------------------------------------------------------- |
    | Claude               | the `claude` CLI                                                                                |
    | ChatGPT (Codex)      | the `codex` CLI                                                                                 |
    | Antigravity (Gemini) | the `agy` CLI                                                                                   |
    | Cursor               | the `cursor-agent` CLI                                                                          |
    | Grok                 | the `grok` CLI                                                                                  |
    | OpenCode Go          | the bundled `opencode` server                                                                   |
    | OpenRouter           | the bundled `opencode` server, on your OpenRouter key                                           |
    | Z.ai Coding          | the bundled `opencode` server, on your GLM Coding Plan key                                      |
    | Continuum            | the bundled `opencode` server, against Continuum's [hosted gateway](/docs/features/hosted-inference) |

    Custom OpenAI- and Anthropic-compatible providers you have added yourself appear here
    too. The history sidebar on the left lists past sessions; the search field narrows it.
    Click any past session to continue it.
  </Tab>

  <Tab title="Compare">
    Two or three providers, one prompt, answers side by side. Each column streams
    independently, and you can star answers turn by turn, focus one column, or continue from
    the one you liked. A comparison needs at least two providers to start — if only one comes
    up, the panel tells you why each slot failed instead of silently dropping you into a
    one-agent "broadcast." See [Broadcast](/docs/features/broadcast) for the mechanics.
  </Tab>

  <Tab title="Synthesize">
    Compare, plus a summarizer. Arming Synthesize adds a summarizer chip to the composer;
    once at least two columns have finished answering, a **Synthesize N replies with
    \<provider>** button compiles them into one cited response you can then continue from.
    The summarizer can be any provider you have configured, including one that isn't in the
    comparison. See [Broadcast](/docs/features/broadcast#synthesize).
  </Tab>
</Tabs>

## Per-provider model, effort, and account

Each provider row carries its own pickers, so a comparison can mix model and effort across
providers:

* **Model** — the menu lists that provider's catalog entries.
* **Effort** — a reasoning-effort menu appears for providers that support it. Claude and
  Codex default to High.
* **Account** — when a provider has **two or more accounts** configured on the host, an
  account menu appears in the row. Pick which subscription runs the chat; the menu shows each
  account's label, with **Default** for the primary. The picker is hidden when a provider has
  only one account.

Account pins persist per provider and are re-checked against the host's account list before
each send, so an account you removed in Settings falls back to **Default** instead of failing
the send. See [Multi-account](/docs/features/multi-account) for how accounts are added and kept
isolated.

## Turn lifecycle

Every turn has an authoritative state — idle, streaming, completed, or interrupted — reported
by the host rather than guessed from a gap in the event stream. While a turn is streaming,
the Send button becomes a Stop button and the status strip runs a stopwatch. When the turn
completes or is interrupted, Send comes back.

## Stopping a turn

Stop is dispatched differently per provider, because each backend cancels differently:

| Provider                                        | Stop                                                                                                 |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Claude                                          | `ESC` to the running CLI; if it won't yield, Continuum restarts the runtime and keeps the transcript |
| ChatGPT (Codex)                                 | cancel the in-flight turn                                                                            |
| Cursor                                          | cancel the in-flight turn                                                                            |
| Grok                                            | cancel the in-flight turn                                                                            |
| Antigravity (Gemini)                            | cancel the in-flight turn                                                                            |
| OpenCode Go, OpenRouter, Z.ai Coding, Continuum | not supported — `opencode` exposes no per-turn interrupt                                             |

<Note>
  **Stop is honest about failing.** Continuum only reports a turn as stopped once the provider
  confirms the turn actually ended. If the provider doesn't confirm in time you get an explicit
  "the provider did not confirm that the current turn ended" error and your follow-up is *not*
  sent, rather than a green checkmark over a turn that is still running and still billing.
</Note>

The `opencode`-backed providers are the exception in the other direction: Stop unblocks the
composer so you can move on, but the turn upstream keeps going. A user Stop also cancels any
pending auto-retry for that session.

## Deep Research

Deep Research is a creation-time toggle in the composer's **+** menu, next to Attach. It
applies to every provider in the chat, and the composer's status word changes from `ready` to
`research` while it's on.

It is a real behavior change, not a prompt suffix: Claude, Codex, and Antigravity are each
held to a release gate that runs a live research prompt and fails the build unless the
transcript shows actual web searches and a citations footer in the final answer.

## Permission prompts

When an agent needs explicit approval — a file write, a shell command, a network call — the
prompt appears inline in the thread. Approve or deny without leaving the chat. The card is the
same shape on Mac and iPhone.

## History and search

The left sidebar lists your chat sessions. The search field filters by title and content
across all of them. Opening a hit reopens that chat — including a broadcast that has since
resolved to a single winner, which reopens as the winning Solo thread so your history stays
navigable after the columns collapse.

## Surfaces

<Columns cols={2}>
  <Card title="Mac" icon="monitor">
    History sidebar, provider start panel, and — when comparing — a horizontally scrollable
    column per provider.
  </Card>

  <Card title="iPhone" icon="smartphone">
    A compact layout: provider pills above the selected reply, tap a pill to switch providers,
    and the account picker inside the model-selector sheet.
  </Card>
</Columns>

## Related

* [Broadcast](/docs/features/broadcast) — comparing two or three providers on one prompt.
* [Multi-account](/docs/features/multi-account) — running more than one subscription per provider.
