# What's new in Claude Fable 5.1

> Source: <https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1>
> Published: 2026-09-01 17:53:53+00:00

We use cookies to deliver and improve our services, analyze site usage, and if you agree, to customize or personalize your experience and market our services to you. You can read our Cookie Policy [here](https://www.anthropic.com/legal/cookies).

Overview of new features, breaking changes, and capability improvements in Claude Fable 5.1 and Claude Mythos 5.1.

Claude Fable 5.1 extends Claude Fable 5 at the same input and output prices, with cache reads at a quarter of the cost, and brings stronger long-running agentic coding, multistep research, and document, spreadsheet, and slide work. For most workloads, start with Claude Opus 5 (see [Choosing a model](/docs/en/about-claude/models/choosing-a-model)). Use Claude Fable 5.1 for demanding reasoning and long-horizon agentic work, or when your evals on Claude Opus 5 at higher effort still fall short. Claude Mythos 5.1 offers the same capabilities to [Project Glasswing](https://anthropic.com/glasswing) participants only.

If you already call Claude Fable 5, three changes are breaking: [forced tool use returns an error](#forced-tool-use-is-not-supported), [earlier models can't read its thinking blocks](#thinking-blocks-are-tied-to-the-model-that-produced-them), and [editing earlier turns invalidates thinking blocks](#editing-earlier-turns-invalidates-thinking-blocks). Five are additive: [per-message effort](#change-effort-mid-conversation-beta) (beta), [turn-scoped system messages](#turn-scoped-system-messages-beta) (beta), [readable progress updates between tool calls](#progress-updates-between-tool-calls-beta) (`display: "updates"`

, beta), a [lower cache read price](#pricing), and [content provenance](#content-provenance).

| Model | Claude API ID | Description | Availability |
|---|---|---|---|
| Claude Fable 5.1 | Successor to Claude Fable 5, for long-running agentic coding, knowledge work, and research | All customers, on the Claude API and partner platforms | |
| Claude Mythos 5.1 | Same capabilities as Claude Fable 5.1. Successor to Claude Mythos 5. |
|

Claude Fable 5.1 and Claude Mythos 5.1 share specs and pricing:

For all current models, see the [models overview](/docs/en/models/overview).

Claude Fable 5.1 and Claude Mythos 5.1 don't support forced tool use. `tool_choice`

set to `{"type": "any"}`

or `{"type": "tool", "name": "..."}`

returns a 400 `invalid_request_error`

:

```
tool_choice: type "tool" and "any" are not supported for this model.
```

`tool_choice: {"type": "auto"}`

(the default) and `{"type": "none"}`

are unchanged. The same validation applies to the [token counting](/docs/en/build-with-claude/token-counting) endpoint.

Thinking is always on for these models, and a forced tool call would skip it. The model would write its working-out into the tool arguments instead, which lowers argument quality. For schema-valid JSON, keep `tool_choice: {"type": "auto"}`

and set `strict: true`

with [strict tool use](/docs/en/agents-and-tools/tool-use/strict-tool-use), or move the schema to [structured outputs](/docs/en/build-with-claude/structured-outputs). To make the model call a tool rather than reply in text, state in the prompt when the tool applies (for example, "Use the `get_weather`

tool to answer"). Claude Fable 5.1 follows explicit tool instructions reliably.

Every thinking block records which model produced it, and it's preserved in one direction only: Claude Fable 5.1 reads earlier models' thinking blocks, and no earlier model reads Claude Fable 5.1's. A conversation that moves onto Claude Fable 5.1 (from Claude Opus 5, Claude Fable 5, or any earlier Claude model) keeps its reasoning. A conversation that moves from Claude Fable 5.1 to any of those models loses it for the turns that run there.

When a request carries a block the target model can't read (a router or fallback that switches models mid-conversation, for example), the API drops the block before the model sees it. Dropped blocks don't count toward `input_tokens`

and aren't billed. With the `thinking-binding-controls-2026-08-01`

beta header, the drop is reported in a top-level `input_transformations`

array. Without it, the drop is silent. See [Preserved thinking](/docs/en/build-with-claude/thinking#preserved-for-model).

Modifying anything before a Claude Fable 5.1 thinking block (the `system`

prompt, the `tools`

, or an earlier message) results in an error on the next request, or in the block being dropped if you opt into that. Claude Mythos 5.1 doesn't run this check. Claude Code, claude.ai, [Claude Managed Agents](/docs/en/managed-agents/overview), and the [Claude Agent SDK](https://code.claude.com/docs/en/agent-sdk/overview) keep that prefix intact for you. If your code builds the `messages`

array itself, check it before you migrate: [Preserved thinking](/docs/en/build-with-claude/preserved-thinking) walks through the check and each fix. The check is enforced for new accounts created on or after August 31, 2026. For accounts created earlier, the API records the mismatch but acts on it only when the request sets `thinking.block_binding.prefix_mismatch_behavior`

.

These patterns invalidate every later thinking block:

`system`

prompt or `tools`

array between requests in the same conversation.These keep later blocks valid: removing a leading run of thinking blocks (oldest first), letting server-side compaction or context editing trim the history, moving `cache_control`

markers, and changing `effort`

between requests. Removing a thinking block from anywhere other than the start of the run invalidates every thinking block after it.

Where the check is enforced, a request that replays an invalidated block is rejected with a 400 whose message says `The block is bound to a different conversation`

. To drop the block and continue instead, send the `thinking-binding-controls-2026-08-01`

beta header with `thinking.block_binding.prefix_mismatch_behavior: "drop_block"`

. The drop is reported in `input_transformations`

with `reason: "prefix_binding_mismatch"`

.

To keep thinking valid across a long session, treat the conversation as append-only. Add instructions with a [mid-conversation system message](/docs/en/build-with-claude/mid-conversation-system-messages) ([turn-scoped](#turn-scoped-system-messages-beta) if it should apply to one turn only) and change tools with [mid-conversation tool changes](/docs/en/build-with-claude/mid-conversation-system-messages#mid-conversation-tool-changes) rather than editing `system`

or `tools`

. Trim context with server-side [context editing](/docs/en/build-with-claude/context-editing) or [compaction](/docs/en/build-with-claude/compaction), which don't count as edits. These patterns also keep the [prompt cache](/docs/en/build-with-claude/prompt-caching) warm. To find out whether your integration edits history, run a session with `prefix_mismatch_behavior: "drop_block"`

and log `input_transformations`

: the [migration guide](/docs/en/models/fable-5-1/migration-guide#fable-5-1-preserved-thinking) has the three-step check. See [Preserved thinking](/docs/en/build-with-claude/thinking#preserved-in-conversation) for the full rules.

On Claude Fable 5.1 you can change the [effort](/docs/en/build-with-claude/effort) level mid-conversation without invalidating the prompt cache. Raise it for a hard step and lower it for routine ones. Per-message effort is in beta: include the `mid-conversation-output-config-2026-07-01`

beta header. Claude Fable 5.1, Claude Mythos 5.1, and Claude Opus 5 support it on the Claude API.

```
client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=4096,
    output_config={"effort": "high"},
    messages=[
        {
            "role": "user",
            "content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
        },
        {
            "role": "assistant",
            "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
        },
        # Effort-only system message: the new level takes effect from the next user turn.
        {"role": "system", "content": [], "output_config": {"effort": "low"}},
        {"role": "user", "content": "Summarize the plan in one sentence."},
    ],
    betas=["mid-conversation-output-config-2026-07-01"],
)

for block in response.content:
    if block.type == "text":
        print(block.text)
```

See [Per-message effort](/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta) for details.

A [mid-conversation system message](/docs/en/build-with-claude/mid-conversation-system-messages) can be scoped to one turn. Set `clear_at: "next_user_message"`

on a `role: "system"`

message and its text carries system-prompt authority for the current turn, then stops rendering once a later `user`

message exists. The message stays in `messages`

and you keep sending it back verbatim, so nothing earlier in the conversation changes. The [prompt cache](/docs/en/build-with-claude/prompt-caching) keeps matching, later [thinking blocks stay valid](/docs/en/build-with-claude/thinking#preserved-in-conversation), and a cleared message costs no input tokens. Use it for per-turn reminders in a tool loop ("check your inbox before running more code", "the user can't see that tool output") instead of injecting text into the history and deleting it on the next request. Turn-scoped system messages are in beta: include the `mid-conversation-system-clear-at-2026-08-21`

beta header. See [Turn-scoped system messages](/docs/en/build-with-claude/mid-conversation-system-messages#turn-scoped-system-messages).

```
{
  "role": "system",
  "clear_at": "next_user_message",
  "content": "Results have landed in your inbox. Check it before running more code."
}
```

Like Claude Fable 5, Claude Fable 5.1 writes short progress updates between tool calls on what it found and what it will do next, though fewer of them (see [Changed from Claude Fable 5](#changed-from-claude-fable-5)). Each update arrives as its own `thinking`

block immediately before the tool call. Under the default `thinking.display`

of `"omitted"`

those blocks come back empty, like reasoning, so a long agentic turn can look silent to your users. What's new is the `display: "updates"`

option: set it with the `thinking-display-updates-2026-08-18`

beta header to receive the progress updates as text while reasoning stays hidden. Any `thinking`

block with non-empty text is then a status line you can show the user. `"summarized"`

returns them too, mixed with summarized reasoning. See [Progress updates between tool calls](/docs/en/build-with-claude/thinking#progress-updates).

Text generated by Claude Fable 5.1 and Claude Mythos 5.1 carries Anthropic's statistical text watermark on every platform where the model is available. Supported image and video files Claude produces (through the [code execution tool](/docs/en/agents-and-tools/tool-use/code-execution-tool), for example) carry signed [C2PA](https://c2pa.org/) Content Credentials when you retrieve them through the [Files API](/docs/en/build-with-claude/files) on the Claude API.

The watermark doesn't change the meaning, quality, or readability of the output. It adds no tokens or hidden characters, carries no information about you or your organization, and needs no changes to your requests or responses. For background, see [How Claude marks AI-generated content](https://support.claude.com/en/articles/16266773-how-claude-marks-ai-generated-content) and [How Claude's text watermark works](https://www.anthropic.com/news/claude-text-watermark).

Claude Fable 5.1 differs from Claude Fable 5 in several ways that show up without any code change. Each has a prompting fix in [Prompting Claude Fable 5.1](/docs/en/build-with-claude/prompt-engineering/prompting-claude-fable-5-1):

`thinking.display`

to `"updates"`

(beta) to receive the `low`

effort.These Messages API behaviors carry over from Claude Fable 5 unchanged:

`thinking: {"type": "enabled"}`

with `budget_tokens`

and `thinking: {"type": "disabled"}`

both return a 400 error. Omit `thinking`

or send `{"type": "adaptive"}`

.`thinking.display`

defaults to `"omitted"`

. `"summarized"`

is available, and the raw chain of thought is never returned.`temperature`

, `top_p`

, or `top_k`

values return a 400 error.Claude Fable 5.1 improves on Claude Fable 5, and the gap is widest at higher [effort](/docs/en/build-with-claude/effort) levels. The gains concentrate in six areas:

Multilingual performance is on par with Claude Fable 5.

Claude Fable 5.1 includes safety classifiers covering the same `stop_details`

categories as Claude Fable 5, and everything in [Refusals and fallback](/docs/en/build-with-claude/refusals-and-fallback) applies. It can return `stop_reason: "refusal"`

, so handle refusals and configure fallback.

`stop_reason: "refusal"`

and a `stop_details`

`fallbacks: "default"`

(beta) retries a declined request on the model Anthropic recommends for that category. The permitted fallback targets for Claude Fable 5.1 are Claude Opus 4.8 and Claude Opus 5.Claude Fable 5.1 and Claude Mythos 5.1 are priced the same as Claude Fable 5, except for cache reads (prices in USD):

| Base input | 5m cache writes | 1h cache writes | Cache reads | Output |
|---|---|---|---|---|
| $10 / MTok | $12.50 / MTok | $20 / MTok | $0.25 / MTok | $50 / MTok |

Cache reads (hits and refreshes) cost 0.025 times the base input price on these models, compared with 0.1 on other Claude models. Long agentic sessions that re-read a cached prefix pay a quarter of the Claude Fable 5 rate. Cache writes and the [512-token minimum cacheable prompt length](/docs/en/build-with-claude/prompt-caching#cache-limitations) are unchanged.

[Batch processing](/docs/en/build-with-claude/batch-processing) is $5 USD per million input tokens and $25 USD per million output tokens. See [Pricing](/docs/en/about-claude/pricing) for data residency and tool pricing.

Claude Fable 5.1 is available on:

`claude-fable-5-1`

.`anthropic.claude-fable-5-1`

, and `claude-fable-5-1`

.`claude-fable-5-1`

.Claude Mythos 5.1 is offered only to approved customers in [Project Glasswing](https://anthropic.com/glasswing). For access, contact your Anthropic, AWS, or Google Cloud account team.

Claude Fable 5.1 and Claude Mythos 5.1 carry 30-day data retention and aren't available under zero data retention unless expressly authorized by Anthropic. Both are [Covered Models](https://support.claude.com/en/articles/15425695), like Claude Fable 5 and Claude Mythos 5. See [Model-specific data retention requirements](/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements).

To migrate from Claude Fable 5, update your model ID:

```
model = "claude-fable-5"  # Before
model = "claude-fable-5-1"  # After
```

Then review these items:

`tool_choice`

of type `any`

or `tool`

. Move schema enforcement to `tool_choice: {"type": "auto"}`

or to `messages`

array itself, run the `system`

and `tools`

changes to mid-conversation system messages, trim context server-side or strip thinking blocks from turns you carry across a client-side summary, then pick a production `prefix_mismatch_behavior`

`input_transformations`

.`high`

), and consider See the [migration guide](/docs/en/models/fable-5-1/migration-guide) for step-by-step instructions, including from Claude Opus 5 and earlier models.

Specs and pricing for every current Claude model.

Migrating from Claude Fable 5, Claude Opus 5, and earlier models.

Prompting patterns specific to Claude Fable 5.1.

Was this page helpful?
