Verified July 27, 2026

Claude Fable 5 in Zed

The model your terminal accepts is not always the model your editor lets you pick. Here is exactly where Zed splits, and what to do on each side of the split.

The short answer

Use Zed's native Anthropic provider with your own API key: Fable 5 has shipped there since June 9, 2026, once you turn on the data-retention consent setting. Avoid the Claude Agent (ACP) path unless your bridge is on @agentclientprotocol/claude-agent-acp 0.55.0 or newer — older versions reject claude-fable-5 before the request ever reaches Claude Code.

Support status

Partially supported, verified July 27, 2026. Zed PR #58955 added Claude Fable 5 to Anthropic BYOK on June 9, 2026, gated behind a new telemetry.anthropic_retention setting because Fable 5 cannot be offered under Zero Data Retention. The Claude Agent (ACP) path is a separate story: issue agentclientprotocol/claude-agent-acp#762 documented that setSessionConfigOption() validated the model against initializationResult.models and threw for claude-fable-5, even though Claude Code itself accepts the ID. That was fixed in claude-agent-acp 0.55.0 and the issue was closed July 6, 2026, but the Zed-side PR #59023 that lets you type an arbitrary model ID into the picker was still open on our verification date.

Setup

Pick your path first — the steps diverge immediately.

  1. 1

    Decide: native BYOK or Claude Agent (ACP)

    Native BYOK talks to the Claude API with your own key and bills per token. The Claude Agent path runs Claude Code as a subprocess over ACP, so it can use a Pro/Max subscription instead of an API key. Fable 5 works reliably on the first path today; the second depends on your bridge version.

  2. 2

    BYOK: add your Anthropic key and accept retention

    Add your Anthropic API key to the Anthropic provider in Zed settings, then open Settings → Privacy and enable telemetry.anthropic_retention. It ships off by default. Anthropic retains inference logs for 30 days on Fable 5, so without consent Zed raises a typed, non-retryable error in the completion path rather than sending the request.

  3. 3

    BYOK: select Claude Fable 5 in the model picker

    With consent on, Claude Fable 5 appears in the Anthropic section of the agent panel model picker. If Fable 5 declines a request, Zed transparently falls back to Claude Opus 4.8 and the panel shows a callout with Switch to Opus 4.8 and Accept actions that resume the failed turn, so you do not retype your message.

  4. 4

    ACP: check your claude-agent-acp version

    The fix for issue #762 landed in @agentclientprotocol/claude-agent-acp 0.55.0, which also carries the modelOverrides allowlist fix from 0.54.1 and the refusal-fallback consent dialog. Check what you actually have with npx @agentclientprotocol/claude-agent-acp --version, and pin 0.55.0 or newer in your agent server configuration if Zed is launching an older bundled copy.

  5. 5

    Workaround: run Claude Code directly

    If you cannot move the bridge version, drop to Zed's terminal and run claude --model claude-fable-5. Claude Code has accepted that ID since launch — the reporter in issue #762 verified that passing it through to query.setModel() works. This is the only path that is not gated by a client-side allowlist.

Gotchas

Every one of these was reported by someone who lost an afternoon to it.

  • The error you get is not model_not_found

    When the bridge rejects the ID you get a generic config-option error, not Claude Code's clean model_not_found. That is the tell: Claude Code returns a proper typed error with errorKind: model_not_found for a genuinely nonexistent model such as claude-fable-6, so a vague validation message means the request never left your machine.

  • Zero Data Retention orgs cannot use Fable 5 at all

    This is an Anthropic-side constraint, not a Zed bug: Fable 5 is not offered under ZDR because inference logs are retained for 30 days. Zed models that as a hard, non-retryable check in the cloud completion path. If your org enforces ZDR, no amount of client configuration will make this work.

  • Writing model into ~/.claude/settings.json does not help

    A separate long-running issue (claude-agent-acp#225) documents that the bridge calls query.supportedModels() and simply picks the first entry, ignoring the model preference in your Claude Code settings file. So the obvious workaround — set the model where Claude Code reads it — does not route through ACP.

  • Selecting Fable, running Opus

    One user on claude-agent-acp 0.44.0 reported that Fable appeared in configOptions and the agent echoed the selection back, but the work was processed by Opus 4.8. They only caught it with ccusage, which showed no Fable consumption while the same model used from the Claude CLI did. If the model selection matters to you, verify against usage data rather than the picker.

Cost notes

BYOK bills straight through at $10 per million input tokens and $50 per million output, with cached input reads at $1 per million. Zed's agent panel keeps a long-lived thread, so the 1M context window fills up over a session and input cost, not output, is what grows. Two Zed-specific line items to watch: a refusal that falls back to Opus 4.8 is billed as Opus, and switching effort or model mid-thread invalidates prompt caching, so you re-pay full price for context you already sent.

Check the current state before you file a bug

This page tracks a moving target: the bridge fix shipped, the editor-side picker change had not. Our status page records what we last confirmed working, with dates.

FAQ