Hidden Features & Model Codenames

April 1, 2026 · View on GitHub

Based on publicly available online references and community discussions on Claude Code v2.1.88.

Model Codename System

Anthropic uses animal names as internal model codenames. These are aggressively protected from leaking into external builds.

Known Codenames

CodenameRoleEvidence
Tengu (天狗)Product/telemetry prefix, possibly a modelUsed as tengu_* prefix for all 250+ analytics events and feature flags
CapybaraSonnet-series model, currently at v8capybara-v2-fast[1m], prompt patches for v8 behavior issues
Fennec (耳廓狐)Predecessor to Opus 4.6Migration: fennec-latestopus
Numbat (袋食蚁兽)Next model launchComment: "Remove this section when we launch numbat"

Codename Protection

The undercover mode explicitly lists protected codenames:

// src/utils/undercover.ts:48-49
NEVER include in commit messages or PR descriptions:
- Internal model codenames (animal names like Capybara, Tengu, etc.)
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)

The build system uses scripts/excluded-strings.txt to scan for leaked codenames. Buddy system species are encoded via String.fromCharCode() to avoid triggering the canary:

// src/buddy/types.ts:10-13
// One species name collides with a model-codename canary in excluded-strings.txt.
// The check greps build output (not source), so runtime-constructing the value keeps
// the literal out of the bundle while the check stays armed for the actual codename.

That colliding species is capybara — both a pet species and a model codename.

Capybara Behavior Issues (v8)

The architecture reveals specific behavioral problems with Capybara v8:

  1. Stop sequence false trigger (~10% rate when <functions> at prompt tail)

    • Source: src/utils/messages.ts:2141
  2. Empty tool_result causes zero output

    • Source: src/utils/toolResultStorage.ts:281
  3. Over-commenting — requires dedicated anti-comment prompt patches

    • Source: src/constants/prompts.ts:204
  4. High false-claims rate: v8 has 29-30% FC rate vs v4's 16.7%

    • Source: src/constants/prompts.ts:237
  5. Insufficient verification — requires "thoroughness counterweight"

    • Source: src/constants/prompts.ts:210

Feature Flag Naming Convention

All feature flags use the tengu_ prefix with random word pairs to obscure their purpose:

FlagPurpose
tengu_onyx_ploverAuto Dream (background memory consolidation)
tengu_coral_fernmemdir feature
tengu_moth_copseAnother memdir switch
tengu_herring_clockTeam memory
tengu_passport_quailPath feature
tengu_slate_thimbleAnother memdir switch
tengu_sedge_lanternAway Summary
tengu_frond_boricAnalytics kill switch
tengu_amber_quartz_disabledVoice mode kill switch
tengu_amber_flintAgent teams
tengu_hive_evidenceVerification agent

The random word pattern (adjective/material + nature/object) prevents external observers from inferring feature purpose from flag names alone.

Internal vs External User Difference

Anthropic employees (USER_TYPE === 'ant') receive significantly better treatment:

Prompt Differences (src/constants/prompts.ts)

DimensionExternal UsersInternal (ant)
Output style"Be extra concise""Err on the side of more explanation"
False-claims mitigationNoneDedicated Capybara v8 patches
Numeric length anchorsNone"≤25 words between tools, ≤100 words final"
Verification agentNoneRequired for non-trivial changes
Comment guidanceGenericDedicated anti-over-commenting prompt
Proactive correctionNone"If user has misconception, say so"

Tool Access

Internal users have access to tools not available externally:

  • REPLTool — REPL mode
  • SuggestBackgroundPRTool — background PR suggestions
  • TungstenTool — performance monitoring panel
  • VerifyPlanExecutionTool — plan verification
  • Agent nesting (agents spawning agents)

Hidden Commands

CommandStatusDescription
/btwActiveAsk side questions without interrupting
/stickersActiveOrder Claude Code stickers (opens browser)
/thinkbackActive2025 Year in Review
/effortActiveSet model effort level
/good-claudeStubHidden placeholder
/bughunterStubHidden placeholder