On June 9, 2026, Anthropic shipped Claude Fable 5, a model in a new tier that sits above Opus. I have been building on the Claude API for over a year, and this is the first release that made me stop and re-read my whole prompt stack before touching the model string. Here is what actually changed and what it means if you ship software.
Fable 5 is the public release of the Mythos line, the family that earlier in the year unsettled the security world with how well it found and exploited vulnerabilities. The version you and I get is the same underlying model with safeguards bolted on. Anthropic calls the safe one Fable and the unrestricted one Mythos, and only a small group of cyberdefenders gets Mythos.
The numbers, for context:
That last point matters more than the benchmarks. You do not tune a thinking budget anymore. The model decides.
At $10/$50, Fable 5 is not your default model. It is your "this task is hard and getting it wrong is expensive" model. Opus 4.8 at $5/$25 remains the workhorse for most application traffic, and Haiku 4.5 at $1/$5 still wins on classification and routing.
The way I think about it now is a three-tier ladder:
Haiku 4.5 → routing, classification, cheap extraction
Opus 4.8 → default for app traffic, agentic loops, coding
Fable 5 → long-horizon agentic work where correctness pays for itself
The "longer and more complex the task, the larger Fable's lead" framing from the announcement is the actual buying signal. A one-shot summarization does not justify 2x the cost. A multi-hour autonomous refactor that would otherwise need human correction might.
If your code already runs on Opus 4.7 or 4.8, moving to Fable 5 is mostly a model-string swap:
const response = await client.messages.create({
model: "claude-fable-5",
max_tokens: 64000,
thinking: { type: "adaptive" },
output_config: { effort: "high" },
messages: [{ role: "user", content: "..." }],
});
The catch: on Fable 5, an explicit thinking: { type: "disabled" }
returns a 400. On Opus 4.8 you can disable thinking. On Fable 5 you cannot, so just omit the param if you do not want to set it. Sampling params (temperature
, top_p
, top_k
) are gone too, same as the rest of the 4.7+ family. If you still pass them, you get a 400.
And remember to stream anything with a high max_tokens
. 128K output through a non-streaming request will hit SDK HTTP timeouts.
Here is the part that I find genuinely interesting as someone who works in security. Fable 5 has hard safeguards in cybersecurity, biology, chemistry, and health. If you ask it something high-risk in those areas, the request does not just refuse. It falls back to Opus 4.8 to answer safely.
So if you run a security tool on Fable 5 and feed it something that trips a safeguard, you are silently getting Opus 4.8 output for that request. For my smart-contract auditing work, that means I cannot assume Fable-tier reasoning on every prompt. Some auditing prompts that look adversarial may quietly downgrade. I now log response.model
on every call to know which model actually answered.
const used = response.model;
if (!used.startsWith("claude-fable-5")) {
logger.warn({ requested: "claude-fable-5", served: used }, "model fell back");
}
The headline is "most capable model ever released." The practical reality is more nuanced: a powerful, expensive tier with guardrails that change behavior on the prompts security people send most. Read the model field. Log it. Do not assume.