Hand the planning to the cloud, keep coding in your terminal. /ultraplan ships the planning task to a Claude Code on the web session in plan mode; you keep working locally, then decide whether the cloud or your terminal executes the approved plan.
Launch one
Three ways, all from your local CLI session:
/ultraplan migrate the auth service from sessions to JWTs
Or paste /ultraplan anywhere in a longer prompt:
Read the auth service code, then /ultraplan move it from sessions to JWTs while keeping the existing test suite green.
Or, after Claude finishes a local plan and shows the approval dialog, choose No, refine with Ultraplan on Claude Code on the web. The local draft is sent up as a starting point.
Requirements: Claude Code v2.1.91 or later, a Claude Code on the web account, and a GitHub repository connected to that account. Ultraplan is unavailable on Amazon Bedrock, Google Cloud Vertex AI, and Microsoft Foundry. The cloud session runs in your account’s default cloud environment; if you have not set one up, the first /ultraplan invocation creates one.
Watch the indicator
While the cloud session works, your CLI’s prompt input shows a status:
| Indicator | Meaning |
|---|---|
◇ ultraplan | Claude is researching your codebase and drafting the plan |
◇ ultraplan needs your input | Claude has a clarifying question; open the session link to respond |
◆ ultraplan ready | The plan is ready to review in your browser |
/tasks shows the ultraplan entry with the session link, agent activity, and a Stop ultraplan action. Stopping archives the cloud session and clears the indicator. Nothing is saved to your terminal.
Approve and execute
When the indicator shows ◆ ultraplan ready, open the session link in your browser and pick one of two execution paths:
- Approve Claude’s plan and start coding in your browser. The same cloud session implements the plan. Your terminal shows a confirmation, the indicator clears, and the work continues in the cloud. Review the diff and open the PR from the web interface when the implementation finishes.
- Approve plan and teleport back to terminal. The plan returns to your local CLI for implementation. The web session is archived so the cloud does not run the plan in parallel. This option only appears while the CLI is still polling; if your terminal already closed, the teleport-back path is gone.
After teleport, the local CLI shows a dialog with three options: Implement here (continue the current local conversation with the plan attached), Start new session (clear the local conversation and start fresh with only the plan as context; Claude prints a claude --resume command for the prior session), or Cancel.
Footguns
The “teleport back to terminal” option disappears if your CLI session closes. Polling stops the moment you exit Claude with Ctrl-D or your terminal window closes. If you walk away, come back tomorrow, and the plan is ready, you no longer have the local-execute option. Either approve in the cloud or open /tasks, copy the plan text out of the browser, and paste it into a fresh local session by hand. Keep the CLI open when you start an ultraplan you want to land locally.
There are no push notifications. Ultraplan does not email you, ping Slack, or send a desktop notification when the plan is ready. The only in-product signal is the indicator in your CLI input box. If you are not looking at the terminal, you will not know. For long ultraplans, set an OS-level reminder yourself; the canonical workflow assumes you are still near the keyboard.
Stopping an ultraplan throws away the work. Stop ultraplan archives the cloud session and clears the indicator with nothing transferred to your local terminal. If the cloud session has done two minutes of research you actually wanted, you cannot recover it. To redirect mid-flight, open the session link and use the in-browser Q&A to push back instead of stopping. Stop is the destructive option.
Cloud-side execution does not see your local environment. Approving “start coding in your browser” runs the implementation in the cloud session, not on your laptop. Local-only state (uncommitted branches, secrets in .env, custom shell aliases, sibling repos in the same workspace) is invisible to it. If your plan touches any of those, teleport back to the terminal for execution; do not approve cloud-side.
Ultraplan and Remote Control collide on claude.ai/code. Both features need that browser interface, and only one can be connected at a time. Starting an ultraplan disconnects an active Remote Control session (and vice versa). If you depend on Remote Control during an ultraplan run, plan for the disconnect or finish one before starting the other.
When NOT to use ultraplan
- The plan is small. Single-file edits, or prompts that already specify which lines to change, do not benefit from cloud planning. Use local plan mode (
Shift+Tab) instead. - The plan needs offline state. The cloud session reads from the connected GitHub repo only. If your plan depends on a sibling local-only repo, a private internal-only doc, or a service running on your laptop, plan locally.
- You are on a non-supported provider. Bedrock, Vertex AI, and Foundry users do not have ultraplan. Stick with local plan mode.
- You will iterate on the plan ten times. Each round-trip (browser → clarifying question → CLI → browser) has latency. If the plan is converging slowly, finish it locally where the conversation is one continuous thread without the network in between.
- You actually want a fire-and-forget workflow. Ultraplan is “set it and watch the indicator”, not “set it and walk away”. If you need genuine async send-and-be-notified, that is what scheduled tasks plus a notification hook are for, not ultraplan.