Claude Code updates Dynamic Workflows trigger to `ultracode` after accidental 103-agent runs
Anthropic changed the Dynamic Workflows trigger word from “workflow” to `ultracode` after users reported accidental fan-outs, including a 103-agent run that burned 2M tokens. The tweak should reduce surprise parallel launches, though subagent-heavy sessions can still hit rate and usage limits quickly.

TL;DR
- In Claude Code v2.1.160, Anthropic changed the literal dynamic-workflow trigger from
workflowtoultracode, and ClaudeDevs' announcement says the goal was to stop Claude from kicking off a workflow when users clearly meant something else. - The rename followed reports like LinusThiccTips' Reddit post, where a casual "let's research this" prompt allegedly spawned 103 Opus 4.8 agents and burned 2 million tokens before the run was stopped.
- Anthropic's own dynamic workflows launch post had already warned that the feature can run tens to hundreds of parallel subagents and consume substantially more tokens than a normal Claude Code session, which matches the failure mode users were hitting.
- ClaudeDevs' rate-limit reset post and its follow-up describe a separate June 1 bug in how Opus 4.8 requests were handled, causing more parallel tool calls than intended, and say that issue was unrelated to dynamic workflows.
- The keyword swap is not a full rollback: the workflows docs still say explicit natural-language requests like "use a workflow" can opt in, while the v2.1.160 release notes add that
/effort ultracodeis only offered on models that support xhigh.
Anthropic also left a paper trail in the product surface. The v2.1.157 release had already added a /config switch to disable the keyword trigger and changed backspace so it cancels the trigger instead of deleting a character. Then v2.1.160 renamed the keyword outright, while the workflows docs still describe runs that can fan out to dozens to hundreds of agents.
Ultracode
The concrete change is small: the literal word workflow no longer auto-triggers a dynamic workflow, and ultracode does. Anthropic put the same change in the official v2.1.160 release notes, which add that the trigger keyword is highlighted in violet in the prompt box.
That matters because the old trigger was a normal English word. Anthropic's workflows docs now distinguish between the explicit keyword ultracode and a direct natural-language request for a workflow, which still opts in.
103-agent runs
A 'let's research this' prompt spun up 103 Opus 4.8 agents and burned 2M tokens before I killed it
5 comments
The sharpest complaint in the evidence pool is LinusThiccTips' Reddit post, which says a simple research prompt spawned 103 Opus 4.8 agents and chewed through 2 million tokens. dejavucoder's joke post and bridgemindai's pricing complaint show the same theme from another angle: once Claude Code fans out hard, the bill stops feeling theoretical.
Anthropic's own launch post said dynamic workflows can run tens to hundreds of parallel subagents in one session, and its follow-up implementation post says those scripts can choose models per agent and decide whether subagents run in their own worktree. Christmas came early for coding agent nerds, but it also meant ordinary prompts could suddenly hit orchestration machinery that was built for very large jobs.
Parallel-call bug
Anthropic says one early blow-up was a bug, not user error. In ClaudeDevs' June 1 post, the company said it reset 5-hour and weekly rate limits for Pro and Max users after some Claude Code sessions spawned excessive parallel subagents; in the follow-up, it said the bug came from how Opus 4.8 requests were handled and was unrelated to dynamic workflows.
That distinction matters because the rename landed two days later. The public sequence is: a parallel-call bug gets fixed and quotas get reset, then the trigger word changes after feedback about accidental workflow launches.
Guardrails before the rename
Anthropic did not jump straight from launch to rename. The earlier v2.1.157 release added two smaller guardrails:
- A new "Workflow keyword trigger" setting in
/config, which lets users disable the oldworkflowkeyword trigger. - A backspace behavior change, so pressing backspace right after the trigger dismisses the workflow request instead of deleting a character.
By ClaudeCodeLog's summary of v2.1.160, those stopgaps had turned into a harder product decision: rename the trigger, tighten /effort ultracode, and stop offering ultracode on models that cannot run xhigh.
Natural-language opt-in
The rename reduces accidental keyword collisions, but it does not make dynamic workflows hard to invoke. According to the current workflows docs, you can still trigger a one-off workflow by including ultracode in the prompt, and direct requests like "use a workflow" or "run a workflow" still count as opt-in.
That leaves the product in an interesting middle state. PerceptualPeak describes feeding a past project's 30-plus Opus sessions into Ultracode and getting a "10/10" result, while badlogicgames points to the durability design as the clever part under the hood. The trigger is now rarer by accident, not weaker by design.