Skip to main content

Claude Code Fable 5 vs Opus 5: An Operator's Model Choice

••5 min read•Claude Code

Use Opus 5 as the complex-coding default. Escalate to Fable 5 only when long-horizon investigation and verification are the work, not merely because the task matters.

A Claude Code repository routed to Opus 5 by default and Fable 5 on escalation

Use Opus 5 as the default for complex Claude Code work. Open a clean Fable 5 session when the job is long-horizon, materially ambiguous, and dominated by investigation or verification—not simply because the ticket is important.

That operating rule is more useful than a universal winner. Anthropic gives both models a 1-million-token context window and 128k maximum output, but positions them for different work: Opus for complex agentic coding and Fable for the hardest, longest-running agents.

Set a default and define escalation before work starts

Use this routing policy:

  • Start on Opus 5 for feature work, code review, test-backed bug fixes, and bounded cross-file refactors.
  • Stay on Opus 5 when it reaches the acceptance condition without repeated human rescue, even if Fable might produce a different solution.
  • Escalate to Fable 5 when the cause is unknown, evidence spans several systems, the session must run for a long time, or Opus repeatedly misses the same planning or verification requirement.
  • Do not escalate when zero data retention, latency, or a hard spending limit already rules Fable out.

For example, a checkout defect with a deterministic failing test is high priority but still bounded. Opus is the sensible route. An intermittent ordering failure involving a queue, cache, API gateway, and background worker is different: the investigation path changes as evidence arrives, so Fable's long-horizon positioning may be worth testing.

This is a starting policy, not a claim that one model wins every repository. Anthropic's current model overview supports the role distinction; your tests and review process determine whether the route worked.

Verify the route before you compare results

Check the client first:

bash
claude --version claude update claude --model opus

Opus 5 requires Claude Code v2.1.219 or later. Fable 5 requires v2.1.170 or later. In an interactive session, use:

text
/model /model opus /model fable

The Claude Code model configuration documents an easy-to-miss persistence rule: choosing a model with Enter saves it as the default for new sessions, while pressing s makes it session-only. Typing /model opus or /model fable directly also saves the default. Use the session-only option for a temporary comparison.

Aliases are not immutable IDs. opus resolves according to provider and can change over time. The current table maps it to Opus 5 on the Anthropic API, Claude Platform on AWS, Amazon Bedrock, and Google Cloud's Agent Platform; Microsoft Foundry is mapped differently. If reproducibility matters, pin claude-opus-5 or claude-fable-5 and confirm the active model in the startup header or picker.

The route from Claude Code version and model selection to provider and billing

A changed default also does not rewrite history. Resuming a session normally restores its prior model. Switching a conversation that already has output makes the next response reread the full history without the previous cached context. For a credible head-to-head, start two clean sessions from the same commit instead of changing the model halfway through one long conversation.

Stay on Opus or escalate? Look for failure signals

“The answer was not perfect” is too vague. Escalation needs an observable signal:

Signal after an Opus runRoute
Acceptance tests pass and review finds no material gapStay on Opus
The task statement is incomplete or contradictoryClarify the task; changing models will not fix the input
A tool, permission, environment, or dependency is brokenFix the route; do not call it a model failure
Planning repeatedly omits the same cross-system constraintTry a clean Fable session
Investigation loses the evidence chain over a long sessionTry Fable with the same outcome and access
Fable is unavailable under policy or ZDRKeep an allowed model; do not bypass the control

If Fable is missing from the picker, check version, organization access, availableModels, zero-data-retention requirements, and provider configuration in that order. On the Anthropic API, the picker lists Fable only after the server reports it available to the organization. ANTHROPIC_BASE_URL proves where a request is sent, not which downstream model ultimately answers.

Fable's safety classifiers add another route boundary. A declined Messages API request can return HTTP 200 with stop_reason: "refusal"; Claude Code may then show an automatic fallback. Attribute the result to the model that actually completed the work, not the model you originally selected.

Price the accepted result, not the model name

At Anthropic's published API list prices in August 2026:

ModelInput per million tokensOutput per million tokens
Opus 5$5$25
Fable 5$10$50

Fable is therefore 2x Opus for the same uncached input and output quantities. It does not follow that every completed task costs exactly twice as much. Cache activity, effort, retries, tool calls, review rework, and elapsed human time all affect the task outcome.

The table also does not describe every Claude Code bill. Claude plan allowances and usage credits are separate meters. Amazon Bedrock, Google Cloud, Microsoft Foundry, an LLM gateway, or another provider can set its own route and price. If you are not sure which meter applies, use the Claude Code API key versus subscription billing check before comparing dollars.

There is also an effort lever inside Opus 5. Anthropic recommends starting at the default high and adjusting based on task-specific evaluations. Lowering effort where quality holds may be a cleaner optimization than changing model families.

Keep one small decision record

A compact accepted-outcome record for Opus 5 and Fable 5

You do not need a synthetic benchmark suite. Choose one representative backlog item and keep the evidence needed to revisit the route:

text
Task and starting commit: Model ID and provider: Claude Code version: Acceptance condition: First valid verification: Review corrections and regressions: Elapsed time to accepted change: Meter evidence, if available: Decision for similar work:

Keep the task statement, repository instructions, allowed tools, permissions, and acceptance test the same. Run Opus first. Only open the Fable session if the escalation signal exists. A smaller accepted patch beats a larger confident one; a passing Opus result provides no demonstrated reason to pay for an upgrade.

For your next complex task, update Claude Code, confirm Opus 5, and begin there. Move the same starting commit to a clean Fable 5 session only when long-horizon investigation or repeated verification failure gives you a specific reason to escalate.

#Claude Fable 5#Claude Opus 5#Claude Code#Model Comparison#Anthropic
Share: