What Is “ultracode” Mode in Claude Code? Explained
Seen “ultracode” in Claude Code and wondered what “Ultra Code Mode” is? Here is how the setting works now that it is its own toggle: how to turn it on and off, what happens under the hood, what it costs, and when to leave it off.
ultracode is a Claude Code setting that turns on automatic workflow orchestration. With it on, Claude doesn't wait for you to ask: for each substantive task it plans a dynamic workflow, a script that runs many subagents in parallel and cross-checks what they find. You may have seen it called “Ultra Code Mode” in search results and community posts, but Anthropic's docs and changelog never use that phrase. The setting is ultracode, and the engine underneath is Dynamic Workflows, which launched alongside Opus 4.8 on May 28, 2026. The biggest change since then landed on September 28: in Claude Code v2.1.284, ultracode stopped being tied to xhigh effort and became a toggle of its own that stays on at any effort level.
Updated October 5, 2026 for Claude Code v2.1.289. This revision covers the new toggle and updates what earlier versions said about workflow permissions, plan availability and resuming a run.
What changed: ultracode is now its own toggle
Until v2.1.284, ultracode behaved like an extra effort level. Turning it on set the session to xhigh, picking any other level switched it off again, and an organization's effort cap below xhigh made it unavailable. The model configuration docs now call it “a Claude Code setting rather than a model effort level.” Switching it on or off leaves your effort level alone, and picking a level leaves ultracode as it was. The one exception is the launch flag: claude --effort ultracode turns it on and sets xhigh. In VS Code, the old Ultracode stop on the effort slider became an on/off switch beneath it.
xhigh. Now it is a separate switch that works at any level. Diagram: BitsMinds, from the Claude Code model configuration docsHow to turn ultracode on, and off
There are four routes, depending on how much of your work you want to hand over:
- This session: run
/effort ultracode, or open the/effortslider, press Tab to flip the Ultracode toggle and Enter to apply it. Turn it off with/effort ultracode off. - One task: put the keyword in your prompt, as in
ultracode: audit every API endpoint under src/routes/ for missing auth checks. Asking in plain words, such as “use a workflow” or “run a workflow,” counts as the same opt-in, and the session's setting is untouched. - From launch: start with
claude --effort ultracode, which opens the session atxhighwith ultracode on (v2.1.203 or later). - Every session: set
"ultracode": truein a settings file. The oldereffortLevelkey and theCLAUDE_CODE_EFFORT_LEVELvariable don't acceptultracode.
If the keyword fires by accident, press Option+W on macOS or Alt+W on Windows and Linux, or backspace right after it; to disable it for good, switch off Ultracode keyword trigger in /config.
The keyword only counts when a person types it
Since v2.1.210 (July 14), the keyword is an opt-in only in a prompt a person typed, whether at the interactive prompt, in an IDE panel, in a Remote Control client or in an Agent SDK app that marks the input as human. It no longer starts a workflow from a claude -p prompt, a scheduled task, or a webhook payload or pull-request comment relayed into the session, all of which could launch a run before that fix.
What ultracode does under the hood
Under the hood, this is Dynamic Workflows. Claude writes a JavaScript orchestration script for your task, and a runtime executes it in the background while your session stays responsive. The script keeps the loop, the branching and the intermediate results in its own variables, so Claude's context receives only the final answer. That is why a workflow can coordinate far more agents than one conversation could, and why it can apply a quality pattern instead of just adding hands: independent agents adversarially review each other's findings before anything is reported. With ultracode on, a single request can turn into several workflows in a row, one to understand the code, one to make the change and one to verify it.
The runtime runs up to 16 agents at once by default, fewer on machines with fewer CPUs; since v2.1.269, CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS sets that ceiling anywhere from 1 to 256. A run is capped at 1,000 agents in total to stop runaway loops. Once it starts, it takes no input from you and pauses only for an agent's permission prompt or a usage-limit wait. Every run's script is saved under your session's directory in ~/.claude/projects/, so you can read what Claude wrote, or edit it and ask for a relaunch.
Turning ultracode on also lifts three checks, because the docs treat it as consent to large runs. The Large workflow warning no longer appears. The session's concurrent-subagent limit isn't enforced for agents Claude spawns with the Agent tool. And in auto permission mode, you aren't asked to approve the first workflow launch.
Workflows vs subagents, skills and agent teams
Claude Code has four ways to run a multi-step job, and the difference between them is who holds the plan:
| Subagents | Skills | Agent teams | Workflows | |
|---|---|---|---|---|
| Who picks the next step | Claude, turn by turn | Claude, following the skill | A lead agent | The script |
| Where results pile up | Claude's context | Claude's context | A shared task list | Script variables |
| Typical scale | A few tasks per turn | Same as subagents | A handful of long-running peers | Dozens to hundreds of agents |
| If interrupted | The turn restarts | The turn restarts | Teammates keep going | Resumable in the same session |
Ultracode is the setting that lets Claude pick the last column on its own. For a wider tour of the tool, see our Claude Code guide.
What a run looks like: approval and the /workflows view
Before a run starts, the CLI shows the planned phases and asks whether to run it, with options to view the raw script first (Ctrl+G opens it in your editor) or to stop asking for a saved workflow. Whether you see that prompt depends on your permission mode. Manual and accept-edits sessions ask before every run, auto mode asks only before the first workflow ever and never with ultracode on, and bypass mode doesn't ask. In claude -p and the Agent SDK no prompt is shown, so your permission rules decide; an allow rule for Workflow approves them all. In the Desktop app the same decision is an approval card with Once, Always and Deny.
Once it is running, /workflows lists running and finished runs. Open one and each phase shows its agent count, token total and elapsed time; drill into an agent to see its prompt, its recent tool calls and its result. Press p to pause or resume, x to stop an agent or the whole run, r to restart a running agent and s to save the script.
What the agents are allowed to do
This is the part worth reading twice, because earlier versions of this explainer said workflow agents always ran in acceptEdits mode. They do not get a blanket pass. The current docs say the keyword “only chooses how Claude structures the work”: every agent's tool calls go through the same permission checks and sandboxing as any other tool call in your session. The subagents use your permission rules, and their mode follows Claude Code's subagent rules. If your session runs in auto, accept-edits or bypass mode, they run in that same mode. In manual, don't-ask or plan mode, they can use a mode set in their own definition, but never bypass. In practice, add the tools the agents will need to your allow rules before a long run, so permission prompts don't stall it. In auto mode, the prompt a script hands to an agent doesn't count as a request from you when the classifier reviews that agent's actions.
What ultracode costs, and how to keep it in check
More agents means more tokens. A single workflow can use meaningfully more than working through the same task in conversation, and with ultracode on that applies to every substantive request. On a subscription those tokens come out of your usage limits, so the docs warn that a session with ultracode on reaches a session or weekly limit sooner than the same work with it off. These are the levers:
- Size guideline. Dynamic workflow size in
/config, or theworkflowSizeGuidelinesettings key, tells Claude how many agents to aim for: small (under 5), medium (under 10), large (under 50) or unrestricted. Medium is the default; on Pro it has been small since v2.1.271 (September 14), the release that also cut medium from 15 agents to 10. It is advice, not a cap. - The Large workflow warning. A run that schedules more than 25 agents, or passes 1.5 million projected tokens, gets an advisory warning pointing you to
/workflows. Sessions with ultracode on don't show it. - Start small. Try a workflow on one directory first.
/workflowsshows each agent's token use, and you can stop at any time, usually without losing finished work. - Model choice. Agents run on your session's model unless the script names another, so check
/modelbefore a big run, or ask Claude to use a smaller model for the easy stages. - Usage-limit pauses. Since v2.1.271, a run in an interactive subscription session that hits your usage limit waits for the reset and carries on instead of failing, provided
autoContinueAtUsageLimitis on and the reset is within 24 hours.
/config. Medium has meant under 10 agents since v2.1.271; it was under 15 before. Diagram: BitsMinds, from the Claude Code workflows docsSaving and resuming runs
When a workflow does what you wanted, keep it: in /workflows, select the run, press s, and save it to .claude/workflows/ in the project, shared with everyone who clones the repo, or to ~/.claude/workflows/ for yourself. It then runs as /<name> next to the bundled /deep-research, can take input as a structured args value, and can ship to a team inside a plugin.
A stopped run can be relaunched with the same script: finished agents return their saved results, and work restarts from the first agent that changed or failed. Leaving Claude Code no longer has to throw a run away either. Background the session and the run carries on; exit and stop it, and claude --resume followed by a request to relaunch replays the saved results. Only a brand-new session starts the workflow over.
Which plans and models support ultracode
Dynamic workflows, and so ultracode, are available on all paid Claude plans, with Anthropic API access, and on Amazon Bedrock, Google Cloud's Agent Platform and Microsoft Foundry. On Pro you first switch them on from the Dynamic workflows row in /config, which is the usual answer to “why is ultracode missing on Pro.” They run in the CLI, the Desktop app, the IDE extensions, claude -p and the Agent SDK.
Ultracode itself is unavailable in two cases: when workflows are turned off, or when the model doesn't support xhigh effort, in which case the toggle simply isn't offered. Today that means it works on Fable 5.1 and Fable 5, Opus 5.5, Sonnet 5.5, Opus 5, Sonnet 5, Opus 4.8 and Opus 4.7, but not on Opus 4.6 or Sonnet 4.6. Workflows can be turned off with the toggle in /config, "disableWorkflows": true or CLAUDE_CODE_DISABLE_WORKFLOWS=1, and administrators can do it for a whole organization; no managed setting rules out ultracode alone.
When to use ultracode, and when not to
Reach for it on jobs too big for one agent to hold: a codebase-wide bug sweep, a migration across hundreds of files, a security or auth audit of every endpoint, research where sources need cross-checking, or a hard design decision worth drafting from several independent angles. Loops suit it too, such as fixing type errors until the checker passes or stops making progress. The quickest way to watch one is the bundled /deep-research, which fans web searches out across angles, cross-checks the sources and drops claims that don't survive.
Leave it off for routine work. With ultracode on, every substantive request is a workflow candidate, and each one costs more and takes longer. Turn it off with /effort ultracode off when you go back to everyday edits, or skip the toggle and use the keyword just for the big task.
/effort ultracode off for routine work. Diagram: BitsMindsWhere ultracode came from
| Version | Date | What changed |
|---|---|---|
| 2.1.154 | May 28, 2026 | Dynamic Workflows launch with Opus 4.8; the word “workflow” triggers a run |
| 2.1.160 | June 2 | Trigger keyword renamed to ultracode; first changelog mention of /effort ultracode |
| 2.1.202 | July 6 | Dynamic workflow size setting added to /config |
| 2.1.203 | July 7 | claude --effort ultracode launch flag |
| 2.1.210 | July 14 | Keyword counts only in prompts a person types |
| 2.1.219 | July 24 | Workflows default to a medium size guideline |
| 2.1.271 | September 14 | Pro defaults to small, medium drops to 10 agents, runs wait out usage limits |
| 2.1.284 | September 28 | Ultracode becomes its own toggle, independent of effort level |
Frequently Asked Questions
What is ultracode in Claude Code?
ultracode is a Claude Code setting that turns on automatic workflow orchestration. With it on, Claude decides when a substantive task deserves a dynamic workflow and runs one, writing a JavaScript script that fans the work out across parallel subagents and cross-checks their results, instead of working through the task as a single agent. Since v2.1.284 it is a toggle in /effort that works at any effort level. The capability underneath is what Anthropic calls Dynamic Workflows.
What is the difference between ultracode and xhigh?
xhigh is a reasoning-effort level: it controls how hard Claude thinks, still as one agent. ultracode controls whether Claude orchestrates workflows. Until v2.1.284 (September 28, 2026), turning ultracode on also forced xhigh. Now the two are independent, so you can run ultracode at medium or high effort, or use xhigh without workflows. Only the launch flag claude --effort ultracode still sets both, and ultracode is offered only on models that support xhigh.
How do I turn ultracode off?
Run /effort ultracode off, or open the /effort slider and press Tab to flip the toggle off. Changing the effort level no longer turns it off. If you set "ultracode": true for every session, remove that setting too.
Does ultracode use more tokens or credits?
Yes, meaningfully. A workflow fans one task out across many agents, so it uses more tokens and takes longer than the same work in conversation, and on a subscription it draws down your session and weekly limits faster. The main lever is Dynamic workflow size in /config: medium aims for under 10 agents, small (the Pro default) for under 5.
How long does ultracode stay on?
/effort ultracode lasts for the current session, until you run /effort ultracode off; "ultracode": true in settings makes it the default for every session. The keyword in a prompt applies to that one task only. A single run has no fixed time limit, but it is capped at 1,000 agents.
Is ultracode available on the Pro plan?
Yes. Dynamic workflows are available on all paid plans; on Pro you first switch them on from the Dynamic workflows row in /config. If ultracode is still missing from /effort, check the model: the toggle appears only on models that support xhigh effort.
Which models support ultracode?
Any model with xhigh effort: Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5, Opus 5, Sonnet 5, Opus 4.8 and Opus 4.7. Opus 4.6 and Sonnet 4.6 don't offer xhigh, so the toggle doesn't appear on them. You also need Claude Code v2.1.154 or later for workflows, and v2.1.284 or later for the separate toggle.
Do I have to type the word “ultracode”?
No. Asking in plain words, such as “use a workflow,” does the same thing, and /effort ultracode removes the need to ask at all. The keyword only counts in a prompt a person typed, so it doesn't fire from claude -p, scheduled tasks or relayed comments.
What happens to my permissions during an ultracode run?
Nothing is waved through. Every workflow agent's tool calls get the same permission checks and sandboxing as any other tool call in your session, and the agents follow your permission rules and, in most cases, your session's permission mode. Add the tools they need to your allow rules before a long run so prompts don't stall it.
Is “Ultra Code Mode” the official name?
No. Anthropic's documentation and changelog never use the phrase “Ultra Code Mode”; it grew up around the feature in search queries and community posts. The setting is ultracode, and the capability behind it is called Dynamic Workflows.
More on Claude Code
Evergreen coverage we keep current — start here.
Want AI news before everyone else?
The morning's most important AI stories, straight to your inbox. No fluff.