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.
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 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.
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.
1
Creating worktree
Isolated branch and workspace. Resolves to “Worktree on <branch>”, or “Using repo checkout” when you started in local mode.
2
Copying files
Configured local files — the ignored
.env-style files carried into the worktree.3
Running setup
The repository setup script, skipped when there isn’t one.
4
Starting the agent
Transcript and live connection.
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), 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.
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
5xxand network errors retry. Other4xxresponses are terminal immediately, except409and429. - 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.
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 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.
Notifications
Settings → Notifications has two toggles:- When a session needs me — approvals, blocks, and questions.
- When a session finishes — completion alerts.
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.
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.
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 (
systemMediumshows the top four,systemLargeshows them all plus secondary accounts). - Spend — cost today, this week, and this month over a 7-day stacked chart;
systemLargeadds the legend and repo/model leaderboards.
- 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 overWCSession (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.
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 — the desktop surface these tabs mirror.
- Usage — the full analytics surface.
- Sessions — spawn, worktrees, and session naming.
- Remote devices — which machines can host a session.
- Multi-account — adding and pinning a second Claude or Codex account.
- Sharing — publishing a transcript from the phone.
- Pairing — sign-in, the account mesh, and QR pairing.