Skip to content
Back to skills

New Claude Model

ASecurity

Bring ClaudeLens up to date with a newly released Claude model — exact pricing, context window, display name, alias lists, tests. Use when a new model ships (a new Opus/Sonnet/Haiku/Fable version or a new family), when a session's cost is flagged as an estimate in Analytics, when a model's price changes on the official pricing page, or when asked "does ClaudeLens handle model X?".

  • 64 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 24, 2026
developmentbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add giulio333/ClaudeLens --skill new-claude-model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of New Claude Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for New Claude Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/giulio333-new-claude-model/badge)](https://www.skillsdirectory.com/skills/giulio333-new-claude-model)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: new-claude-model
description: Bring ClaudeLens up to date with a newly released Claude model — exact pricing, context window, display name, alias lists, tests. Use when a new model ships (a new Opus/Sonnet/Haiku/Fable version or a new family), when a session's cost is flagged as an estimate in Analytics, when a model's price changes on the official pricing page, or when asked "does ClaudeLens handle model X?".
---

# A new Claude model shipped — does ClaudeLens know it?

Nothing fails when a model is missing. Its cost is quietly priced by the family
fallback in `getPricing` (anchored on the current generation, so a cheaper
successor is over-billed and a new family word lands on the Sonnet default), its
window may be sized at 200k, and Analytics marks its cost as an estimate
(`isModelPriced` is false). The rationale and the history of past mistakes live
in `electron/modules/CLAUDE.md` (entry `cost-tracker.ts`); read it, don't repeat it.

## 1. Discover what the transcripts actually record

```bash
# model ids in the corpus (quote the glob: zsh expands a bare *.jsonl)
grep -rhoE '"model":"claude-[^"]*"' --include='*.jsonl' ~/.claude/projects | sort | uniq -c | sort -rn
# pricing modifiers the tracker does not model — anything but "standard" matters
grep -rhoE '"speed":"[^"]*"' --include='*.jsonl' ~/.claude/projects | sort | uniq -c
```

Diff the ids against the exact keys of `PRICING` and `SCHEDULED` in
`electron/modules/cost-tracker.ts`. Ids with a `-YYYYMMDD` stamp are covered by
the date-stripped lookup; a `[1m]` suffix is a setting, not an id the API bills.

## 2. Take the rates from the official page — never derive them

Fetch `https://platform.claude.com/docs/en/about-claude/pricing.md` and copy the
row: base input, **5m** cache write (`cacheWrite` is the 5-minute rate by
design), cache hits (`cacheRead`), output. Do **not** compute `cacheRead` as
input × 0.1: some models use another multiplier, and the footnotes under the
table say which. Read the notes there for any dated price change too.

## 3. Update the code

| What                                     | Where                                                                                                                                                     | When                                                                                                                                                                                                   |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Exact rate + bump `PRICING_LAST_UPDATED` | `PRICING` in `electron/modules/cost-tracker.ts`                                                                                                           | always                                                                                                                                                                                                 |
| Dated rate change                        | `SCHEDULED` (same file) — re-verify **before** its `from` day                                                                                             | only for a published, dated change                                                                                                                                                                     |
| Family fallback anchor                   | `getPricing` fuzzy branches                                                                                                                               | new family word, or a new current generation — decide it explicitly: re-anchoring on a cheaper model makes an unknown id err **downward**, which the module's rule forbids for ids with no family word |
| Stale comments                           | `cost-tracker.ts` + `electron/modules/CLAUDE.md`                                                                                                          | when a comment claims a model is the "only" exception                                                                                                                                                  |
| Native-1M window                         | `ONE_MILLION_DEFAULT_MODELS` in `electron/shared/context-window.ts`                                                                                       | check the new id matches (and that the regex doesn't over-match its neighbours)                                                                                                                        |
| Display name / family / colour           | `fmtModel`, `modelFamily`, `modelMixKey`, `modelColor` in `src/components/project/utils.ts`                                                               | new family only — versions are parsed from the id                                                                                                                                                      |
| Alias lists                              | `MODEL_ALIASES`, `STEP_MODELS` (StepInspector), `formKit.ts`, `KNOWN_MODELS` (studio-compiler), `BG_MODEL_ALLOWLIST` (claude-cli-args), AgentsLive picker | new family or new CLI alias only                                                                                                                                                                       |

## 4. Tests

- `test/cost-tracker.test.ts` — the exact rate, all four lines (a cache-read
  mistake is invisible on an input/output-only fixture), and `isModelPriced`.
- `test/context-window.test.ts` — the new id's window.
- `test/project-formatters.test.ts` — `fmtModel` for the id, including the
  `[1m]` form if a surface can receive it.

Then `npm run typecheck && npm run lint && npm test`.

## 5. Run the drift census

A new model usually brings new transcript rows too (a new `attachment` subtype,
a new content block). Run `npm run census` and triage with the
`transcript-drift` skill.

## Not modelled — don't "fix" by accident

The tracker prices every token at the standard first-party rate. Fast mode
(`usage.speed: "fast"`), US-only inference (`inference_geo`), 1-hour cache
writes (the transcript doesn't say which TTL was used) and batch discounts are
all ignored. Adding one is a feature, not part of a model update.

Fixtures and examples stay synthetic (see "Fixtures are synthetic" in the root
`CLAUDE.md`): no real project names, session ids or transcript content in the repo.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.