Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.197 Home All releases olderv2.1.196 v2.1.198newer
Claude Code v2.1.197

Promotional Launch Pricing in Model Picker

What

When Sonnet 5 is on a launch promotion, the model picker displays the promo price with the regular list price struck through next to it.

Details
  • During the promo period, the Sonnet 5 entry shows: ~~$3/$15~~ $2/$10 per Mtok · promo through [date]
  • The promo expiry date is read from the cedar_basin key in the remote server config (AI()?.cedar_basin). Dlo() parses the value and returns it only if Date.now() < parsedMs (live gate); once the date has passed Dlo() returns undefined and no promo UI is rendered
  • Rlo() formats the raw date string using toLocaleDateString("en-US", { month: "short", day: "numeric", timeZone: "UTC" }), producing e.g. "Jun 29"
  • The description field carries the promo price ($2/$10 per Mtok · promo through …) so plain-text consumers read it unambiguously; rich pickers (the CLI model-selector component) additionally prepend chalk.dim.strikethrough(promoListPrice) before the first $X/$Y token in description, producing the struck-through display
  • When no promo is active the description falls back to C1(jte) — the standard pricing description string
  • The "Sonnet 5 (1M context)" entry (Nlo()) follows the same pattern; when running in a standalone/operator context (Ao() returns true) all pricing is omitted and only "Sonnet 5 for long sessions" is shown
  • Third-party provider users (Bedrock, Vertex, etc.) do not see promo pricing: gBn() applies the promo display block only when ud() returns false (first-party API key users)
  • This is a new UI field: promoListPrice added to the model row schema specifically to support struck-through rendering in rich pickers; description always carries only the promo price so plain-text consumers are unaffected
Evidence

Promo gate function Dlo() reading AI()?.cedar_basin; formatter Rlo() (search for "$2/$10 per Mtok" and "promoListPrice"); rich-picker rendering (search for "dim.strikethrough"); schema documentation (search for "@internal List price (e.g. \$3/$15\)")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.197 →