Model Codenames

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

Trade-offs and limitations

Relationships

Evidence