Put the agent in plan mode, review the steps, and approve from Mac, iPhone, or Watch. Live todos tick as work lands. The diff shows every hunk, then Create PR, checks, and merge, with Browser Preview comments that feed the same Code thread. Every prompt gets a checkpoint first, so the undo point exists before the agent touches anything.
São Paulo · fable-5 · planworktree · sp-1Flip the session into plan mode and the agent proposes steps instead of editing files. You get a readable plan card, not a wall of tool calls, with scope, order, and risks spelled out. Read-only is enforced at the process, not by asking nicely: Claude runs its own plan mode and emits a plan for approval, and Codex is spawned into a read-only sandbox so a tool call that tries to write simply cannot. If you have only ever used plan mode from the terminal, this is the same contract with a review surface bolted on.
Codex never emits an explicit exit-plan event, so Continuum seeds a synthetic plan card from its output and the Approve button renders exactly the same. That is the point of the shared plan card: one contract, several very differently shaped agents. The Codex sandbox modes map cleanly onto it.
Model and effort chips sit next to the mode toggle in the Code workbench, so you can re-plan the same prompt on a stronger model without leaving the thread. Approve when it looks right; refine when it doesn’t.
You cannot hand a read-only process write access halfway through a turn, so Continuum doesn’t pretend to. Approving ends the planning pane and starts a fresh agent with write permissions, carrying the approved plan across as its opening instruction.
Continuum tears down the planning process and respawns the same session with the right permission set for the agent it is running: acceptEdits for Claude, workspace-write for Codex. Nothing escalates in place, so no half-approved agent ever holds ambiguous rights.
The approved plan text is handed to the new process as its first instruction, so the executor works from the thing you read, not a summary of it. Codex writes a brand-new rollout file on respawn; Continuum re-points the session at it so the transcript stays one continuous conversation.
Every approval lands in the host’s audit log with the agent it respawned as. Approvals sent from a phone carry an idempotency key, so a retry over a flaky connection replays the receipt instead of respawning the agent twice. Permission modes decide what happens next.
São Paulo
plan ready
When the plan is ready, Continuum pings the Mac, iPhone, and Watch. Same plan card, same Approve & run. Started at your desk, answered on the train. One session, one branch. The plan-ready signal comes from a watcher tailing the session transcript on the host, which fans the event out to every subscribed client at once, so the phone doesn’t learn about it thirty seconds later than the Mac.
A tap on the phone does not fire a bare request and hope. It enqueues onto a durable outbox that clears the UI immediately and retries on a backoff ladder from one second out to thirty minutes; anything that still fails is parked in a per-session badge you can retry or cancel by hand. The host dedupes retries against a receipt cache it rebuilds from its audit stream after a restart, so an approval sent from a subway platform arrives exactly once.
The Watch is scoped on purpose: plan attention and interrupt, not diff review. See how sessions span every screen, and how that differs from the desk-bound model in Continuum vs Conductor.
After approval, the plan becomes a live checklist. Steps flip done as Claude, Codex, and the other agents progress. Provider-neutral, always current, next to the full plan document. The tracker derives its steps from the approved plan plus the numbered and “Step N” lines the agent writes as it goes, marks them complete heuristically, and lets you tap any step to correct it when the heuristic guesses wrong.
The live indicator is read from the per-turn lifecycle, not from a coarse session status field. That distinction is why the same six sessions animate identically on the Mac, the phone, and the browser instead of disagreeing about which one is actually working. A host that genuinely cannot tell says nothing rather than guessing.
The composer footer runs a cost ticker for the turn in flight and flags a Claude session at 95% of its weekly window before you commit another long run. Long plans are cheaper run side by side; see parallel sessions.
São Paulo · executing2 of 4Live git diff against HEAD, per file and per hunk. Stage, revert, or commit from the same pane. The pane watches the repository index directly, so a commit you make in a terminal on the same box shows up here without a refresh button. When the branch is ready, Create PR, watch checks, and merge without leaving Continuum.
The PR card is not something you have to wire up. Continuum scans the agent’s own output and tool results for a GitHub pull-request URL, then polls it every thirty seconds for title, state, additions, deletions, and review status. Approve a review from the pane when you’re the reviewer, not just the author. Reading a machine-written diff is its own skill; reviewing AI-generated code covers what to look at first.
Sessions running in git worktrees each get their own diff and their own branch, so four agents can be mid-review at once without one stealing another’s working tree.
Review is only half of safety. The other half is being able to throw a turn away. Continuum writes a checkpoint before each prompt goes to the agent, so the rollback exists before the risk does, not after you notice it.
The checkpoint is taken as part of the send path, not on a timer. Whatever the agent does next, the state you approved from is already recorded, including a snapshot of untracked files that git would otherwise ignore.
A folder with no .git gets an empty base commit, so a scratch directory is still a session you can roll back. The guard refuses your home directory and the standard containers like Desktop and Documents: a repository at ~ makes every git-aware tool treat your whole home as one project.
Restore never initializes anything. A checkpoint you want back implies the repository existed, so a missing one is reported instead of papered over. A checkpoint that cannot be written is a notice, not a block.
Browser Preview opens the running app in-pane. Cmd-click an element, leave a comment, and Continuum injects it into the agent thread with the selector so the next turn can fix the exact control you pointed at. The agent gets button.save, not “the save button, you know the one”.
Plan → todos → diff → PR → UI comments: the whole ship loop stays on one conversation. Pair with mobile and sessions from anywhere when you’re not at the desk, or read how the loop compares with the bare Claude Code CLI.
Short answers here, long answers in the docs.
Plan mode is first-class for Claude and Codex (Codex uses a read-only sandbox and a synthetic plan surface). Other agents share the same todos and review panes when they emit structured work; the plan card is the shared contract.
Yes for plan attention and interrupt. The Watch is built for the decision, not the full diff review. Open iPhone or Mac when you need the hunks and PR body.
Yes. Reply in the thread and the agent redrafts. It is still read-only while it does, so a refinement round costs you tokens and nothing else. You can also swap model or effort mid-plan; swaps are rate-limited to one every five seconds per session so a jittery tap can’t thrash the process.
The second one is a no-op. Every write command from a phone or browser carries an idempotency key, and the host replays the receipt for a key it has already seen instead of re-running the side effect. That covers double-taps, retries after a dropped connection, and the case where a Watch and an iPhone both fire.
PR create, view, checks, and merge shell out to the GitHub CLI on the host. If gh isn’t signed in, Continuum surfaces that instead of failing silently.
No. Comments inject into the agent conversation as structured notes with selectors. The code change that results is a normal commit; the comment itself isn’t a repo artifact.
Start a plan-mode session and approve the first run from your phone.