Developer Tools & APIs

Claude Code: 'workflow' renamed to 'ultracode', parallel Bash bug fixed, and OTEL team-level metrics added

Claude Code renames its dynamic-workflow trigger to 'ultracode', fixes a Bash parallel batch bug, tidies the MCP panel, and adds OTEL resource-attribute labels.

developer tools apis category

Claude Code has shipped a focused update touching four distinct areas: a trigger keyword rename, a parallel tool-call reliability fix, a cleaner MCP panel, and better observability for teams. None of these are headline features on their own, but together they matter quite a bit depending on how you use the tool.

‘workflow’ is now ‘ultracode’

When Anthropic launched Dynamic Workflows in Claude Code on 28 May 2026, it introduced a magic keyword: type workflow in the prompt and Claude Code would kick off a dynamic orchestration run, spinning up parallel subagents to tackle complex coding tasks at scale.

That keyword has now been renamed to ultracode.

The reason is practical. The word “workflow” comes up constantly in normal developer conversation. Asking Claude to “run a git workflow” or “clean up my CI workflow” would unintentionally trigger a full dynamic orchestration run, which consumes significantly more tokens than a standard session. ultracode is specific enough that you are unlikely to type it by accident.

Visually, the keyword is highlighted in violet when you type it, so you always know when you are about to kick one off.

ultracode is more than a trigger word, though. It is a proper effort level accessible through the effort menu. When you select it, Claude Code sets effort to xhigh and enables dynamic workflow orchestration for that session. The CLI confirms this with the message: “Set effort level to ultracode (this session only): xhigh + dynamic workflow orchestration.”

A couple of related fixes came along with this rename. The /effort ultracode command previously showed an incorrect error blaming the dynamic workflows setting when the underlying model did not support xhigh effort. That error message is now accurate. And ultracode is no longer offered as an option on models that do not support it, so you will not select something and then hit a wall.

What this means for you: If you were using the workflow keyword deliberately, update your habit to ultracode. If you were accidentally triggering dynamic runs, this rename should stop that from happening. The underlying capability is identical.

Parallel Bash calls no longer fail as a group

This is a meaningful reliability fix for anyone running agentic workflows with parallel tool calls.

Previously, if Claude Code issued a batch of Bash commands in parallel and one of them failed, the entire batch was cancelled. Every sibling tool call in that round was aborted, even if it had nothing to do with the failing command. This made parallel workflows brittle in a way that was hard to reason about, because a single flaky script or missing file could silently kill unrelated work happening at the same time.

The fix is straightforward: each tool call in a batch now returns its own result independently. A failed Bash command is reported as a failure for that specific call. Everything else in the batch continues and completes normally.

What this means for you: Parallel agentic tasks are now meaningfully more reliable. If you have been seeing unexplained dropped results in complex multi-step runs, this was likely the cause.

The MCP panel is less cluttered

The /mcp panel now collapses connectors for claude.ai integrations you have never signed in to behind a “Show unused connectors” disclosure row.

If you have accumulated MCP connectors over time, the panel can become a long list of things you are not actually using. This change keeps the active connectors front and centre and tucks everything else out of the way. The unused connectors are still accessible, just one click down.

What this means for you: Mostly a quality-of-life improvement. If your /mcp panel has always been clean, you will not notice much. If it has been cluttered, this tidies it up.

OTEL resource attributes now appear as metric labels

For teams running Claude Code at scale and collecting observability data, this is the most operationally significant change in this release.

Claude Code now includes OTEL_RESOURCE_ATTRIBUTES values as labels on metric datapoints. In practice, this means you can tag your Claude Code sessions with key-value pairs like team=backend or repo=payments-service, and those tags will flow through to your metrics, allowing you to slice usage and cost data by team, project, or any other dimension you care about.

There is also a new opt-in attribute: the session entrypoint is now available as an OpenTelemetry metric attribute (app.entrypoint), enabled by setting OTEL_METRICS_INCLUDE_ENTRYPOINT=true.

This is standard OpenTelemetry behaviour, but the absence of it has been a real gap for anyone trying to understand which teams or projects are consuming the most tokens.

What this means for you: If you are a team lead or engineering manager trying to understand Claude Code usage across a department, you can now get meaningful per-team breakdowns without any instrumentation gymnastics. Set your resource attributes, point your metrics at your existing observability stack, and filter from there.

A few other things worth noting

The CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE environment variable has been removed. If you set it, it is now a no-op. The JetBrains plugin install suggestion no longer appears at startup. The claude agents view now shows done/total counts before the detail when work is fanned out, and the peek view shows the longest-running item, which makes it easier to see where a large parallel run is bottlenecked.

Dynamic workflows themselves require Claude Code v2.1.154 or later. For Max and Team subscribers and API users, the feature is on by default. Enterprise customers need an administrator to enable it from the Claude Code settings.