Ultracode sits in Claude Code's /effort slider next to the effort levels, but Claude Code's documentation describes it as something different. The Model configuration page says: "Ultracode is a Claude Code setting rather than a model effort level: with it on, Claude orchestrates dynamic workflows for substantive tasks, at whichever effort level the session runs at."
What ultracode turns on
According to the Dynamic workflows page, a dynamic workflow is "a JavaScript script that orchestrates many subagents at once." Claude writes the script for the task, and a runtime executes it in the background while the session stays responsive.
With ultracode on, the documentation says, Claude plans a workflow for each substantive task instead of waiting for you to ask, and decides when a task warrants one. 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.
Ultracode isn't the only way to start a workflow. To run a single task as a workflow without changing the session, the documentation says you can include the keyword ultracode in your prompt, or ask in your own words, for example "use a workflow".
How to turn it on
The documentation lists these ways to turn ultracode on:
- Run /effort ultracode for the current session, and /effort ultracode off to turn it off. In the /effort slider, press Tab to flip the Ultracode toggle, then Enter.
- Launch with claude --effort ultracode, which starts the session at xhigh effort with ultracode on.
- Set "ultracode": true in a settings file to have every session start with it.
Passing ultracode to the --effort flag requires Claude Code v2.1.203 or later. The /effort ultracode off form, the slider toggle, and keeping ultracode on at levels other than xhigh require v2.1.284 or later. Ultracode is unavailable when workflows are turned off or when the model doesn't support xhigh effort.
How ultracode relates to xhigh and max
Claude Code's effort levels are low, medium, high, xhigh, and max. The documentation describes xhigh as "Deeper reasoning at higher token spend" and max as "the deepest reasoning level." Ultracode appears in the same table, but as "A Claude Code setting rather than a level: plans a dynamic workflow for each substantive task at any effort level." In other words, the effort level and ultracode are set separately. Turning ultracode on or off with /effort or the ultracode setting leaves the effort level unchanged, and picking a level leaves ultracode as it was. Only the --effort ultracode flag and the Agent SDK value effortLevel: "ultracode" also set the level to xhigh.
Before v2.1.284, the documentation says, turning on ultracode set the session to xhigh and picking another level turned it off. The effortLevel setting and the CLAUDE_CODE_EFFORT_LEVEL environment variable don't accept ultracode. The documentation also describes a separate keyword, ultrathink, which requests deeper reasoning for one turn without changing the session's effort setting; the effort level sent to the API stays the same.
Why it uses more of your usage
The Dynamic workflows page states the cost directly: "This applies to every task in the session, so each request uses more tokens and takes longer than the same request without a workflow. On a subscription plan those tokens draw on your usage limits, so a session with ultracode on reaches a session or weekly limit sooner than the same work with it off."
The rest of the documentation shows where those tokens come from. Many agents run at once: a workflow runs up to 16 agents concurrently by default, or fewer when Claude Code has fewer CPUs available. The CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS environment variable changes that limit to any value from 1 to 256 and requires v2.1.269 or later, and a single run can have up to 1,000 agents in total. Those agents also use your session's model. When nothing else assigns a model to a workflow agent, it runs on the session's model, so a session on a larger model runs its workflow agents on that model too.
Some checks are also skipped. According to the documentation, turning ultracode on "already opts you in to large runs," so three checks don't apply while it's on. The Large workflow warning, which normally appears when a workflow schedules more than 25 agents or its projected token total passes 1.5 million, doesn't show. The session's concurrent subagent limit isn't enforced for subagents Claude spawns with the Agent tool. In auto permission mode, you aren't asked to approve the first workflow launch. The 16-agent workflow limit isn't among the checks the documentation lists as skipped.
Keeping usage in check
The documentation suggests turning ultracode off with /effort ultracode off when you return to routine work, or using the ultracode keyword for a single task instead of turning it on for the whole session. Before a large run, it suggests checking /model and asking Claude to use a smaller model for stages that don't need the strongest one.
It also suggests trying a workflow on a small slice first, such as one directory instead of the whole repository. The /workflows view shows each agent's token usage as the run progresses, and you can stop the run there. To keep runs to fewer agents, you can choose the small size guideline.
