Category: IT Tips

Claude Opus 5.5 Is Here! Claude Code's New Default Model and a 20% Price Cut - What Changed from Opus 5 and the Settings to Update Now 🚀

This post was translated from the Korean original.

At a glance

Anthropic released Claude Opus 5.5 on September 22, 2026, and starting with Claude Code v2.1.280 it's the default model. Prices dropped 20% to $4/$20 and output is 30%+ faster, but a few settings need attention, such as the default effort changing to medium.

  • Verified hands-on on 2026-09-25 with Claude Code v2.1.281 (latest on npm) · anthropic 1.8.0 · python-dotenv 1.2.3 · Python 3.10.12
  • Opus 5.5 is $4/$20, 20% cheaper per token; cache reads are $0.20, 60% cheaper; output is 30%+ faster
  • From v2.1.280, the opus and default aliases all point to Opus 5.5 — the default model for Pro and Team Standard also changed from Sonnet to Opus
  • Default effort is medium, and the top-level effortLevel in user settings doesn't apply to Opus 5.5 → add claude-opus-5-5 to modelSettings
Contents10 sections

Hi there! It's Mojangcam 😎

A few days ago (September 22), Anthropic officially released Claude Opus 5.5. It's the first model in the new "5.5 family," and Claude Code v2.1.280 shipped the same day, switching the default model from Opus 5 to Opus 5.5 across the board. The lineup changed just one day after I wrote up model switching and effort settings, so today's post is the follow-up: I'll cover only what changed and what you need to tweak in your settings.

Here's what this post covers.

  • Opus 5.5's key changes — performance, speed, and price (compared with Opus 5 in a table)
  • How the default model changed in Claude Code v2.1.280 + how to check it in your session
  • What to recheck in settings.json and effort when moving from Opus 5 to 5.5
  • 4 breaking compatibility changes for anyone calling the API directly
  • How to use it in GitHub Copilot, plus how to choose until Sonnet 5.5 and Haiku 5.5 arrive

Bottom line: it's smarter and cheaper. According to Anthropic, it performs at Fable 5.1 level while costing 20% less per token than Opus 5 and around 40% less per real task. If you're on a subscription plan, you'll feel it too, since the usage limits went up 🙌

Claude Opus 5 → Opus 5.5 changes at a glance — token prices, cache reads, output speed, and new defaults


📌 What You'll Need

  • Claude Code v2.1.280 or later (the latest on npm as of 2026-09-25 is v2.1.281) — Opus 5.5 is recognized starting with v2.1.280
  • A Claude subscription (Pro, Max, Team, Enterprise) or an Anthropic API key
  • If you want to follow the API example: Python 3.10+, pip install anthropic python-dotenv (tested with anthropic 1.8.0 / python-dotenv 1.2.3)

Let's start by updating.

Terminal
claude update
claude --version

💬 Below v2.1.280, Opus 5.5 won't show up in the /model list at all, or typing claude-opus-5-5 gives you "does not support this model". Update first.


🧩 What Changed in Opus 5.5?

Here's how it lines up against Opus 5, based on the official announcement and model docs.

Item Claude Opus 5 Claude Opus 5.5
API model ID claude-opus-5 claude-opus-5-5
Input / output (per 1M tokens) $5 / $25 $4 / $20 (20% ↓)
Cache reads $0.50 $0.20 (60% ↓)
Cache writes (5 min / 1 hour) $6.25 / — $5 / $8
Batch API 50% off 50% off ($2 / $10)
Context / max output 1M / 128K 1M / 128K
Output speed Baseline 30%+ faster
Default effort high medium
Thinking On by default, can be turned off Always on, can't be turned off
Knowledge cutoff — June 2026

Let's break it down 💡

  • Performance: It ranks first in Anthropic's own benchmarks across agentic coding, computer use, and knowledge work. Terminal-Bench 4.0 is 66.4% (Opus 5: 52.3%, Fable 5.1: 55.8%), FrontierCode 54.4% (Opus 5: 48.0%), and OSWorld 2.0 81.8% (Opus 5: 74.0%). That said, the official docs themselves note that "at this level, benchmark gaps don't reflect real-world differences well," so rather than the numbers, just remember it as "Fable 5.1 class at an Opus price."
  • 40% lower cost: Token prices dropped 20%, and it finishes the same work with fewer tokens and fewer steps, so the cost per task drops by about 40%. The official example: a 200,000-line codebase audit that took Opus 5 over 20 hours and 2.5x the tokens was finished by Opus 5.5 in under 3 hours.
  • $0.20 cache reads: This one is bigger than it looks. In agentic work with long conversations, like Claude Code, most of the cost is cache reads. Those are now 60% cheaper, so the longer the session, the more you save.
  • A different writing style: A classic complaint about Opus 5 was that "it's too wordy and long-winded." 5.5 writes short, with the key point first. Many early testers say commit messages, PR descriptions, and code comments got noticeably more concise.
  • Fast mode: A fast mode (research preview) with up to 2.5x speed also opened up on the Claude API. It costs $8 / $40, though, double the price, so it's an option to turn on "only when you're in a hurry."
  • Higher subscription limits: The 5-hour usage limits went up for Pro, Max, Team, and (seat-based) Enterprise, and there's a new feature that lets you save one limit reset and use it whenever you want.
  • Safeguards: Its cybersecurity and biology capabilities are Fable 5.1 class, so it ships with safety classifiers of the same class. Requests flagged as cybersecurity are handed off to Opus 4.8, and biology to Opus 5. This barely affects general development, but in CTF or security research codebases you may see a notice that the model has switched.

Also, Sonnet 5.5 and Haiku 5.5 are announced for "the coming weeks." For now, only Opus is on 5.5.


📌 Step 1 - Check What Changed in Claude Code

In the v2.1.280 changelog, only three lines really matter to us.

  1. The opus alias points to Opus 5.5 — /model opus now turns on 5.5
  2. The default model for Pro and Team Standard changed from Sonnet → Opus — now default is Opus 5.5 on every plan (Pro, Max, Team, Enterprise, API)
  3. Effort levels saved before /effort started saving per model don't apply to Opus 5.5 — the new model starts from its own default (medium)

Open a session and check it like this.

Text
/status

If the header or the /status screen shows Opus 5.5, you're done. If you want to see exactly where the aliases point, type /model and open the picker.

Claude Code /model picker — default and opus both pointing to Opus 5.5

💡 Heads-up for Pro plan users. Sessions that ran on Sonnet 5 until yesterday run on Opus 5.5 starting today. It's smarter, but it burns through your limits faster than Sonnet. If you want to save your limits, drop down with /model sonnet, or use opusplan, which uses Opus for planning and Sonnet for implementation. On the flip side, if you're thinking "the answers feel a bit different today," the model switch is most likely why.


📌 Step 2 - Recheck settings.json When Moving from Opus 5 to 5.5

If you leave your existing settings file as is, things can go out of sync in three places. Open your user settings (~/.claude/settings.json, or C:\Users\<계정>\.claude\settings.json on Windows) and let's go through it together.

Copy-paste ready 👇 (tuned for Opus 5.5)

JSON
{
  "model": "opus",
  "effortLevel": "high",
  "modelSettings": {
    "claude-opus-5-5": { "effortLevel": "medium" },
    "claude-opus-5": { "effortLevel": "medium" }
  },
  "fallbackModel": ["claude-opus-5", "claude-sonnet-5"]
}

Let's break it down 💡

  • model: If you keep the opus alias, you'll move to 5.5 automatically. On the other hand, if you want to stay on Opus 5 for a while, pin the full ID claude-opus-5. Aliases follow each new version as it comes out
  • modelSettings: Saved effort is recorded per full model ID, so the medium you set for claude-opus-5 doesn't carry over to 5.5. You need to add a separate claude-opus-5-5 entry for 5.5. The example above sets both to medium
  • effortLevel: This is the default for models that don't have a saved level. But the top-level effortLevel in your user settings file does not apply to Opus 5.5. This key is the old format from before /effort saved per model, so it keeps working only for existing models like Opus 5 and Fable 5.1. (A top-level effortLevel in project, local, or managed settings, or one passed via --settings, applies to every model.) If it's confusing, spelling it out in modelSettings is the safest bet
  • fallbackModel: The list of models to try instead when the main model is overloaded (up to 3). Opus 5.5 just launched and traffic may spike, so putting claude-opus-5 first keeps the quality difference as small as possible

And there's one more thing about effort. Opus 5.5's default effort is medium, but it tends to think more deeply than Opus 5 at the same level (in the official docs' words). So if you set high on 5.5 with the same instincts you had for high on Opus 5, you may burn more tokens. The official recommendation is "don't carry over your old settings as is — start again from medium and raise it only when needed." I'm planning to use medium for a few days before deciding.

Text
/effort medium

💡 In the /model picker, Enter saves (it sticks for the next session too) and s applies to this session only — that rule hasn't changed.

You can also pin the alias with an environment variable. This is useful when your team needs a policy like "stay on Opus 5 until it's validated."

PowerShell
# Windows PowerShell — only applies in this terminal window
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "claude-opus-5"
claude
Terminal
# macOS / Linux
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5
claude
  • ANTHROPIC_DEFAULT_OPUS_MODEL: Pins the exact version the opus alias points to. With this set, /model opus, opusplan, and default all run on the model you put here

📌 Step 3 - For API Users: 4 Breaking Compatibility Changes

If you only use Claude Code, you can skip this step. If you call the API directly from Python, there are four places where just changing the model ID can get you a 400 error.

  1. Thinking can't be turned off — thinking: {"type": "disabled"} or enabled with an explicit budget_tokens returns 400. Drop the thinking field entirely or set it to {"type": "adaptive"}, and control depth with effort
  2. No forced tool calls — the any and tool types of tool_choice return 400. Switch to auto (the default) + strict: true, and if you really need it to use a tool, say so in the prompt
  3. Thinking blocks are tied to the model and conversation — moving a conversation from Opus 5 → 5.5 keeps the reasoning, but stepping down, like 5.5 → Sonnet 5, drops the earlier reasoning (the request still succeeds). For accounts created after 2026-08-31, resending with a changed system prompt or tools before a thinking block returns 400
  4. The old computer use tool computer_20251124 isn't supported (Claude API, Google Cloud) — migrate to computer_toolset_20260801

And while it's not an error, short text between tool calls now arrives as a thinking block instead of text. If your app streamed progress to the screen, it'll suddenly go quiet, so check your thinking.display setting.

Here's a minimal migration example. The key and model name are read from .env. Copy-paste ready 👇

Python
# anthropic 1.8.0 / python-dotenv 1.2.3 / Python 3.10+
from dotenv import load_dotenv
import os
from anthropic import Anthropic

load_dotenv()
api_key = os.getenv("ANTHROPIC_API_KEY")
model = os.getenv("CLAUDE_MODEL", "claude-opus-5-5")  # .env: CLAUDE_MODEL=claude-opus-5-5

client = Anthropic(api_key=api_key)

response = client.messages.create(
    model=model,
    max_tokens=4096,
    # Leave out the thinking field (adaptive is always on for Opus 5.5)
    # Leaving out tool_choice = auto
    messages=[{"role": "user", "content": "Write a Python function that counts the .txt files in a folder"}],
)

# Pick response blocks by type, not position (a thinking block may come first)
for block in response.content:
    if block.type == "text":
        print(block.text)

Here's the .env file. Make sure to add .env to your .gitignore!

Text
ANTHROPIC_API_KEY=여기에_키
CLAUDE_MODEL=claude-opus-5-5

Let's break it down 💡

  • load_dotenv(): Reads the .env in the same folder and loads it into environment variables. Not hardcoding keys and model names in your code is a basic habit on this blog
  • CLAUDE_MODEL: If you pull the model name out into an environment variable too, you can switch between Opus 5 ↔ 5.5 with one line in .env, no code changes
  • block.type check: Opus 5.5 can put a thinking block (empty with the default settings) at the very start of the response, so pulling it out by position, like content[0].text, breaks. Filter by type
  • effort: Raise it when needed, like output_config={"effort": "high"}. The default is medium

💬 The LLM integration posts on this blog (Discord Bot #9, Work Automation #5) are based on a local LLM (LM Studio), so the changes above don't affect them. They only matter if you use the paid API.


🛠️ Using It in GitHub Copilot and the Cloud

It opened up outside Claude Code on the same day, too.

  • GitHub Copilot: Starting September 22, Opus 5.5 was added to the model picker in Copilot Pro+, Max, Business, and Enterprise. With usage-based billing, it's charged at the provider's list price. In GitHub's early testing, it reportedly solved more terminal tasks than Opus 5 in less than half the steps
  • AWS, Google Cloud, Microsoft Foundry: Available on all of them on launch day. The model ID is anthropic.claude-opus-5-5 on Bedrock only, and claude-opus-5-5 everywhere else
  • Watch out for Claude Code aliases: On Bedrock and Google Cloud, opus points to 5.5 too, but on Microsoft Foundry, opus is still Opus 4.6. On Foundry, you need to specify the full ID directly

💡 What Should You Pick Now? (Until Sonnet 5.5 Arrives)

Here's a breakdown by task type.

Flowchart for picking a model by task type — Sonnet 5 for light, short tasks, Opus 5.5 medium for regular dev work, Opus 5.5 high or above for big, hard tasks

For this kind of task Pick Why
Multi-file feature work and refactoring, bug hunting, code review Opus 5.5 · medium Takes over the old "Opus 5 · high" slot for less. Start with the default as is
Typo fixes, short functions, questions about code already in context Sonnet 5 (or opusplan) Still half the price. The place to save your limits
Jobs that take more than half a day, root cause investigations, architecture decisions Opus 5.5 · high to xhigh first → Fable 5.1 if that doesn't crack it The official docs call out "long, broad tasks" as Opus 5.5's strength. Fable is still 2.5x the price
Subagents (exploration, search) CLAUDE_CODE_SUBAGENT_MODEL=haiku Nothing changed

Opus 5 vs 5.5 is a no-brainer. For the same money 5.5 is better, and it's actually cheaper. The only reason to stay on Opus 5 is something like "our team hasn't finished validating it." The real question is whether to keep using Fable 5.1. Since the official announcement flatly states it's "Fable 5.1 level on most tasks," your wallet will thank you if you save Fable for problems Opus 5.5 can't solve even at xhigh.


📌 Common Errors and Mistakes

1. Opus 5.5 isn't in the /model list / typing claude-opus-5-5 gives "does not support this model"

  • Cause: Claude Code is older than v2.1.280
  • Fix: Run claude update and restart. If you go through a company gateway, the gateway has to be configured to serve claude-opus-5-5

2. After updating, my Pro plan limits run out fast

  • Cause: From v2.1.280, Pro's default model changed from Sonnet 5 → Opus 5.5
  • Fix: Drop down with /model sonnet for light tasks, or use opusplan. To keep Sonnet as the default, set "model": "sonnet" in settings.json

3. I definitely saved /effort medium, but 5.5 shows a different level

  • Cause: Effort is saved per full model ID. A value saved for claude-opus-5 doesn't carry over to 5.5
  • Fix: Save /effort medium again with Opus 5.5 active, or add a claude-opus-5-5 entry to modelSettings

4. The API returns "thinking.type.disabled" is not supported for this model (400)

  • Cause: Thinking can't be turned off on Opus 5.5
  • Fix: Remove the thinking parameter → lower output_config.effort to low instead

5. The API returns tool_choice: type "tool" and "any" are not supported for this model (400)

  • Cause: Forced tool calls aren't supported
  • Fix: Set tool_choice to auto, and enforce schemas with strict: true or structured outputs

6. response.content[0].text throws an AttributeError

  • Cause: The first block may be thinking (with empty content)
  • Fix: Filter by type, like for block in response.content: if block.type == "text"

7. In a security research codebase, the session suddenly switches to Opus 4.8

  • Cause: Opus 5.5's safety classifier flagged it as cybersecurity → it falls back to Opus 4.8 (Opus 5 for biology)
  • Fix: That's expected behavior. If you'd rather be asked every time, turn off Switch models when a message is flagged in /config

🙌 Wrapping Up

Here's today's recap.

  • Opus 5.5 = Fable 5.1-class performance at $4 / $20. Compared with Opus 5: 20% ↓ token price, 60% ↓ cache reads, 40% ↓ real task cost, 30% ↑ output speed
  • From Claude Code v2.1.280, opus and default all point to Opus 5.5. Pro now defaults to Opus too, so recalibrate your sense of the limits
  • You need to add a new claude-opus-5-5 entry to modelSettings in settings.json for effort to take effect. The default effort is medium; don't carry over your old high instincts
  • For direct API calls, three things cause 400 errors: turning off thinking, forced tool_choice, and the old computer tool. Pick response blocks by type
  • Sonnet 5.5 and Haiku 5.5 are expected in the coming weeks. I'll cover them in a follow-up post once they're out

Next up, I'm back with Discord Bot Tutorial #32, and I'm also preparing a full rundown of new features for the official release of Python 3.15 on October 1. Stay tuned 🙌

Already switched to Opus 5.5? How does it feel? Let me know in the comments, especially whether medium effort is good enough, and I'll reflect it in the next post!


Author

Mojangcam

A hands-on dev and IT log: code I write, servers I run, and the errors I fix along the way.