> ## 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.

# Mobile & Watch

> iPhone, Android, and Apple Watch — start, watch, and steer sessions from your pocket.

Continuum ships three mobile clients: the iPhone app **Continuum Console** on the App Store, an Android app on Google Play, and an Apple Watch app that installs from the paired iPhone.

All three are **remotes, not hosts**. They start, watch, and steer sessions; the agent process always runs on a host — your Mac, a Windows or Linux desktop, a VPS, a Tailscale-reachable box, your own cloud, or a Continuum-provisioned runner. See [Remote devices](/docs/features/remote-devices) for the full host list.

| Client            | Where you get it                            | Notes                                                                          |
| ----------------- | ------------------------------------------- | ------------------------------------------------------------------------------ |
| **iPhone / iPad** | App Store — "Continuum Console"             | iOS 26 or later. The app is free, and free to use with your own provider keys. |
| **Android**       | Google Play — package `ai.continuum.mobile` | Same tabs and wire protocol as iPhone; Apple-only surfaces below don't apply.  |
| **Apple Watch**   | Installs from the paired iPhone app         | No separate App Store listing.                                                 |

<Note>
  The iPhone and Android apps are two builds, not one. The App Store app is a native Swift app; Android is a React Native build that mirrors the same screens. They speak the same wire protocol to the same hosts, so a session you start on one shows up on the other — but the Apple-only surfaces (widgets, Live Activities, the Continuum Voice keyboard, Action Button dictation, Watch) have no Android equivalent.
</Note>

## Tabs

Both phones run three tabs: **Code**, **Usage**, **Settings**. Chat and Cowork are hidden product-wide while Continuum focuses on Code — the screens still exist in the app, they just aren't reachable. The selected tab tint is white against the black workbench.

There is no pairing wall. After the one-time AI-data-sharing consent screen the tabs always render, honest empty states live inside each tab, and first-run setup is a dismissible **Set up Continuum** sheet rather than a gate. Devices are additive: sign in with email or Apple and your account mesh discovers hosts, or scan a pairing QR from the Mac. Pairing details live on the [Pairing](/docs/pairing) page.

## Code tab

The Code list groups sessions by repo. Every managed repo shows even when it has no sessions yet, mirroring the desktop sidebar; a repo with none gets a **New session** row.

Each session card carries:

* The short 1–5 word session label, plus an **Auto** / planner / executor / verifier badge when the session belongs to an Auto model-router run.
* Three meta marks: workspace (house for a local checkout, branch octicon for a worktree), the provider glyph, and the device the session runs on (Apple / Windows / Linux silhouette, or a cloud glyph for a genuine cloud or serverless run).
* Live `+/-` diff counts, compacted the way the Mac sidebar compacts them (`5610` → `5.6k`).
* A provider-colored data cable that animates only while the agent is actually mid-turn. This tracks the host's per-turn signal, not a coarse session status, so the phone and the Mac agree on which sessions are working.

Swipe a row left to reveal **Archive**: a partial swipe rests the row open so you can tap it, a full swipe archives immediately, swiping a second row closes the first, and tapping an open row closes it instead of opening the session. Press and hold a card for **Create PR** and **Archive**.

## Starting a session

Tap **New Session** (or a repo's **New session** row) to open a full-screen first-turn composer. A repo chip sits above the text field; below it, a **Plan / Code** pill and one capsule carrying the model and its effort rung. Two more pickers appear when they're relevant:

* A **device picker** lists every host on your account mesh, any extra remote hosts the hub knows about, and **Cloud** when your account offers managed capacity. Picking a device connects to it before the session starts.
* An **account chip** appears when a provider has more than one signed-in account (Claude and Codex support this). Leave it on the default or pin the new session to a specific account — see [Multi-account](/docs/features/multi-account).

Sending doesn't drop you back on the list. Your message stays on screen and a **setup trail** tracks four steps while the host provisions:

<Steps>
  <Step title="Creating worktree">Isolated branch and workspace. Resolves to "Worktree on \<branch>", or "Using repo checkout" when you started in local mode.</Step>
  <Step title="Copying files">Configured local files — the ignored `.env`-style files carried into the worktree.</Step>
  <Step title="Running setup">The repository setup script, skipped when there isn't one.</Step>
  <Step title="Starting the agent">Transcript and live connection.</Step>
</Steps>

When all four land you're handed straight into the live transcript. A create that takes longer than about six seconds says so rather than showing a bare spinner — a worktree plus an agent cold start is normal, not stuck. If it fails, the surface offers **Try again** and **Edit message**, and the retry reuses the same client-minted session id so a create whose reply was lost can't spawn a second worktree.

## Session detail

Tapping a session opens it in place: a live transcript rendered through the shared turn renderer, with completed turns folded to their final answer and the streaming turn expanded. Tap a folded turn to open it. A floating chevron with an unread count appears when you scroll away from the tail.

The header carries the repo name, the session label, the provider glyph, and a PR control that offers **Create PR** only at the end of a turn on a worktree session whose agent has actually produced output — the same rule the Mac titlebar uses. The overflow menu adds **Share transcript…** (see [Sharing](/docs/features/sharing)), **Create PR**, and **Archive** / **Unarchive**.

When a session is waiting on you, a plan card renders inline with an **Approve** button.

The composer sits at the bottom in two rows: the draft field with a paperclip on the left, then a chip row with the mid-session controls.

* **Plan / Code** — flips permission mode live. Hidden for providers without a plan mode, and for hosts that can't switch mid-session.
* **Effort** — the provider-aware ramp; each CLI accepts a different set of rungs. **Ultracode** is offered for Claude only, and only on hosts new enough to run it.
* **Mic** — on-device dictation into the draft.
* **Send** — steers the running agent on a live session rather than queuing behind it.

Sends route through the command outbox, so the field clears immediately.

A session whose only copy is a cloud-mirrored snapshot — archived, or a host you currently can't reach — renders read-only and says **Cloud snapshot · read only** under the title.

## Command outbox

Every write — send, approve plan, interrupt, archive, unarchive, model swap, effort swap, autopilot, create PR, merge — goes through the outbox before it reaches a host.

* The composer clears on enqueue. You don't wait for the network.
* If the host is unreachable, the command retries on a fixed ladder: **1s → 4s → 15s → 60s → 5min → 30min**. After the last rung it parks in the failed queue for manual triage.
* Transient `5xx` and network errors retry. Other `4xx` responses are terminal immediately, except `409` and `429`.
* Every envelope carries an idempotency key, so a retry replays safely — the host dedups, and a re-sent prompt or merge never double-executes.
* Swipe a failed command to **Retry** or **Cancel** it.

The queue persists to `Application Support/Clawdmeter/outbox.json` and is owned by the app, not by a screen, so iPad multi-window scenes and rapid session switches share one queue instead of racing the file.

## Usage tab

Usage mirrors the Mac's [Usage](/docs/surfaces/usage) surface at phone scale: a hero gauge for the selected provider with its session and weekly rails and reset countdowns, then spend over time.

* Providers that have no rolling session window promote weekly into the hero gauge instead of showing a dead 5-hour rail — this is what a weekly-only Codex plan looks like, and it matches the Mac.
* Grok shows a single weekly-credits bar; OpenCode and Continuum-hosted inference show spend detail instead of a quota ring.
* When a provider has more than one signed-in account, an account toggle above the gauge switches which account's rails you're reading.
* The spend chart uses the desktop range selector — **Today / 7d / 30d / 90d / All time** — with a stacked per-provider chart, a spend-by-repo list, and tappable days.

Providers appear here only when they're enabled and connected on the host.

## Notifications

Settings → **Notifications** has two toggles:

* **When a session needs me** — approvals, blocks, and questions.
* **When a session finishes** — completion alerts.

When your Mac is set up to push, attention and completion alerts arrive as push notifications. Otherwise the phone falls back to surfacing events live over the event stream while foregrounded, and to a background refresh (roughly every 15–30 minutes, on iOS's own cadence) that polls the host for anything pending while backgrounded.

## Continuum Voice

Continuum Voice is dictation that works in three places, with the engine and model chosen under Settings → **Voice** (Apple Speech by default; larger downloadable models are available).

* **In the composer** — the mic button in any session's composer.
* **As a keyboard** — a microphone-only iOS keyboard you add under Settings → General → Keyboards, for dictating into text fields anywhere on the phone. Transcribed text inserts into the field you're in.
* **From the Action Button or Control Center** — assign **Toggle Voice** to the Action Button (Settings → Action Button → Controls → Continuum). One press starts recording without bringing Continuum forward, a second press stops and finishes transcription. It works from a cold start. While recording, a **Continuum Voice** Live Activity shows in the Dynamic Island with a Turn off control; the spoken text itself never enters the Live Activity. If the Continuum Voice keyboard is active the finished text inserts into the current field, otherwise it's copied to the clipboard.

Action Button dictation shipped in 0.74.0. Microphone capture stays in the main app — keyboard extensions have no microphone entitlement of their own.

<Note>
  iOS provides no API for reading which control is bound to the Action Button, or whether a third-party keyboard is enabled. The setup screens verify microphone and speech permissions and walk you through the system-owned steps; they can't confirm the binding for you.
</Note>

## Widgets and Live Activities

The iPhone ships four widgets, all reading the shared App Group cache the app writes on every usage refresh:

* **Claude usage** — Lock Screen (`accessoryCircular`, `accessoryRectangular`, `accessoryInline`) plus Home Screen and StandBy (`systemSmall`, `systemMedium`).
* **Provider usage** — the same families, configurable to any provider.
* **All providers** — every enabled provider in one widget (`systemMedium` shows the top four, `systemLarge` shows them all plus secondary accounts).
* **Spend** — cost today, this week, and this month over a 7-day stacked chart; `systemLarge` adds the legend and repo/model leaderboards.

Widgets mark themselves stale when the underlying snapshot ages out, and the all-providers widget flips on the oldest visible meter so one active provider can't mask another's stale data.

Two Live Activities ship:

* **Gemini quota** — the Antigravity/Gemini window as a percent plus a reset countdown, on the Lock Screen and across the Dynamic Island's expanded, compact, and minimal presentations, with a caution marker when the snapshot is stale. It updates in-process while the app is running; there is no background push path for it.
* **Continuum Voice** — the dictation activity described above.

## Apple Watch

The Watch app installs from the paired iPhone and reads everything from it over `WCSession` (latest-wins application context, with a queued-delivery fallback). It never ingests provider logs itself.

The main screen is one full-screen provider meter per page — Claude, Codex, Antigravity, Cursor, Z.ai — with session and weekly rails; swipe or turn the Digital Crown to move between them. A **Sessions** entry point appears in the toolbar once the iPhone has pushed session data, opening a Crown-scrollable list with a per-session detail.

From that detail you can **Approve plan** (shown only when the session needs attention) and **Interrupt** (the equivalent of escape on the Mac). There is no way to reply from the wrist.

<Warning>
  Both Watch actions are **off by default**. Enable them individually under iPhone Settings → Apple Watch: **Approve plans** and **Interrupt sessions**. They're armed separately on purpose — authorizing the Watch to approve a plan must not also let it cancel your running turns.
</Warning>

Four complications ship:

* **Claude usage** — `accessoryCircular`, `accessoryCorner`, `accessoryRectangular`, `accessoryInline`.
* **Plan-waiting** badge — `accessoryCircular`.
* **Antigravity task** headline — `accessoryCorner`.
* **Codex task** todo — `accessoryCorner`.

## What Android doesn't have

Android runs the same three tabs, the same repo-grouped Code list and session cards, the same live transcript with its PR control and share sheet, the same new-session composer, Usage, and Settings (Devices, Notifications, GitHub, new-session defaults, Account).

These are Apple-only and have no Android counterpart today: widgets and complications, Live Activities and the Dynamic Island, the Continuum Voice keyboard and Action Button dictation, in-composer dictation, and Apple Watch. The Android new-session composer also has no execution-host or account picker — sessions start on the connected host with its defaults.

## Related

* [Code](/docs/surfaces/code) — the desktop surface these tabs mirror.
* [Usage](/docs/surfaces/usage) — the full analytics surface.
* [Sessions](/docs/features/sessions) — spawn, worktrees, and session naming.
* [Remote devices](/docs/features/remote-devices) — which machines can host a session.
* [Multi-account](/docs/features/multi-account) — adding and pinning a second Claude or Codex account.
* [Sharing](/docs/features/sharing) — publishing a transcript from the phone.
* [Pairing](/docs/pairing) — sign-in, the account mesh, and QR pairing.
