Summary
Add support for the ultrathink in-prompt keyword and the ultracode effort level, mirroring the behavior available in Claude Code CLI. These give users fine-grained control over reasoning depth without manually adjusting effort every session.
What exists in Claude Code CLI
1. ultrathink keyword
Users can write ultrathink anywhere in their prompt. Claude Code detects the keyword and injects an in-context instruction asking the model to reason more deeply on that turn only. The session effort level sent to the API is not changed — this is purely an in-context prompt augmentation.
- Works as a one-off, per-turn override
- Phrases like "think", "think hard", or "think more" are not detected — only the exact token
ultrathink
- Does not require any API-level support from the provider (it's just text in context)
- Documented in official Claude Code docs: model-config#adjust-effort-level
2. ultracode effort level
Available in the /effort picker as one of the options. It is not an API effort level — it sends xhigh to the API and also grants the model standing permission to orchestrate dynamic multi-agent workflows. Session-only (not persisted).
Reference from official docs:
ultracode is not an additional API effort level. Ultracode pairs the xhigh effort level with standing permission for Claude Code to launch multi-agent workflows.
Effort levels in Claude Code CLI (for reference)
| Level |
Behavior |
low |
Fast, scoped tasks, latency-sensitive |
medium |
Cost-sensitive, balanced |
high |
Balanced speed + intelligence (default for most models) |
xhigh |
Deeper reasoning, more tokens |
max |
Maximum reasoning, risk of overthinking |
ultracode |
xhigh + multi-agent orchestration permission (session-only) |
Current OpenClaude effort picker appears to go up to high. Adding xhigh, max, and ultracode would achieve feature parity.
Proposed implementation
Ultrathink
- Scan user prompt for the exact token
ultrathink (case-insensitive match recommended)
- When detected, inject an in-context system instruction to the model before the turn is sent, e.g.:
"The user has requested deeper reasoning for this turn. Take extra care to think step by step, explore edge cases, and reason thoroughly before responding."
- No change to the API
reasoning_effort or effort parameter — this works purely at the prompt level
- Works with any provider (Anthropic, OpenRouter, Ollama, 9Router, etc.) since it's just prompt text
Ultracode effort level
- Add
ultracode as a selectable option in /effort picker (alongside xhigh and max if not already present)
- When selected, send
xhigh as the reasoning_effort value in the API request
- Append a session-level permission instruction to the system prompt enabling multi-agent workflow orchestration
- Mark as session-only (do not persist across restarts, same as Claude Code CLI behavior)
Also missing: xhigh and max effort levels
The /effort picker should ideally include all levels: low, medium, high, xhigh, max, ultracode. Currently it seems to cap at high.
Motivation
Users who work on complex codebases, multi-step implementations, and agentic workflows benefit from being able to request deeper reasoning on demand without changing their global session effort. The ultrathink keyword is lightweight (no provider support needed) and ultracode enables the most demanding agentic use cases. Both are signature features of Claude Code CLI.
Environment
- OpenClaude CLI
- Provider: Gitlawb OpenGateway (also tested with 9Router)
- Models: various (Qwen 3.7 Max, NVIDIA Nemotron, Xiaomi Mimo, etc.)
- OS: Windows 11 IoT Enterprise LTSC
Relevant references
Summary
Add support for the
ultrathinkin-prompt keyword and theultracodeeffort level, mirroring the behavior available in Claude Code CLI. These give users fine-grained control over reasoning depth without manually adjusting effort every session.What exists in Claude Code CLI
1.
ultrathinkkeywordUsers can write
ultrathinkanywhere in their prompt. Claude Code detects the keyword and injects an in-context instruction asking the model to reason more deeply on that turn only. The session effort level sent to the API is not changed — this is purely an in-context prompt augmentation.ultrathink2.
ultracodeeffort levelAvailable in the
/effortpicker as one of the options. It is not an API effort level — it sendsxhighto the API and also grants the model standing permission to orchestrate dynamic multi-agent workflows. Session-only (not persisted).Reference from official docs:
Effort levels in Claude Code CLI (for reference)
lowmediumhighxhighmaxultracodexhigh+ multi-agent orchestration permission (session-only)Current OpenClaude effort picker appears to go up to
high. Addingxhigh,max, andultracodewould achieve feature parity.Proposed implementation
Ultrathink
ultrathink(case-insensitive match recommended)reasoning_effortoreffortparameter — this works purely at the prompt levelUltracode effort level
ultracodeas a selectable option in/effortpicker (alongsidexhighandmaxif not already present)xhighas thereasoning_effortvalue in the API requestAlso missing:
xhighandmaxeffort levelsThe
/effortpicker should ideally include all levels:low,medium,high,xhigh,max,ultracode. Currently it seems to cap athigh.Motivation
Users who work on complex codebases, multi-step implementations, and agentic workflows benefit from being able to request deeper reasoning on demand without changing their global session effort. The
ultrathinkkeyword is lightweight (no provider support needed) andultracodeenables the most demanding agentic use cases. Both are signature features of Claude Code CLI.Environment
Relevant references