Model Codenames
- Entity ID:
ent-model-codenames - Type:
concept - Scope:
shared
What it is
Claude Code uses internal codenames for model versions, some hex-encoded to evade internal leak detectors. The March 2026 source map leak exposed several codenames and their relationships to public model names.
Why it exists
Codenames serve multiple purposes:
1. Leak prevention — hex-encoding (String.fromCharCode(99,97,112,121,98,97,114,97) = "capybara") makes codenames harder to find via string search
2. Internal versioning — models go through many iterations (Capybara v4, v8) that don't map 1:1 to public version numbers
3. Feature gating — codenames are used in feature flags (e.g., tengu_ prefix for telemetry events) to control rollout
4. A/B testing — different model versions can be compared behind the same public API
Known codenames
| Codename | Identity | Notes |
|---|---|---|
| Capybara | Claude 4.6 variant | Hex-encoded in source. v8 has 29-30% false claims rate (vs v4's 16.7%), over-commenting, "assertiveness counterweight" flag |
| Fennec | Migrated to Opus 4.6 | |
| Numbat | Unreleased | Source comment: "Remove this section when we launch numbat" |
| Mythos | Capybara v2 tier, 1M context | Fast + thinking variants |
| Tengu | Primary analytics prefix AND possible code-editing model | Also the prefix for 1,000+ telemetry event types |
| Opus 4.7, Sonnet 4.8 | Unreleased | "Version numbers that should never appear in public commits" |
What depends on it
- GrowthBook feature flags — model rollout gated by codename-prefixed flags
- Telemetry system — 1,000+ event types under
tengu_prefix - Retry system — Opus → Sonnet fallback uses internal model mapping
- Quality regression tracking — Capybara v4 vs v8 quality comparison (16.7% vs 29-30% false claims)
Trade-offs and limitations
- Capybara v8 quality regression — newer isn't always better. v8 had nearly double the false claims rate of v4, plus over-commenting tendency. Required "assertiveness counterweight" flag.
- Hex encoding is security theater — the source map leak exposed all codenames anyway. Encoding adds obfuscation complexity without real security.
- Version confusion — internal version numbers (Opus 4.7, Sonnet 4.8) don't match public naming, creating confusion in community analysis.
Relationships
- used_by: growthbook, telemetry-system, retry-system
- related_to: quality-regression, claude-mythos-preview
Evidence
src-20260409-a14e9e98c3cd: Internals — Model Codenames Revealed