Products·15 min read
By BitsMindsSource: Claude Code Docs

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.

The switch is an editorial metaphor for the Ultracode toggle in Claude Code's /effort menu, not a picture of an Anthropic product. Sixteen keys stand for the runtime's default limit of sixteen concurrent workflow agents. ULTRACODE ULTRACODE AGENTS ON >_ CLAUDE CODE ultracode >_ /effort ultracodeBITSMINDS.COM
Share:

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.

What changed in v2.1.284 (September 28, 2026)BEFORE: AN EFFORT STOPNOW: ITS OWN TOGGLElowmediumhighxhighmaxultracodeturning it on forced xhighSelecting it set the session to xhighPicking another level turned it offAn effort cap below xhigh hid itlowmediumhighxhighmaxany level, plusUltracode onA separate toggle: Tab in /effortStays on at any effort levelOff: /effort ultracode offBITSMINDS.COM
Until v2.1.284, Ultracode sat on the effort slider and dragged the session to xhigh. Now it is a separate switch that works at any level. Diagram: BitsMinds, from the Claude Code model configuration docs

How 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 /effort slider, 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 at xhigh with ultracode on (v2.1.203 or later).
  • Every session: set "ultracode": true in a settings file. The older effortLevel key and the CLAUDE_CODE_EFFORT_LEVEL variable don't accept ultracode.

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.

How to switch ultracode onTHIS SESSION/effort ultracodeClaude plans a workflow for eachsubstantive task in the session.Off: /effort ultracode offONE TASKultracodeor “use a workflow”Runs just this task as a workflow;the session setting is untouched.Alt+W (Option+W on Mac) dismisses itFROM STARTUPclaude --effort ultracode"ultracode": trueOnce with the flag, or in everysession with the setting.The flag also sets xhigh effortBITSMINDS.COM
The switches: the session toggle, the per-task keyword, and starting with it on from the launch flag or a settings file. Diagram: BitsMinds

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.

How a dynamic workflow runs under ultracodeYourpromptJS orchestrationscriptParallelsubagentsCross-check& iterateConvergedanswerup to 16 concurrent · 1,000 per runBITSMINDS.COM
How an ultracode session turns one prompt into parallel subagents that cross-check and converge into a single answer. Diagram: BitsMinds

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:

SubagentsSkillsAgent teamsWorkflows
Who picks the next stepClaude, turn by turnClaude, following the skillA lead agentThe script
Where results pile upClaude's contextClaude's contextA shared task listScript variables
Typical scaleA few tasks per turnSame as subagentsA handful of long-running peersDozens to hundreds of agents
If interruptedThe turn restartsThe turn restartsTeammates keep goingResumable 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 the workflowSizeGuideline settings 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. /workflows shows 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 /model before 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 autoContinueAtUsageLimit is on and the reset is within 24 hours.
How many agents Claude aims for: the size guidelinesmallunder 5 · Pro defaultmediumunder 10 · defaultlargeunder 50unrestrictedno guideline: sized to the task05102550agentsLarge workflow warning above 25 agentsor 1.5M projected tokens · hidden with ultracode onAdvice, not a cap. Hard limits: 16 concurrent agents by default, 1,000 per run.BITSMINDS.COM
Set it with Dynamic workflow size in /config. Medium has meant under 10 agents since v2.1.271; it was under 15 before. Diagram: BitsMinds, from the Claude Code workflows docs

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

When to reach for ultracodeGOOD FITS: TOO BIG FOR ONE AGENTCodebase-wide bug sweepsMigrations across hundreds of filesSecurity and auth auditsCross-checked research (/deep-research)Hard plans drafted from several anglesTURN IT OFF FORRoutine, one-file editsSmall, well-scoped changesWhen usage limits or latency matter/effort ultracode offwhen the big job is doneBITSMINDS.COM
Reach for ultracode on jobs too big for one agent; switch it off with /effort ultracode off for routine work. Diagram: BitsMinds

Where ultracode came from

VersionDateWhat changed
2.1.154May 28, 2026Dynamic Workflows launch with Opus 4.8; the word “workflow” triggers a run
2.1.160June 2Trigger keyword renamed to ultracode; first changelog mention of /effort ultracode
2.1.202July 6Dynamic workflow size setting added to /config
2.1.203July 7claude --effort ultracode launch flag
2.1.210July 14Keyword counts only in prompts a person types
2.1.219July 24Workflows default to a medium size guideline
2.1.271September 14Pro defaults to small, medium drops to 10 agents, runs wait out usage limits
2.1.284September 28Ultracode 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.

Related Articles

The Gemini agent gets a staff badge Editorial illustration, not a Google product: a glossy white staff ID badge hanging from a lanyard, tilted slightly, with the Gemini star inlaid where the photo would be and the label Gemini agent, on Gemini's blue-to-coral spectrum field. Google gives each Gemini coworker agent its own Workspace account and email address. GOOGLE CLOUD Gemini agent STAFF · COWORKER Gemini agent gemini@agents.company.com BITSMINDS.COM
Products

Gemini Agent: Google’s AI Coworker Gets Its Own Email

ChatGPT gets GPT-6 and Intelligent UI The ChatGPT logo tile stands on an emerald field, and an answer card has popped out of it carrying a bar chart, a slider and two buttons, the kind of interactive elements Intelligent UI adds to replies. GPT-6 · INTELLIGENT UI BITSMINDS.COM
Products

ChatGPT Gets GPT-6 and Intelligent UI, Free Users Too

Claude Code: a little room to wrap up On a warm cream workbench, a charcoal terminal carries the terracotta Claude emblem and a full usage meter marked 100%. The meter has a small striped continuation beyond its limit. A jointed metal arm holds a large terracotta closing curly brace above a sheet of code, over a similarly striped edge. The terminal and desk label both read WRAPPING UP, and the desk label specifies CURRENT RESPONSE. The image is an original metaphor for continuing a response briefly toward a reasonable stopping point after reaching the five-hour usage limit. It does not depict a guaranteed completed task or a specific amount of extra usage. Original BitsMinds editorial SVG, 6 October 2026, for claude-code-wrap-up-allowance-usage-limit. Context: the article's local publication text and https://support.claude.com/en/articles/17040437-claude-code-wrap-up-allowance. The allowance is small, capped and for an already running response; it counts toward the existing weekly cap. This is symbolic artwork, not an exact product screenshot. The striped segment is not to scale. Vector-only artwork with the project Claude symbol. CLAUDE CODE USAGE LIMIT 100% WRAPPING UP WRAPPING UP CURRENT RESPONSE BITSMINDS.COM
Products

Claude Code Now Gets a Grace Period at the Usage Limit