The most interesting addition to the prompt from that diff is this bit:
> Claude Fable 5 and Claude Mythos 5 were first released on June 9, 2026. On June 12, 2026, Anthropic suspended access to both models to comply with U.S. Department of Commerce export controls; the Department lifted those controls on June 30, 2026, and Anthropic restored access on July 1, 2026 (Anthropic's statement: [https://www.anthropic.com/news/fable-mythos-access](https://www.anthropic.com/news/fable-mythos-access)). These events are after Claude's training-data cutoff, so Claude knows about them only from this notice. If asked, Claude confirms them accurately and matter-of-factly — it doesn't deny the suspension happened — and otherwise treats the export controls like any other current political topic: it gives a fair, accurate account rather than sharing personal opinions, and points to the linked statement for anything further. Things may have developed since this notice, so Claude checks for newer information when it can search, and otherwise suggests checking Anthropic's site.
One frustrating note about this page is that they share the system prompts for https://claude.ai and the Claude mobile apps regularly chat, but they omit the tool definitions. Those are much more interesting if you want to understand what Claude can actually do for you. You can reconstruct them through prompting Claude directly but that's extra friction and risks refusals and hallucinations.
They also don't publish the Claude Code system prompts, which is silly because those are trivial to extract using a logging proxy.
It'd be ironic if the "Opus 5 nerf" effect is from telling Opus that it sits a tier down from Fable and Mythos, while Opus4.8 believed it was the best of the best, just a note that it was "Preceded by Mythos".
early system prompts are a bit more than 300 words, the latest ones 3000+
the opus 5 system prompt has instructions that explain to opus that it might be handling a request that was intended for fable 5:
the user may have selected a different Anthropic model, "Claude Fable 5", but their query was redirected to Opus 5 instead due to a safeguards routing mechanism. The user may be confused about this situation (it's very recent!); if they have questions, Claude can either directly cite or just let its response be informed by this quote from Anthropic's blog post on the subject:
"Releasing a model this capable comes with risks. Without safeguards, Fable 5’s capabilities in areas like cybersecurity could be misused to cause serious damage. We've therefore launched the model with safeguards that mean queries on some topics will instead receive a response from our next-most-capable model, Claude Opus 5. To release the model both safely and quickly, we've tuned these safeguards conservatively—they'll sometimes catch harmless requests, though they trigger, on average, in less than 5% of sessions. With more capable models arriving in the coming months, we're working to improve our safeguards and reduce false positives as quickly as we can." </fable_safeguards_routing> <default_stance> Claude defaults to helping. Claude only declines a request when helping would create a concrete, specific risk of serious harm; requests that are merely edgy, hypothetical, playful, or uncomfortable do not meet that bar. </default_stance> <refusal_handling> Claude can discuss virtually any topic factually and objectively.
You don’t want to do that for anything you want to be able to vary, but they do something similar with a “soul document” for things they always want to apply.
Wild how most of the earliest models had no child safety guardrails in the prompt (something that has multiple bullet points now in the latest one). For a company all about allignment and safety, they chose to go with this as their first system prompt:
The assistant is Claude, created by Anthropic. The current date is {{currentDateTime}}. Claude's knowledge base was last updated in August 2023 and it answers user questions about events before August 2023 and after August 2023 the same way a highly informed individual from August 2023 would if they were talking to someone from {{currentDateTime}}. It should give concise responses to very simple questions, but provide thorough responses to more complex and open-ended questions. It is happy to help with writing, analysis, question answering, math, coding, and all sorts of other tasks. It uses markdown for coding. It does not mention this information about itself unless the information is directly pertinent to the human's query.
^ No mention of any safety at all lol, how could dario let this be
2. Things were "different" in the early days. The safety and alignment stuff was probably trained into the model, not also found in the system prompt.
3. Safety and alignment meant something different 3 years ago. Now that we've seen how people, including children, use chat bots, altering the guardrails only makes sense. Did we think people would replace their therapists with ChatGPT in the early days? No. Do we know now that they will? Yes.
One thing I've always found surprising about "harnessess" (god I hate that word) like Pi or Opencode is the lack of a customizeable system prompt. I can understand it for closed source ones, but open ones?
They are natural surfaces for building custom agents and yet you're stuck with whatever they ship with, weird. It's not like it's too complicated api-wise either.
My guess is that harnesses don't make core system prompts customizable out of the box because the system prompt is one of the defining features of the agent, and something they constantly iterate on and test between releases.
Most users who want to customize the system prompt actually want to do things like add preferences for how the agent should behave, which is better handled by mechanisms like memories or skills (which effectively get appended to the system prompt.)
I agree. A lot of harnesses - and I think this may be a consequence of the LLM-fueled bespoke-software trend - are optimized for solving a specific issue well and the way they are tweaked is telling an LLM to do it. This resolves the need for natural extension points.
I don't think this is a sustainable way of doing things because I really don't want to assume the maintenance burden for every piece of software that I want to tweak. As far as I understand, new developments like opencode2 have learned from this and are aiming for a well architected core that is easy to built on top of.
For example here's what changed between Opus 4.8 and Opus 5: https://github.com/simonw/research/commit/a2de185cc367eb66c2...
The most interesting addition to the prompt from that diff is this bit:
> Claude Fable 5 and Claude Mythos 5 were first released on June 9, 2026. On June 12, 2026, Anthropic suspended access to both models to comply with U.S. Department of Commerce export controls; the Department lifted those controls on June 30, 2026, and Anthropic restored access on July 1, 2026 (Anthropic's statement: [https://www.anthropic.com/news/fable-mythos-access](https://www.anthropic.com/news/fable-mythos-access)). These events are after Claude's training-data cutoff, so Claude knows about them only from this notice. If asked, Claude confirms them accurately and matter-of-factly — it doesn't deny the suspension happened — and otherwise treats the export controls like any other current political topic: it gives a fair, accurate account rather than sharing personal opinions, and points to the linked statement for anything further. Things may have developed since this notice, so Claude checks for newer information when it can search, and otherwise suggests checking Anthropic's site.
One frustrating note about this page is that they share the system prompts for https://claude.ai and the Claude mobile apps regularly chat, but they omit the tool definitions. Those are much more interesting if you want to understand what Claude can actually do for you. You can reconstruct them through prompting Claude directly but that's extra friction and risks refusals and hallucinations.
They also don't publish the Claude Code system prompts, which is silly because those are trivial to extract using a logging proxy.
Claude and I must have a different idea of what brief and concise mean.
In my experience instructions containing contradictions lead to diminished quality even outside the scope of the contradiction.
early system prompts are a bit more than 300 words, the latest ones 3000+
the opus 5 system prompt has instructions that explain to opus that it might be handling a request that was intended for fable 5:
These are just free $ for them, unnecessary bloating the context
They're also prefix cached, so the cost to Anthropic and performance hit is greatly reduced.
https://news.ycombinator.com/item?id=46125184
Having them in context is super easy and cheap. It is trivial to change and is 100% cacheable.
That would make the model quite inflexible.
A system prompt is about guiding the behavior for the rest of the conversation.
If I'm writing an agent for financial analysis I don't want the crap that belongs to a chat-based one, or a code-oriented one.
(Though Claude Code has its own, unpublished system prompts which we DO pay for, albeit at the cached token rates.)
The assistant is Claude, created by Anthropic. The current date is {{currentDateTime}}. Claude's knowledge base was last updated in August 2023 and it answers user questions about events before August 2023 and after August 2023 the same way a highly informed individual from August 2023 would if they were talking to someone from {{currentDateTime}}. It should give concise responses to very simple questions, but provide thorough responses to more complex and open-ended questions. It is happy to help with writing, analysis, question answering, math, coding, and all sorts of other tasks. It uses markdown for coding. It does not mention this information about itself unless the information is directly pertinent to the human's query.
^ No mention of any safety at all lol, how could dario let this be
1. Less context window to work with.
2. Things were "different" in the early days. The safety and alignment stuff was probably trained into the model, not also found in the system prompt.
3. Safety and alignment meant something different 3 years ago. Now that we've seen how people, including children, use chat bots, altering the guardrails only makes sense. Did we think people would replace their therapists with ChatGPT in the early days? No. Do we know now that they will? Yes.
They are natural surfaces for building custom agents and yet you're stuck with whatever they ship with, weird. It's not like it's too complicated api-wise either.
There must be something I ignore.
My guess is that harnesses don't make core system prompts customizable out of the box because the system prompt is one of the defining features of the agent, and something they constantly iterate on and test between releases.
Most users who want to customize the system prompt actually want to do things like add preferences for how the agent should behave, which is better handled by mechanisms like memories or skills (which effectively get appended to the system prompt.)
I don't think this is a sustainable way of doing things because I really don't want to assume the maintenance burden for every piece of software that I want to tweak. As far as I understand, new developments like opencode2 have learned from this and are aiming for a well architected core that is easy to built on top of.