reasoningunverifiedHand-written lesson

Anthropic

Claude Opus 5.5

anthropic/claude-opus-5.5

Anthropic's flagship for demanding reasoning, multi-step changes in large codebases, and long-horizon agent work. Reach for it when a wrong answer costs more than the tokens.

RoleThe planner in a coding agent

$4

In / M

$20

Out / M

1.0M

Context

AA intelligence index
59.1
Inputs
text, image, file
Outputs
text
Tools
Listed
Structured output
Listed
Reasoning
Listed
Weights
Not verified
Listed
Sep 22, 2026
Live from the OpenRouter listing ↗

01 · What it's good at

Use it for this.

Three jobs this model is built for, and the ones to give to something else.

01

Multi-step changes across a large codebase

02

Long-horizon agent loops that call tools for many turns

03

Hard debugging and design reviews where you want the careful answer

Skip it for

  • Bulk summarizing or tagging. A small model like Haiku 5.5 is built for that volume
  • Snappy chat. Reasoning is mandatory on this listing, so it always thinks first

02 · Example tasks

What you'd actually send it.

Real inputs, not a benchmark. Paste one into the snippet below to try it.

You send

Migrate every route in src/routes from Express to Hono. Keep behavior identical, update the tests, and list each file you changed with a one-line reason.

Why this model

Many files, one plan. This is the multi-step codebase work the listing positions Opus for.

03 · Your stack

Where it sits: Plan & reason.

Put Opus in the main agent loop. It reads the task, plans, calls your tools (read a file, run tests, edit), and decides when it is done. Your runner, such as Claude Code, the OpenRouter Agent SDK, or your own loop, executes the tools. Hand narrow sub-tasks to a cheaper model.

04 · Wire it up

One request. Paste and run.

Uses OpenRouter, so one key works for every model on this site. Set OPENROUTER_API_KEY and swap the prompt for one of the tasks above.

// OpenRouter speaks the OpenAI Chat Completions format.
const res = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "anthropic/claude-opus-5.5",
    "messages": [
      {
        "role": "system",
        "content": "You are a coding agent in a TypeScript monorepo. Plan first, then use tools. Stop when the tests pass."
      },
      {
        "role": "user",
        "content": "The test checkout.spec.ts fails with 'total is NaN'. Find and fix the cause."
      }
    ],
    "reasoning": {
      "effort": "high"
    },
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "read_file",
          "description": "Read a file from the repository",
          "parameters": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              }
            },
            "required": [
              "path"
            ]
          }
        }
      }
    ]
  }),
});
const data = await res.json();
const message = data.choices[0].message;
for (const call of message.tool_calls ?? []) {
  // Run the tool yourself, then send the result back as
  // { role: "tool", tool_call_id: call.id, content: result } and call again.
  console.log(call.function.name, call.function.arguments);
}
console.log(message.content);

05 · Watch out for

Gotchas.

  • Reasoning is mandatory on the OpenRouter listing (default effort: high). Lower reasoning.effort on easy turns to cut cost and latency.

  • Check the live price against Sonnet 5.5. Many teams default to Sonnet and escalate to Opus only when a task stalls.

  • Agents fail on tooling more than on model quality. Give it a test command and file access before blaming the model.

Sources

Lessons are written from each model's listing and the linked docs. We don't publish our own benchmark numbers; the index above is Artificial Analysis, as shown on OpenRouter.

Keep learning

Same board, other models.