TL;DR
Ultracode is two documented things: a prompt keyword that turns one task into a dynamic workflow, and an /effort setting that pairs xhigh reasoning with automatic orchestration. Here is exactly what the docs say.
Read next
Claude Code dynamic workflows turn orchestration into a JavaScript script that runs up to 1,000 agents per run - here is how scripts, schemas, budgets, and resume actually work.
10 min readClaude agents vs skills, untangled: agents are workers with their own context window, skills are instructions loaded on demand. Here is the decision table.
8 min readTask budgets give Claude a token countdown for the whole agentic loop, so the model paces itself instead of discovering the limit when max_tokens truncates it. Here is how the beta works on Fable 5, what it does not enforce, and where it fits next to effort and the Usage API.
8 min readLast updated: June 11, 2026
If you typed the word "workflow" into Claude Code in late May and watched it spin up a background orchestration run, then tried the same thing this week and got nothing, you hit a deliberate rename. As of v2.1.160, the trigger keyword for dynamic workflows is ultracode, and the same name also appears in the /effort menu. Two different behaviors share one name, which is exactly why search results about it are confusing.
This post explains both, using only what the Claude Code changelog and the official docs actually say, verified on June 11, 2026. For the full mechanics of workflow scripts themselves, see the dynamic workflows guide. This post is about the ultracode entry points specifically.
Dynamic workflows shipped in Claude Code v2.1.154. A workflow is a JavaScript orchestration script that Claude writes for your task and a runtime executes in the background, across what the announcement post describes as tens to hundreds of parallel subagents. Intermediate results live in script variables rather than in Claude's context window, which is what lets a run scale past what one conversation can coordinate.
Ultracode is how you reach that machinery. The workflows documentation describes two distinct entry points.
Include the literal keyword ultracode anywhere in a prompt and Claude writes a workflow script for that task instead of working through it turn by turn:
ultracode: audit every API endpoint under src/routes/ for missing auth checks
The keyword is highlighted in the prompt input - violet, per the v2.1.160 changelog - so you can see the trigger armed before you hit Enter. Three documented escape hatches exist if you typed it by accident:
Option+W on macOS or Alt+W on Windows and Linux to dismiss the highlight for that prompt/config to disable keyword detection entirelyAsking in your own words, for example "use a workflow for this", still works in every version; the docs treat a direct natural-language request as the same opt-in. The rename only retired the literal workflow keyword as a trigger: per the changelog, the word "workflow" no longer starts a run on its own.
The second behavior is a session setting:
/effort ultracode
The model configuration docs define it precisely: "Ultracode is a Claude Code setting rather than a model effort level: it sends xhigh to the model and additionally has Claude orchestrate dynamic workflows for substantive tasks."
That sentence settles the most common misconception: the API never receives an effort value called ultracode. The model runs at xhigh, and Claude Code layers automatic orchestration on top. With the setting on, Claude plans a workflow for each substantive task without waiting for the keyword. The docs note that a single request can turn into several workflows in a row: one to understand the code, one to make the change, one to verify it.
Ultracode applies to the current session only and resets when you start a new one. It is deliberately excluded from every persistence mechanism: the docs state it is not part of the effortLevel setting, the --effort flag, or the CLAUDE_CODE_EFFORT_LEVEL environment variable. The two documented programmatic routes are --settings and an Agent SDK control request:
claude --settings '{"ultracode": true}'
That session-only design is a cost guardrail: multi-agent runs on every substantive task are expensive by construction, and the docs recommend dropping back with /effort high for routine work.
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools - delivered free every week.
From the archive
Jun 11, 2026 • 10 min read
Jun 10, 2026 • 8 min read
Jun 10, 2026 • 9 min read
Jun 10, 2026 • 9 min read
Three similar-sounding controls do three different jobs, all documented on the model configuration page:
| Control | What it does | Scope |
|---|---|---|
xhigh | Effort level sent to the model; deeper adaptive reasoning at higher token spend | Persists across sessions |
ultrathink | Prompt keyword that adds an in-context instruction for deeper reasoning on one turn; the effort level sent to the API is unchanged | Single turn |
ultracode | Claude Code setting: sends xhigh to the model plus automatic workflow orchestration for substantive tasks | Current session only |
A useful mental model: ultrathink makes one response think harder, xhigh makes every response think harder, and ultracode makes the harness work differently - it moves execution out of the conversation and into orchestrated background agents.
Model support follows the effort ladder. Per the model configuration docs, xhigh is available on Fable 5, Opus 4.8, and Opus 4.7, but not on Opus 4.6 or Sonnet 4.6, where the ladder tops out at high and max. Ultracode is only offered on models that support xhigh; on other models the /effort menu simply does not show it. That behavior was tightened in v2.1.160, whose changelog notes a fix for /effort ultracode "incorrectly blaming the dynamic workflows setting when the model cannot run xhigh." If you want the full ladder including where max fits and why the same level name maps to different underlying values per model, see Fable 5 effort levels explained.
Whichever entry point you use, the run behaves the same way, and the limits are documented:
You watch and manage runs with /workflows: drill into phases and individual agents, see token totals per agent, pause and resume with p, stop with x, restart an agent with r, and save the run's script as a reusable command with s. Saved scripts land in .claude/workflows/ for the project or ~/.claude/workflows/ for your user, and run as /<name> afterward. A saved workflow accepts structured input through an args global:
> Run /triage-issues on issues 1024, 1025, and 1030
Claude passes the list as structured data, so the script can call array methods on args directly. This save-and-rerun loop is the practical payoff for repeated jobs: trigger a run once with the keyword, confirm it does what you want, press s, and the orchestration becomes a versionable artifact your whole team can run. For how workflows compare against subagents and agent teams as coordination primitives, see the subagents vs agent teams vs workflows breakdown.
Separately from workflows, v2.1.172 allows sub-agents to spawn their own sub-agents up to 5 levels deep - worth knowing when you reason about how much parallel machinery a single prompt can now mobilize.
Two operational details from the workflows docs matter before you leave an ultracode session running.
First, permissions. Workflow subagents always run in acceptEdits mode and inherit your tool allowlist regardless of your session's permission mode. File edits are auto-approved. Shell commands, web fetches, and MCP tools outside your allowlist can still prompt you mid-run, so the docs recommend adding the commands agents will need to your allowlist before starting a long run. Note also that in auto mode the launch approval prompt is skipped entirely when ultracode is on - convenient, but it removes the last launch checkpoint, leaving only non-allowlisted tool calls to pause a run.
Second, cost. Runs count toward your plan's usage and rate limits like any other session, and every agent uses your session's model unless the script routes a stage to a different one. The docs' advice is to gauge spend on a small slice first: one directory instead of the whole repo. With /effort ultracode active this compounds, because every substantive task in the session pays the orchestration premium. If you are running multiple sessions of this kind, the operational patterns in managing a fleet of Claude agents apply directly, and the orchestrator model playbook covers routing cheap stages to cheap models.
Requirements, all from the workflows docs: Claude Code v2.1.154 or later, on any paid plan, the Anthropic API, Bedrock, Vertex AI, or Microsoft Foundry. Pro users enable workflows from the Dynamic workflows row in /config. The keyword has been spelled ultracode since v2.1.160.
Three documented ways to disable workflows for yourself:
// ~/.claude/settings.json
{ "disableWorkflows": true }
Or toggle Dynamic workflows off in /config, or set CLAUDE_CODE_DISABLE_WORKFLOWS=1 in your environment. When workflows are disabled, the ultracode keyword stops triggering and ultracode disappears from the /effort menu. Organizations can set disableWorkflows in managed settings. If you only dislike the keyword but want workflows available on request, the narrower "Ultracode keyword trigger" toggle in /config is the right knob.
One honest caveat to close on: most tasks do not need a workflow. The docs position them for jobs that need more agents than one conversation can coordinate - codebase-wide audits, large migrations, cross-checked research. For everything else, /effort high and a normal conversation remain the cheaper, faster, easier-to-review path.
Two things, depending on where you use it. As a keyword in a prompt, it runs that single task as a dynamic workflow - a background orchestration script coordinating up to 16 concurrent subagents - without changing your session settings. As /effort ultracode, it sets reasoning effort to xhigh and has Claude automatically plan workflows for every substantive task in the session.
No. The model configuration docs state it is "a Claude Code setting rather than a model effort level." The model itself runs at xhigh; the ultracode part is harness behavior, which is why it cannot be set through effortLevel, --effort, or CLAUDE_CODE_EFFORT_LEVEL, and why it resets when the session ends.
ultrathink is a prompt keyword that requests deeper reasoning on one turn by adding an in-context instruction; the effort level sent to the API does not change and no extra agents run. ultracode triggers multi-agent workflow orchestration. They solve different problems: ultrathink for one hard question, ultracode for one large task.
Models that support the xhigh effort level: Fable 5, Opus 4.8, and Opus 4.7 per the current model configuration docs. On Opus 4.6 and Sonnet 4.6 the /effort menu does not offer ultracode. Since v2.1.160, Claude Code hides the option rather than erroring when the model cannot run xhigh.
Per prompt: press Option+W (macOS) or Alt+W (Windows/Linux), or backspace immediately after the highlighted keyword. Permanently: turn off "Ultracode keyword trigger" in /config. To disable workflows entirely, set "disableWorkflows": true in settings or CLAUDE_CODE_DISABLE_WORKFLOWS=1 in your environment.
/effort ultracode behavior, limits, permissions, /workflows controls, disable settings. Accessed June 11, 2026.Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Anthropic's flagship reasoning model. Best-in-class for coding, long-context analysis, and agentic workflows. 1M token c...
View ToolAnthropic's agentic coding CLI. Runs in your terminal, edits files autonomously, spawns sub-agents, and maintains memory...
View ToolMac app for running parallel Claude Code, Codex, and Cursor agents in isolated workspaces. Watch every agent work at onc...
View ToolHigh-performance code editor built in Rust with native AI integration. Sub-millisecond input latency. Built-in assistant...
View ToolEvery coding agent in one window. Stop alt-tabbing between Claude, Codex, and Cursor.
View AppTurn a one-liner into a working Claude Code skill. From idea to installed in a minute.
View AppUnlock pro skills and share private collections with your team.
View AppReal-time prompt loop with history, completions, and multiline input.
Claude CodeFull vim keybindings (normal and insert modes) for prompt editing.
Claude CodePrefix prompts with ! to run shell commands directly, bypassing Claude.
Claude Code
Nimbalyst Demo: A Visual Workspace for Codex + Claude Code with Kanban, Plans, and AI Commits Try it: https://nimbalyst.com/ Star Repo Here: https://github.com/Nimbalyst/nimbalyst This video demos N...

Composio: Connect AI Agents to 1,000+ Apps via CLI (Gmail, Google Docs/Sheets, Hacker News Workflows) Check out Composio here: http://dashboard.composio.dev/?utm_source=Youtube&utm_channel=0426&utm_...

Anthropic has released Channels for Claude Code, enabling external events (CI alerts, production errors, PR comments, Discord/Telegram messages, webhooks, cron jobs, logs, and monitoring signals) to b...
Claude agents vs skills, untangled: agents are workers with their own context window, skills are instructions loaded on...
Claude Code dynamic workflows turn orchestration into a JavaScript script that runs up to 1,000 agents per run - here is...
Auto mode replaces permission prompts with a background safety classifier - here is how the Shift+Tab cycle, hard_deny r...
Anthropic says persistent file-based memory improved Fable 5 three times more than it improved Opus 4.8. Here is the ful...
Task budgets give Claude a token countdown for the whole agentic loop, so the model paces itself instead of discovering...
An ops guide to managing a fleet of Claude agents: spawning patterns, worktree isolation, build gates, orphaned-agent fa...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.