Claude Opus 5.5 Best Practices: Set the Dial, Name the Behavior
Claude Opus 5.5 best practices for Claude Code: start at medium effort, cut think-hard prompts, and stop long runs from ending early.
Agentic Orchestration Kit for Claude Code.
The short version of Claude Opus 5.5 best practices: effort decides how hard the model thinks, your prompt decides what it does, and a prompt only changes behavior when it names the exact behavior you want. Anthropic's prompting guide for Opus 5.5 says two things that set up everything below. First, "Existing Claude Opus 5 prompts should perform well without changes." Second, "Lowering effort reduces thinking, and with it cost and latency, more reliably than prompt instructions do."
This post assumes you already run Opus 5.5 in Claude Code. For benchmarks, pricing, and the four API changes that return a 400, read the Claude Opus 5.5 launch breakdown. None of that is repeated here.
One note on sources. Anthropic's prompting guide is written for the API and never mentions Claude Code by name. Every Claude Code mapping below is built from Claude Code's own documentation or from the claude.dev playbook for Opus 5.5 in Claude Code by Addy Osmani (September 22, 2026). Where a mapping is our own reading, we say so.
Switching to Opus 5.5 in Claude Code
Opus 5.5 requires Claude Code v2.1.280 or later. From that version it is the default model on Pro, Max, Team, Enterprise, and the Anthropic API, and the opus alias resolves to it on the Anthropic API, Claude Platform on AWS, Amazon Bedrock, and Google Cloud. Microsoft Foundry still resolves opus to Opus 4.6, so pin the full ID there.
Three settings behave differently from Opus 5:
- Effort starts at
medium. Per the Claude Code model configuration docs, the default is "highon every model that supports effort, except that Opus 5.5 defaults tomedium." A top-leveleffortLevelin your user settings does not carry over to it, but one in project, local, or managed settings still applies to every model. - Thinking cannot be turned off. The docs are explicit: "You can't turn thinking off on Opus 5.5 or the Fable models."
Alt+T(Option+Ton macOS),alwaysThinkingEnabled, andMAX_THINKING_TOKENS=0have no effect. - Flagged requests move to another model. Biology-flagged requests re-run on Opus 5 and cybersecurity-flagged ones on Opus 4.8, with a notice in the transcript.
If you want faster replies for back-and-forth work, /fast is available for Opus 5.5 at a higher per-token price. The fast mode guide covers when that trade pays.
What Changes in Your Prompts When You Move From Opus 5
Four prompt-side behaviors change without any code change: effort defaults lower and each level thinks more (Practice 1), thinking is always on (Practice 2), long runs stop to report (Practice 3), and the model starts before it has looked (Practice 4). The API-side changes, such as forced tool_choice returning a 400, are covered in what changes in your code.
Practice 1: Pick the Opus 5.5 Effort Level Per Task, Starting at Medium
Anthropic says: "Start at medium, the default on Claude Opus 5.5 (Claude Opus 5 defaults to high), set it explicitly, and test several levels against your own evals rather than carrying over the setting you used on Claude Opus 5."
The evidence for medium as a daily setting is unusually strong. On Terminal-Bench 4.0, Anthropic's announcement says "Opus 5.5 at default effort beats Opus 5 at max effort for about a fifth of the cost." On FrontierCode, medium scores 54.6%, above the model's own 54.4% at max. CursorBench behaves normally, climbing from 52.5% at medium to 57.8% at max. Partners report the same shape. Factory's Zimu Li: "Claude Opus 5.5 is the first model we'd default to at medium effort." Deloitte Consulting LLP's Carl Bennett: "On US consulting analysis, low thinking effort matched its higher thinking settings on half the output and passed our quality checks."
The catch is the per-level cost: "Claude Opus 5.5 tends to think more per turn than Claude Opus 5, especially at xhigh and max." Porting xhigh from your old config buys a longer and more expensive turn than it did on Opus 5. Anthropic's rule: "Reserve xhigh and max for work where you've measured a quality gain."
The best effort level for Opus 5.5, by task
| Level | Use it for on Opus 5.5 | Where it lives in Claude Code |
|---|---|---|
low | File scouts, lookups, formatting, classification subagents | effort: low in the subagent's frontmatter |
medium | Daily coding and review. The default, and the level to beat | Leave the session alone |
high | Work where your own comparison shows medium missing things | /effort, pick high, press s for this session only |
xhigh | Long agentic runs you have measured it winning on, like large migrations | effort: xhigh on the skill or agent that runs that work |
max | One-off hard problems. Claude Code applies it to the current session only | /effort max, or ultrathink in a single prompt for one turn |
Anthropic's effort docs pitch xhigh at "Long-running agentic and coding tasks (over 30 minutes) with token budgets in the millions." Claude Code's docs warn that max "may show diminishing returns and is prone to overthinking."
Move effort per task, not per session
In Claude Code, the per-task dial is frontmatter. Skills and subagents accept an effort field, which "applies when that skill or subagent is active, overriding the session level but not the environment variable."
Before (carried over from Opus 5 in the project's .claude/settings.json, where it applies to every model):
After (session stays at medium, the dial moves with the work):
For a single hard turn, put ultrathink in the prompt. Claude Code adds an in-context instruction for that turn, and "The effort level sent to the API is unchanged." Phrases like "think hard" pass through as plain text.
API and Agent SDK builders need one more setting. Thinking counts toward max_tokens even when you do not see it. The prompting guide reports that a max_tokens of 128,000 "has worked well in Anthropic's testing" for long agentic coding turns, and the migration guide says to start at 64k for xhigh or max and tune from there.
Skip it when: you have measured xhigh beating medium on a workload. Then keep that level on that workload's agent. For when to change the model instead of the dial, see model versus effort, and for what each rung costs, the Claude Code effort ladder.
Practice 2: Delete Every Instruction About Thinking
Anthropic says: in chat, "if your system prompt contains instructions that tell Claude to think carefully before answering, consider removing them for Claude Opus 5.5." In Anthropic's test, removing such a line "made replies start sooner, with no clear decline in the quality of the reply." The claude.dev playbook puts it more simply: "Opus 5.5 always thinks before it replies, and it decides how much."
In Claude Code: your CLAUDE.md, your agent definitions, and any saved prompts. Three kinds of line come out:
- "Think carefully" and "think step by step." Effort is the control now.
- "Write out your reasoning before the answer." Anthropic warns that "a prompt that pushes the model to reproduce its reasoning in the response text can be declined with the
reasoning_extractionrefusal category." Read the reasoning withCtrl+Oinstead, or setshowThinkingSummaries: true. - "Do not think, just answer." A leftover from setups that disabled thinking on Opus 5. Anthropic says to remove the no-thinking rule "either way." If you need speed, the guide's replacement line is
Answer directly without deliberating., measured against quality.
Before (CLAUDE.md):
After:
The chat exception: tell it earlier answers are settled
In multi-turn chat, Opus 5.5 "sometimes goes back over an earlier answer while it thinks about a new message, even a short follow-up." If replies to follow-ups feel slow, Anthropic's two sentences fix it:
Skip it when: the work is a long analysis or an agentic task, where "a later step can reveal a mistake in an earlier one." That covers most Claude Code sessions, so this line belongs in a Q&A project, not a coding CLAUDE.md.
Practice 3: Name the Early Stops You Do Not Want
Anthropic says: "On long tasks with several parts, Claude Opus 5.5 keeps the user updated as it works, and some of those updates end the turn with text rather than a tool call." An unattended loop reads that as done and stops. The fix is specific: the model "is responsive to instructions that name the specific kinds of early stop you want it to avoid," and "It also helps to name the stops you do want."
In Claude Code: the claude.dev playbook puts a stop rule in CLAUDE.md:
That is the interactive version. For runs nobody is watching, the prompting guide publishes a longer standing instruction, reproduced in full from Anthropic's unattended-runs section:
Anthropic says to add it "from the first request of the session," because a mid-session change to the system prompt invalidates earlier thinking blocks. Our read: in Claude Code that means wiring it in before the session starts. Save it as .claude/unattended.md and append it at launch:
Before:
After:
Also our read: for interactive sessions you run unattended, a custom output style in .claude/output-styles/ with keep-coding-instructions: true carries the same text. Select it before you start the task.
What /goal already does
The guide suggests you "state the completion condition up front and have a separate, smaller model check the conversation against it at each end of turn." The /goal docs describe exactly that: "After each turn, a small fast model checks whether the condition holds." It also skips evaluation while a subagent or background command is still running, which is the guide's other rule, and a turn clause caps the continuations. Our read: /goal is the shipped Claude Code version of this section. Pair it with auto mode to remove per-tool prompts, and keep the task list in a file such as TASKS.md, as the claude.dev playbook suggests, so it survives compaction.
Skip it when: someone is watching. Anthropic says to "leave the addition out of human-in-the-loop applications." Keep your permission prompts on for destructive commands either way. If you want a Stop hook with your own logic instead of /goal, the Stop hook task enforcement guide shows the pattern.
Practice 4: Tell It to Look Before It Acts
Anthropic says: "Claude Opus 5.5 tends to get to work quickly, and on loosely specified tasks it helps to tell the model to look through the relevant sources before acting." With this one sentence, Opus 5.5 "completed noticeably more" multi-app automation tasks correctly at both medium and max:
In Claude Code: sessions and agents connected to MCP servers for email, documents, spreadsheets, or a CRM. Put the sentence in the agent definition or the skill that runs that workflow, not in your global CLAUDE.md, because it costs extra tool calls on every task it touches.
Before: Update the renewal price for Acme in the billing sheet. sent to a bare session, which edits the sheet straight away.
After: the same task sent to a billing-ops agent whose definition opens with the sentence above, so it reads the account's email threads and sheet tabs first, including the ones where a discount might have been agreed.
Fable 5 is the opposite case: it investigates before acting by default, which is why the Fable 5 practices tell you to brief the outcome and step back. Our read: if one prompt library serves both models, scope this sentence to your Opus 5.5 agents.
Skip it when: the task is fully specified, or the sources hold untrusted content. Anthropic's warning: "Because it tells the model to act on what it finds, keep untrusted content out of the records it searches."
Practice 5: Give Your Agent Team a Clock
Anthropic says: "Claude Opus 5.5 pays close attention to information about elapsed time." In a lead-plus-subagents setup, the guide suggests a line on each message back to the model, such as elapsed 340s / 1200s. The model "paces its work to finish inside the budget and usually finishes well before it." If you cannot predict a budget, one sentence does most of the work:
The distinction worth keeping: "lowering effort reduces the work itself, whereas a budget mostly keeps more agents working in parallel."
In Claude Code: the subagent docs describe no time budget, so the sentence goes in the lead agent's prompt or the plan you hand an agent team. For the elapsed line itself, a PostToolBatch hook works. Per the hooks reference, its additionalContext is "injected once before the next model call," wrapped in a system reminder. This script prints elapsed seconds against an optional RUN_BUDGET_SECONDS:
The clock starts at the first tool batch of the session, not at your first prompt. The budget is advisory, so keep your own timeout if you need a hard stop.
Skip it when: correctness matters more than wall-clock time. Anthropic's caveat: "under time pressure the model might search and verify a little less." For how to split work across agents in the first place, see sub-agent parallel and sequential patterns.
Practice 6: Mark Text You Paste In
Anthropic says: Opus 5.5 "resists indirect prompt injection, meaning instructions that arrive through tool results, web pages, and on-screen or browser content, better than any earlier Opus model." Pasted text is the gap. Our launch post covers the system card finding that Opus 5.5 is weaker than recent models against instructions buried in text a user pastes into their own prompt. The prompting guide gives the fix: "mark which text is the user's own and which was pasted from somewhere else," with a random ID on matching tags.
In Claude Code: anything you paste into a prompt, such as issue bodies, customer emails, log dumps, or web copy. Add the note to CLAUDE.md:
Before:
After:
Skip it when: never, for text you did not write. Anthropic is clear it is partial: "The tags are plain text and can be imitated, so treat this as one guardrail." Pair it with sandboxing for anything that runs unattended.
Practice 7: Ban Design Defaults by Name
Anthropic says: "a general instruction such as 'avoid a generic AI look' mostly swaps one default for another. It responds well to instructions that name specific patterns to avoid." Then: "Work iteratively: check which styles the first result used instead, and extend the list if needed."
In Claude Code: a frontend skill or a design rules file that holds a running ban list. Each time a first render lands on a new default, add it to the list.
Before:
After (the ban list is Anthropic's example):
Skip it when: you have a design system. Name its tokens and components instead of the things to avoid.
What to Delete From an Opus 5 Prompt Library
Anthropic's migration guide says to "Re-evaluate model-specific prompt instructions." This is the pass, line by line. If you are also trimming CLAUDE.md generally, the Claude 5 context engineering rules cover the broader cut.
| Instruction in your Opus 5 prompts | Action on Opus 5.5 | Why |
|---|---|---|
| "Think carefully" / "think step by step" | Delete | Thinking is always on. Effort is the control |
| "Write out your reasoning before answering" | Delete, read thinking with Ctrl+O | Can be declined as reasoning_extraction |
| "Do not think" rule from a thinking-off setup | Delete | Anthropic says remove it either way |
Saved effortLevel: xhigh | Re-sweep from medium | Each level thinks more on Opus 5.5 |
| "Double-check your work" / verification steps | Keep deleted | Opus 5 guidance, still in force |
| "After every 3 tool calls, summarize progress" | Remove | The migration guide says to try removing forced status cadence |
| Conciseness block written for Opus 5 | Test without it | Our read: Box reports answers "40% less verbose" on 5.5 |
| Subagent damping prose | Keep the env var caps, test the prose | Our read: delegation improved, per Column |
| Chart and screenshot workarounds | Re-test, keep crop tools for dense inputs | Opus 5.5 reads visuals more precisely without tools |
| Generic "distinctive frontend" block | Replace with a named ban list | Generic direction swaps one default for another |
For contrast, the Opus 4.7 practices recommended "think carefully" prompts and detailed step lists, both of which Opus 5.5 makes redundant.
Where Opus 5.5 Still Needs Help
Three weak spots survive good prompting, and they are the ones to watch in your own sessions.
Unattended runs end early without a stop rule. An overnight migration can finish at 4 of 6 endpoints with a tidy summary of what comes next. This is the most expensive failure, because you find it in the morning.
Pasted text is the weak surface. Injection through tool results and web pages improved. Injection through text you paste into your own prompt did not, and tags are only a partial fix.
Flagged requests change models. A biology-flagged request moves the session to Opus 5 and a cybersecurity-flagged one to Opus 4.8. The flag can fire on your CLAUDE.md and git status alone, before you ask anything unusual. Run /model to switch back, or /config to be asked first.
When medium and then xhigh both fall short on your own evals, that is the signal to try Claude Fable 5.1 rather than more effort. Choosing between models covers the routing.
Where the Code Kit Fits
Practice 1 is a frontmatter edit per agent. Practices 3 and 6 are CLAUDE.md lines. That is the layer ClaudeFast's Code Kit ships. In Code Kit v5.7, all 18 agent definitions pin model: opus and an effort level in frontmatter (medium, with the deep researcher at high), so the dial already moves per agent rather than per session. Tuning it to your own workloads is a one-line change per agent.
Frequently Asked Questions
How do you prompt Opus 5.5? Start from your Opus 5 prompts, delete instructions about thinking, set effort explicitly from medium, and name the specific behaviors you want: which stops to avoid, which sources to explore, which design defaults to ban.
Is Opus 5.5 available in Claude Code? Yes, from Claude Code v2.1.280, where it is the default model on Pro, Max, Team, Enterprise, and the Anthropic API. Select it with /model opus or /model claude-opus-5-5.
What effort level should I use for Opus 5.5? medium, the default, for daily coding. It beats Opus 5 at max on Terminal-Bench 4.0 for about a fifth of the cost. Use low for scout and lookup subagents. Move to xhigh only on workloads where you have measured a gain, and set it on that skill or agent rather than the session.
What does effort actually do in Claude Code? Per the Claude Code docs, effort levels "control adaptive reasoning, which lets the model decide whether and how much to think on each step based on task complexity." It applies to every output token, so it also shapes tool calls and replies.
How do I change the effort level in Claude Code? Run /effort for a slider or /effort medium to set a level. Press Enter to save it as your default for that model or s to apply it to this session only. You can also set effort in a skill or subagent's frontmatter, launch with --effort, or set CLAUDE_CODE_EFFORT_LEVEL.
How do I check which effort level Claude is using? Look at the session header. Claude Code shows the level next to the model name, for example "with low effort," and the footer briefly shows it at startup and whenever it changes.
Should I still tell Claude to "think hard"? No. Opus 5.5 always thinks, and effort controls how much. Claude Code passes "think hard" through as ordinary text. If you want one turn of deeper reasoning without changing the session, use ultrathink, the one keyword Claude Code acts on.
Do my Opus 5 prompts still work on Opus 5.5? Yes. Anthropic says they "should perform well without changes." The work is deletion, listed in the table above.
Why does Opus 5.5 stop partway through a long task? Some progress updates end the turn with text instead of a tool call, and an unattended loop reads that as the finish. Name the stops you do not want in CLAUDE.md and set a /goal.
What is the most effective way to prompt Claude? State the finish line, give the whole task in one message, and name specific behaviors rather than general qualities. For reusable patterns, see our Claude Code prompt templates.
Next Steps
- Run one task at
medium, then the same task atxhigh, and keep the higher level only where the result changes - Delete the thinking instructions from your CLAUDE.md and agent files, using the table above
- Add the stop rule to CLAUDE.md and set a
/goalon your next long run - Put the rules that outlive a single prompt where they belong, with CLAUDE.md that actually gets followed
On Opus 5.5, most of the prompt work is removal. The thinking takes care of itself once the dial is set, and what is left is naming the behaviors you want and the ones you do not.
Last updated on