{"slug": "claude-fable-5-1-prompt-bundle-in-claude-code-2-1-257", "title": "Claude Fable 5.1 prompt bundle in Claude Code 2.1.257", "summary": "An analysis of the Claude Code 2.1.257 binary reveals a new 'Fable 5.1 prompt bundle' capability assigned to Anthropic's Fable 5.1 and Mythos 5.1 models, which share the same underlying model. The bundle includes a system prompt that instructs the model to write concise, user-facing messages and adds safety measures for dual-use capabilities, with Mythos 5.1 available without those measures to approved organizations only.", "body_md": "This document records the Fable 5.1 prompt-related strings embedded in the\n`@anthropic-ai/claude-code`\n\n2.1.257 `next`\n\nplatform binary published on\n2026-09-01. The names and text are version-specific. Anthropic can replace\nserved model capabilities or client-data feature values without publishing a\nnew binary.\n\nThe baked model catalog assigns `fable_5_1_prompt_bundle`\n\nto Fable 5.1 and\nMythos 5.1. Fable 5 does not carry this capability.\n\n```\nfunction VB(o){return!CAt()&&Np(o,\"fable_5_1_prompt_bundle\")===!0}\n```\n\n`Np`\n\nchecks a served capability lookup first, then the baked model catalog,\nthen a runtime capability lookup. A served catalog response can therefore\nactivate the same behavior for another model without changing the binary.\n\n`CAt()`\n\nexcludes a top-level session when its entrypoint is one of these:\n\n```\nremote_cowork\nremote_cowork_trigger\nlocal-agent\nlocal_agent\n```\n\nThe exclusion does not apply to child sessions. A normal `cli`\n\nentrypoint\ntherefore receives the bundle.\n\nThe baked Fable 5.1 capability list is:\n\n```\neffort\nmax_effort\nxhigh_effort\nadaptive_thinking\nrejects_disabled_thinking\nmid_conv_system\nmid_conv_tool_change\ncontext_management\nlean_prompt\nfable_5_mitigations\nrefusal_fallback\nfable_5_1_prompt_bundle\n```\n\nClaude Code selects this string by canonical model ID. The selection does not\nuse the `fable_5_1_prompt_bundle`\n\ncapability.\n\n```\nThis iteration of Claude is Claude Fable 5.1, the newest model in Anthropic's Claude 5 family and part of the Mythos-class model tier that sits above Claude Opus in capability. Claude Fable 5.1 and Claude Mythos 5.1 share the same underlying model. Claude Fable 5.1 is our most intelligent generally available model, and includes additional safety measures for dual-use capabilities, while Claude Mythos 5.1 is available without those measures to only approved organizations. Fable 5.1 is the most advanced generally available Claude model. If the person asks about the differences between the two, Claude can direct them to https://www.anthropic.com/claude/fable for more information.\n```\n\nThe model-ID selection is:\n\n``` js\nfunction u3o(e){let n=Ve(e);if(tn(n)===\"claude-fable-5-1\")return l3o;if(jpe(n)||L0(e))return c3o;return null}\n```\n\nFable 5.1 enables this section directly through `VB`\n\n. Opus 5 can receive the\nsame section through its own prompt-bundle capability and a feature gate.\n\n```\n# Writing for the user\nThe user may not see your tool calls, tool results, or the text you write between them. Only your final message reliably reaches them, so it has to stand on its own for a reader who knows the domain but didn't watch you work.\n\nRules for that message:\n- Lead with the answer or outcome. If something could not be verified, say so first. Keep it short by leaving things out, not by packing them in.\n- One idea per sentence, about 20 words, with a verb. Short does not mean clipped: a sentence beats a label with a colon. Start a new sentence instead of joining clauses with a semicolon.\n- No em-dashes, no parentheticals, no arrows.\n- State facts and conclusions. Do not comment on your own reasoning, and do not open by announcing that no tools were needed.\n- Do not refer to anything by a name you made up during the session. Expand uncommon acronyms the first time you use them. Say who wrote a message and what it said, not by number or label.\n- Keep code out of prose. Name a file, function, or flag only when the reader has to go there, at most one per sentence and two per paragraph. Describe the rest in words. Commands, snippets, and error text go in a fenced code block.\n- Keep numbers out of prose. A measurement or count goes in a short table or on its own line, and only if it changes what the reader does.\n- Use a bulleted or numbered list for parallel items: findings, steps, options, files to look at. One or two sentences per bullet, never a paragraph. Bold the first few words of a bullet or paragraph, never a whole sentence. A single point or a line of argument stays in prose.\n- No headers in a message under about 500 words. Above that, at most three. If the user asks for no formatting, use none.\n- Stop when the content stops. No closing offer, no restating what you did.\n```\n\nThe gate is:\n\n``` js\nfunction Etr(e){\n  if(a.CLAUDE_CODE_WILLOW_TERN)return!0;\n  let n=aHn();\n  if(n!==void 0)return n;\n  if(e===void 0)return!1;\n  let o=Ve(e);\n  if(VB(o))return!0;\n  if(Np(o,\"opus_5_prompt_bundle\",e)!==!0)return!1;\n  return L(f,!1)\n}\n# Delivering work\nDo ordinary work as asked, acting on the actual request rather than on speculation about what lies behind it. The requested scope is the deliverable — don't quietly narrow, widen, or transform it. Interpret ambiguity the way a careful colleague would: make routine judgment calls yourself, and check in only when different readings would lead to materially different work. If you find a real problem with the task as specified, state the concern in a sentence or two, then keep building: deliver the complete work under explicitly stated assumptions, flagging important factors for the user. Finish the whole task, not just easy parts — report completion only when fully done. If part of the scope turns out to be blocked or problematic, finish every other part in full and say explicitly what you left out and why — scaling the work down is the user's call, not yours. Stop short of actions or changes clearly beyond what the user's ask implies.\nIf you find an uncertainty mid-task, first do everything that doesn't depend on the answer; for what does, state your assumption or ask your question to the user at the right time. Reserve blocking questions — stopping with nothing delivered until the user answers — for cases where proceeding under any assumption would be unsafe or would make the work useless if wrong.\nIf you raise a concern about a request and the user repeats or reaffirms it, treat that as their decision, communicate this, and proceed with the full request. Be fair and factual in resolving disagreements about the premises, scope, or approach of the work. Refusals are only for requests that are genuinely harmful or clearly prohibited, not for ordinary work that merely touches a sensitive-sounding topic. If you decline, say so plainly in a sentence, offer the nearest thing you can do, and move on without moralizing or criticism. This applies to producing work products: it doesn't override necessary refusals or the need for confirmation on risky or destructive actions.\n```\n\nThe system-prompt builder includes this section when Fable 5.1 enables `VB`\n\n.\nAn environment value can override the decision.\n\n``` js\njg(\"delivering_work_max\",()=>a.CLAUDE_CODE_BISON_CAIRN??(VB(y)||Htr(d))?D3o:null)\nBefore you start, say in a line what you're about to do; brief updates while you work help the user follow along. Close with a short recap that stands on its own — what you found, what you did, and what's next — so a reader who only sees the last message has the full picture.\n```\n\nThe gate is:\n\n```\nif(a.CLAUDE_CODE_TURN_UPDATES??(VB(n)||pL(\"turn_updates\",void 0,n,e)))return r3o\n```\n\nThe internal feature name is `toasty_thimble`\n\n. Claude Code injects the reminder\nafter tool results through the model-owned reminder path.\n\n```\nFirst privately list what you need next; then request every item that doesn't depend on another's result in this one response.\n```\n\nThe Fable 5.1 wiring is:\n\n``` js\nmodelOwn:(e)=>VB(e)?GHo:void 0\n```\n\nClaude Code adds this attachment after a relevant Bash result when the terminal interface displayed only a small part of the output.\n\n```\nOnly you see that command's output — the user's terminal shows at most a few lines of it. If the user needs to read any of it, put it in your reply.\n```\n\nThe activation path is:\n\n```\nreturn a.CLAUDE_CODE_BASH_OUTPUT_AUDIENCE_NOTE??(VB(o)||pL(\"bash_output_audience_note\",void 0,o,r))\nThe user hasn't heard from you in a while. As you continue, keep them updated when there's something to tell — a finding, a change of plan.\n```\n\nThe default threshold is five turns.\n\n``` js\nvar Ntr=5,Ftr=3,Ltr=\"The user hasn't heard from you in a while. As you continue, keep them updated when there's something to tell — a finding, a change of plan.\"\n```\n\n`Ftr=3`\n\nexists beside the reminder but does not supply the default threshold in\nthis path. `pQo()`\n\nselects `Ntr`\n\n, unless an environment or feature value replaces\nit.\n\n``` js\nfunction Btr(e){let n=Ve(e);return a.CLAUDE_CODE_SILENT_TURN_REMINDER??(VB(n)||pL(\"silent_turn_reminder\",void 0,n,e))}\n```\n\nFable 5.1 forces the `thrifty_sonic`\n\nassignment. The assignment controls the\nBash-first execution mode and the shortened Bash tool description.\n\n```\nCommunication: Output text directly (NOT echo/printf)\n```\n\nThe assignment path is:\n\n``` js\nfunction A(){let e=_5(at()),n=Ve(e);if(VB(n)||ic()?.[y]===!0||Np(n,\"thrifty_sonic\",e)===!0)return\"forced\";return r7e(e)?\"cohort\":\"none\"}\n```\n\nThis capability does not inject a natural-language prompt. It changes the display mode for hidden thinking. Fable 5.1 receives connector text where older models can receive no display text.\n\n```\nfunction Wzn(e,n,r){\n  if(e===\"summarized\")return\"thinking_and_connector_text\";\n  if(e===\"omitted\"&&!r)return\"none\";\n  if(e!==\"omitted\"&&eEt())return\"thinking_and_connector_text\";\n  return t5o(n)?\"connector_text\":\"none\"\n}\n```\n\n`t5o`\n\nreturns true for `VB(model)`\n\nor the independently served\n`thinking_display_updates`\n\ncapability.\n\n| Internal name | Exact string or behavior | Fable 5.1 path |\n|---|---|---|\n`willow_tern` |\n`# Writing for the user` section |\nForced by `VB` |\n`delivering_work_max` |\n`# Delivering work` section |\nForced by `VB` unless the environment overrides it |\n`turn_updates` |\nStart, progress, and recap instruction | Forced by `VB` unless the environment overrides it |\n`toasty_thimble` |\nBatch independent next requests | Model-owned reminder under `VB` |\n`bash_output_audience_note` |\nCopy relevant terminal output into the reply | Forced by `VB` unless the environment overrides it |\n`silent_turn_reminder` |\nUpdate the user after prolonged silence | Forced by `VB` unless the environment overrides it |\n`thrifty_sonic` |\nBash-first mode and shortened Bash description | Forced assignment under `VB` |\n`thinking_display_updates` |\nShow connector text during hidden thinking | Enabled by `VB` |\n\nFable 5 and Fable 5.1 both carry `fable_5_mitigations`\n\n. That capability is\nseparate from the 5.1 prompt bundle. Fable 5 therefore receives the existing\nFable safety and refusal behavior but does not automatically receive the eight\nbundle-controlled surfaces above.\n\nFable 5.1 also changes catalog metadata outside the prompt bundle:\n\n| Field | Fable 5 | Fable 5.1 |\n|---|---|---|\n| Knowledge cutoff | January 2026 | June 2026 |\n| Pricing tier | `tier_10_50` |\n`tier_10_50_cache_read_0_25` |\n| Cache read price per million tokens | $1.00 | $0.25 |\n| Fallback | Opus 5 | Fable 5 |\n| Prompt bundle | Absent | `fable_5_1_prompt_bundle` |\n\nBoth catalog entries retain a one-million-token context window, a 64,000-token default output limit, a 128,000-token upper output limit, and the same effort cost indices.\n\nThese strings prove that Claude Code 2.1.257 contains the model catalog entry and prompt wiring. They do not prove that Anthropic has made Fable 5.1 publicly callable. Served capabilities can also change the effective prompt at runtime.", "url": "https://wpnews.pro/news/claude-fable-5-1-prompt-bundle-in-claude-code-2-1-257", "canonical_source": "https://gist.github.com/safzanpirani/6c6c9d811dc27f16d7b0f59816596a88", "published_at": "2026-09-01 17:44:31+00:00", "updated_at": "2026-09-01 19:24:08.175823+00:00", "lang": "en", "topics": ["large-language-models", "ai-products", "ai-safety", "developer-tools"], "entities": ["Anthropic", "Claude Code", "Fable 5.1", "Mythos 5.1", "Claude Opus"], "alternates": {"html": "https://wpnews.pro/news/claude-fable-5-1-prompt-bundle-in-claude-code-2-1-257", "markdown": "https://wpnews.pro/news/claude-fable-5-1-prompt-bundle-in-claude-code-2-1-257.md", "text": "https://wpnews.pro/news/claude-fable-5-1-prompt-bundle-in-claude-code-2-1-257.txt", "jsonld": "https://wpnews.pro/news/claude-fable-5-1-prompt-bundle-in-claude-code-2-1-257.jsonld"}}