Skip to content

Instantly share code, notes, and snippets.

@nitrocode
Created April 1, 2026 19:10
Show Gist options
  • Select an option

  • Save nitrocode/b3018498dfe9cb185828872283850ffe to your computer and use it in GitHub Desktop.

Select an option

Save nitrocode/b3018498dfe9cb185828872283850ffe to your computer and use it in GitHub Desktop.
Claude code code insights

Easter Eggs & Hidden Features in Claude Code

A collection of easter eggs, undocumented behaviors, internal codenames, and surprising details found in the Claude Code source code. Organized by category.


Table of Contents

  1. The Buddy / Companion Pet System
  2. Undercover Mode
  3. Internal Model Codenames
  4. The "Young Wizard" API Comment
  5. Rainbow Text Effects
  6. CLAUBBIT — Skip All Permission Dialogs
  7. Hard-Coded Internal Slack Channel
  8. @[MODEL LAUNCH] Checklist Markers
  9. KAIROS — The Mystery Mega-Feature
  10. Spinner Verbs — 204 Creative Loading Messages
  11. Turn Completion Verbs
  12. Clawd — The Animated ASCII Mascot
  13. ANT-ONLY Dead Code Elimination
  14. April Fools Day Time-Gating
  15. fun_ending — AI Finds Your Funniest Session Moment
  16. Magic Setup URLs
  17. PROACTIVE / Autonomous Tick Mode
  18. Ultrareview — Paid Code Review with Balance Gate
  19. /stickers — Opens a Merch Store
  20. Voice Mode Kill Switch — "Amber Quartz"
  21. Analytics Kill Switch — "Frond Boric"
  22. Shiny Buddy — 1% Chance
  23. Multi-Clauding Detection
  24. All Hidden / Stub Commands
  25. System Prompt Engineering Details
  26. GrowthBook Feature Flags

1. The Buddy / Companion Pet System

Files: src/buddy/

A complete RPG-style companion pet system is gated behind feature('BUDDY'). A small animated creature sits next to your input box and occasionally speaks in a speech bubble. The buddy's appearance and stats are deterministically generated from your user ID using the Mulberry32 PRNG with the hard-coded salt 'friend-2026-401' — meaning every user gets a unique, reproducible companion for life.

Species (18 total)

duck, goose, blob, cat, dragon, octopus, owl, penguin, turtle, snail, ghost, axolotl, capybara, cactus, robot, rabbit, mushroom, chonk

Note: Every species name is encoded as raw hex character codes (e.g. c(0x63,0x61,0x70,0x79,0x62,0x61,0x72,0x61) = "capybara") to prevent build-tooling string scanners from flagging the internal model codename. See §3 Internal Model Codenames.

Eyes (6 types)

· × @ °

Hats (8 types)

none, crown, tophat, propeller, halo, wizard, beanie, tinyduck

RPG Stats (5 dimensions)

DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK

Rarity Tiers

Tier Weight Stat Floor Stars
common 60% 5
uncommon 25% 15 ★★
rare 10% 25 ★★★
epic 4% 35 ★★★★
legendary 1% 50 ★★★★★

How it works

  • Bones (deterministic): rarity, species, eye, hat, shiny, stats — derived from hash(userId + 'friend-2026-401') fed into Mulberry32
  • Soul (model-generated): name and personality — generated by the model on first hatch and stored in ~/.claude/ config
  • The companion is introduced to Claude via a system prompt segment:

    "A small {species} named {name} sits beside the user's input box and occasionally comments in a speech bubble. You're not {name} — it's a separate watcher."

Shiny

There is a 1% chance (independent of rarity) that any buddy is "shiny". This is a Pokémon-style rarity mechanic: rng() < 0.01 in src/buddy/companion.ts.


2. Undercover Mode

File: src/utils/undercover.ts

When active, Claude is given strict instructions never to reveal that it is an AI, never to mention internal model codenames, and to write commit messages "as a human developer would."

## UNDERCOVER MODE — CRITICAL

You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository. Your commit
messages, PR titles, and PR bodies MUST NOT contain ANY Anthropic-internal
information. Do not blow your cover.

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)
- Internal repo or project names (e.g., claude-cli-internal, anthropics/…)
- Internal tooling, Slack channels, or short links (e.g., go/cc, #claude-code-…)
- The phrase "Claude Code" or any mention that you are an AI
- Any hint of what model or version you are
- Co-Authored-By lines or any other attribution

GOOD commit messages (examples given in code):

  • "Fix race condition in file watcher initialization"
  • "Add support for custom key bindings"

BAD commit messages (explicitly blocked):

  • "Fix bug found while testing with Claude Capybara"
  • "1-shotted by claude-opus-4-6"
  • "Generated with Claude Code"
  • "Co-Authored-By: Claude Opus 4.6"

Activation

  • CLAUDE_CODE_UNDERCOVER=1 — force ON
  • Auto-activates unless the repo remote matches an internal allowlist
  • There is deliberately no force-OFF. Safe default is always ON.
  • All code is gated on process.env.USER_TYPE === 'ant' — dead-code-eliminated from external builds entirely.

3. Internal Model Codenames

The CLI codebase references several internal Anthropic model codenames, all animal names:

Codename Status / Notes
Tengu The CLI itself — all 40+ telemetry events are prefixed tengu_*
Capybara An internal model version; name hex-encoded in buddy species list
Fennec Previous model version; migrated via migrateFennecToOpus.ts
Numbat Future/unreleased model — comment says "Remove this section when we launch numbat"

"Amber Quartz" appears to be the internal codename for the voice feature (see §20).


4. The "Young Wizard" API Comment

File: src/query.ts (~line 162)

A developer warning about API rules written in archaic fantasy prose:

/**
 * The rules of thinking are lengthy and fortuitous. They require plenty of
 * thinking of most long duration and deep meditation for a wizard to wrap
 * one's noggin around.
 *
 * The rules follow:
 * 1. A message that contains a thinking or redacted_thinking block must be
 *    part of a query whose max_thinking_length > 0
 * 2. A thinking block may not be the last message in a block
 * 3. Thinking blocks must be preserved for the duration of an assistant
 *    trajectory ...
 *
 * Heed these rules well, young wizard. For they are the rules of thinking,
 * and the rules of thinking are the rules of the universe. If ye does not
 * heed these rules, ye will be punished with an entire day of debugging
 * and hair pulling.
 */

5. Rainbow Text Effects

File: src/utils/thinking.ts

Certain keywords trigger per-character rainbow coloring cycling through Red → Orange → Yellow → Green → Blue → Indigo → Violet:

  • /think — rainbow colors (gated on GrowthBook flag tengu_turtle_carbon)
  • ultrathink — same rainbow effect
  • /ultraplan and /ultrareview — rainbow rendered in PromptInput.tsx
  • The /buddy teaser notification on startup also uses rainbow text

A shimmer variant (shimmer = true) provides an alternating phase offset for each character, giving a wave animation effect.


6. CLAUBBIT — Skip All Permission Dialogs

Files: src/interactiveHelpers.tsx, src/services/analytics/metadata.ts

Setting CLAUBBIT=1 bypasses all trust and permission dialog initialization. The name appears to be a portmanteau of Claude + rabbit (🐇). Sessions run with this flag are tracked in analytics as isClaubbit: true.

// Skip permission checks in claubbit
if (!isEnvTruthy(process.env.CLAUBBIT)) {
  // ... permission dialog setup
}

7. Hard-Coded Internal Slack Channel

The internal Anthropic Slack channel #claude-code-feedback with channel ID C07VBSHV7EV is hard-coded in several places throughout the source. Diagnostic outputs suggest posting there, session investigation tools reference it, and there is an MCP Slack tool integration capable of auto-posting diagnostics directly to this channel.


8. @[MODEL LAUNCH] Checklist Markers

30+ locations throughout src/

Every planned model launch has pre-placed checklist markers scattered across the codebase with instructions for what to change. Examples:

// @[MODEL LAUNCH]: Update the latest frontier model
// @[MODEL LAUNCH]: Update comment writing for Capybara
// @[MODEL LAUNCH]: Remove this section when we launch numbat.
// @[MODEL LAUNCH]: Add the new model to the allowlist if it supports...

This is a code-embedded launch checklist — a glimpse into Anthropic's model release process.


9. KAIROS — The Mystery Mega-Feature

Files: src/commands.ts, src/interactiveHelpers.tsx, src/keybindings/defaultBindings.ts

feature('KAIROS') and its variants gate an extensive set of capabilities:

Flag Purpose
KAIROS Core feature — enables /brief, /assistant, additional keybindings
KAIROS_BRIEF Brief mode output style
KAIROS_CHANNELS Channel-based communication
KAIROS_GITHUB_WEBHOOKS GitHub webhook subscriptions via /subscribe-pr
KAIROS_DREAM A mysterious "dream" subsystem that activates alongside KAIROS
KAIROS_CRON / KAIROS_CRON_CONFIG Scheduled/cron execution

"Kairos" is a Greek word meaning the opportune or right moment. The feature appears to be a large unreleased proactive AI assistant capability that works autonomously between user turns.


10. Spinner Verbs — 204 Creative Loading Messages

File: src/constants/spinnerVerbs.ts

While Claude is thinking, a random verb from a list of 204 is shown (e.g., "Thinking…", "Calculating…"). Users can override or extend this list via settings.spinnerVerbs.

Highlights from the full list:

Category Examples
Cooking Baking, Brewing, Caramelizing, Flambéing, Julienning, Kneading, Sautéing, Whisking, Zesting
Nonsense words Beboppin', Boondoggling, Booping, Discombobulating, Fiddle-faddling, Flibbertigibbeting, Lollygagging, Recombobulating, Tomfoolering, Whatchamacalliting, Wibbling
Science-y Hyperspacing, Ionizing, Nebulizing, Osmosing, Photosynthesizing, Quantumizing, Sublimating
Dancing Boogieing, Jitterbugging, Moonwalking, Shimmying, Sock-hopping
Unique to Claude Clauding

The verb "Clauding" — used as a loading message — exists only in this codebase.

Full list of all 204 verbs

Accomplishing, Actioning, Actualizing, Architecting, Baking, Beaming, Beboppin', Befuddling, Billowing, Blanching, Bloviating, Boogieing, Boondoggling, Booping, Bootstrapping, Brewing, Bunning, Burrowing, Calculating, Canoodling, Caramelizing, Cascading, Catapulting, Cerebrating, Channeling, Channelling, Choreographing, Churning, Clauding, Coalescing, Cogitating, Combobulating, Composing, Computing, Concocting, Considering, Contemplating, Cooking, Crafting, Creating, Crunching, Crystallizing, Cultivating, Deciphering, Deliberating, Determining, Dilly-dallying, Discombobulating, Doing, Doodling, Drizzling, Ebbing, Effecting, Elucidating, Embellishing, Enchanting, Envisioning, Evaporating, Fermenting, Fiddle-faddling, Finagling, Flambéing, Flibbertigibbeting, Flowing, Flummoxing, Fluttering, Forging, Forming, Frolicking, Frosting, Gallivanting, Galloping, Garnishing, Generating, Gesticulating, Germinating, Gitifying, Grooving, Gusting, Harmonizing, Hashing, Hatching, Herding, Honking, Hullaballooing, Hyperspacing, Ideating, Imagining, Improvising, Incubating, Inferring, Infusing, Ionizing, Jitterbugging, Julienning, Kneading, Leavening, Levitating, Lollygagging, Manifesting, Marinating, Meandering, Metamorphosing, Misting, Moonwalking, Moseying, Mulling, Mustering, Musing, Nebulizing, Nesting, Newspapering, Noodling, Nucleating, Orbiting, Orchestrating, Osmosing, Perambulating, Percolating, Perusing, Philosophising, Photosynthesizing, Pollinating, Pondering, Pontificating, Pouncing, Precipitating, Prestidigitating, Processing, Proofing, Propagating, Puttering, Puzzling, Quantumizing, Razzle-dazzling, Razzmatazzing, Recombobulating, Reticulating, Roosting, Ruminating, Sautéing, Scampering, Schlepping, Scurrying, Seasoning, Shenaniganing, Shimmying, Simmering, Skedaddling, Sketching, Slithering, Smooshing, Sock-hopping, Spelunking, Spinning, Sprouting, Stewing, Sublimating, Swirling, Swooping, Symbioting, Synthesizing, Tempering, Thinking, Thundering, Tinkering, Tomfoolering, Topsy-turvying, Transfiguring, Transmuting, Twisting, Undulating, Unfurling, Unravelling, Vibing, Waddling, Wandering, Warping, Whatchamacalliting, Whirlpooling, Whirring, Whisking, Wibbling, Working, Wrangling, Zesting, Zigzagging


11. Turn Completion Verbs

File: src/constants/turnCompletionVerbs.ts

When a turn finishes, a past-tense verb is chosen from this tiny list of 8 and shown with the elapsed time (e.g., "Sautéed for 3.2s"):

Baked · Brewed · Churned · Cogitated · Cooked · Crunched · Sautéed · Worked

All chosen to work naturally with the phrase "for [duration]".


12. Clawd — The Animated ASCII Mascot

Files: src/components/LogoV2/Clawd.tsx, src/components/LogoV2/AnimatedClawd.tsx

The application has a named ASCII/Unicode mascot character called Clawd rendered using Unicode block elements (▛███▜, etc.). It has four poses:

Pose Description
default Neutral standing
arms-up Both arms raised (jump!)
look-left Pupils shifted left
look-right Pupils shifted right

Animations (triggered by mouse click)

  • JUMP_WAVE — Crouch → jump with arms up → idle → repeat (60 ms frames)
  • LOOK_AROUND — Look right → look left → default (60 ms frames)

The container is fixed at exactly 3 rows so layout never shifts during animations. Respects the prefersReducedMotion accessibility setting. Apple Terminal gets special bg-fill rendering treatment due to its different ANSI handling.


13. ANT-ONLY Dead Code Elimination

Multiple files

All branches guarded by process.env.USER_TYPE === 'ant' are completely removed from external builds by the Bun bundler (it is a build-time --define constant). External users never even receive this code in their bundle. Internal "ant" (Anthropic employee) builds include:

  • Fast mode speculation tracking
  • Numeric effort levels
  • TMux integration pills
  • Debug log panels
  • Shot stats and timing metrics
  • Internal system tool visualization
  • Special loop mode menu
  • Dev bar for slow sync operations
  • Homespace (Coder workspace) SSH data collection for /insights
  • Undercover mode logic

Similarly, feature('FEATURE_NAME') calls with false values are eliminated; only true-valued feature branches survive in production bundles.


14. April Fools Day Time-Gating

File: src/buddy/useBuddyNotification.tsx

The Buddy companion system has a time-gated teaser specifically targeting April 1, 2026:

// Local date, not UTC — 24h rolling wave across timezones. Sustained Twitter
// buzz instead of a single UTC-midnight spike, gentler on soul-gen load.
// Teaser window: April 1-7, 2026 only. Command stays live forever after.
export function isBuddyTeaserWindow(): boolean {
  if ("external" === 'ant') return true
  const d = new Date()
  return d.getFullYear() === 2026 && d.getMonth() === 3 && d.getDate() <= 7
}
export function isBuddyLive(): boolean {
  if ("external" === 'ant') return true
  const d = new Date()
  return d.getFullYear() > 2026 || (d.getFullYear() === 2026 && d.getMonth() >= 3)
}

The comment even explains the reason for using local time instead of UTC: to create a "24h rolling wave across timezones" for sustained social media buzz rather than a single midnight spike. The feature stays permanently live for all users after April 2026.


15. fun_ending — AI Finds Your Funniest Session Moment

File: src/commands/insights.ts

The /insights command includes a section named fun_ending that instructs the Opus model to find the most humanly interesting moment from your session transcripts — not a statistic, but something funny or surprising:

{
  "name": "fun_ending",
  "prompt": "Analyze this Claude Code usage data and find a memorable moment.\n\nRESPOND WITH ONLY A VALID JSON OBJECT:\n{\n  \"headline\": \"A memorable QUALITATIVE moment from the transcripts - not a statistic. Something human, funny, or surprising.\",\n  \"detail\": \"Brief context about when/where this happened\"\n}"
}

The generated headline and detail are rendered at the bottom of the HTML insights report.


16. Magic Setup URLs

Several ?magic= query parameters exist for deep-linking to specific onboarding flows:

https://claude.ai/code/onboarding?magic=env-setup
https://claude.ai/code/onboarding?magic=github-app-setup

Also present in the code: internal go/ shortlinks (e.g., go/ccshare/<id>) for session sharing — these are Anthropic's corporate URL shortener links that only resolve on Anthropic's internal network.


17. PROACTIVE / Autonomous Tick Mode

File: src/constants/prompts.ts

When feature('PROACTIVE') or feature('KAIROS') is active, Claude receives a special system prompt section enabling it to work autonomously between user turns via periodic <tick> messages:

  • Each <tick> contains the user's current local time for context
  • Multiple ticks are batched into a single message to reduce API calls
  • Claude must call SleepTool if there is no useful work to do on a tick
  • On the first tick of a new session: greet the user briefly, ask what to work on — do not explore unprompted
  • Respects a terminalFocus field: unfocused → autonomous mode, focused → collaborative

The system prompt also defines a SYSTEM_PROMPT_DYNAMIC_BOUNDARY marker separating cacheable static prompt content from dynamic runtime content, optimizing API prompt caching.


18. Ultrareview — Paid Code Review with Balance Gate

Files: src/commands/review/ultrareviewCommand.tsx, src/services/api/ultrareviewQuota.ts

/ultrareview is a paid feature that checks your claude.ai account balance before running. It requires a minimum $10 available balance and shows a billing confirmation dialog. Links directly to https://claude.ai/settings/billing. A free tier exists but requires explicit overage confirmation.

Three billing states:

  • 'not-enabled' — Extra Usage not set up
  • 'low-balance' — Balance below $10 threshold
  • 'needs-confirm' — Balance available, awaiting user confirmation

19. /stickers — Opens a Merch Store

File: src/commands/stickers/stickers.ts

There is a /stickers command that opens https://www.stickermule.com/claudecode in your browser. The entire implementation is ~5 lines:

export async function call(): Promise<LocalCommandResult> {
  const url = 'https://www.stickermule.com/claudecode'
  const success = await openBrowser(url)
  if (success) {
    return { type: 'text', value: 'Opening sticker page in browser…' }
  } else {
    return { type: 'text', value: `Failed to open browser. Visit: ${url}` }
  }
}

20. Voice Mode Kill Switch — "Amber Quartz"

File: src/voice/voiceModeEnabled.ts

The voice feature has an emergency kill switch controlled by the GrowthBook flag tengu_amber_quartz_disabled. When this flag is set, all voice functionality is disabled globally without any client-side code change. "Amber Quartz" appears to be the internal project codename for the voice integration.

Voice mode also requires Anthropic OAuth (unavailable with API keys, Bedrock, Vertex, or Foundry) — it uses a voice_stream endpoint on claude.ai.


21. Analytics Kill Switch — "Frond Boric"

File: src/services/analytics/sinkKillswitch.ts

GrowthBook flag tengu_frond_boric (an obviously mangled/obfuscated name) controls a per-sink analytics kill switch. It can disable Datadog and/or first-party analytics sinks independently via a JSON config: { datadog?: boolean, firstParty?: boolean }. Setting a sink to true stops all dispatch to that sink. Fails open — missing config keeps sinks enabled.


22. Shiny Buddy — 1% Chance

File: src/buddy/companion.ts

Independent of rarity tier, every buddy has a 1% chance of being "shiny" — a direct homage to Pokémon's shiny mechanic:

shiny: rng() < 0.01

The shiny flag is stored in CompanionBones and is deterministic per user ID (same seed), so your buddy is shiny or it isn't — forever.


23. Multi-Clauding Detection

File: src/commands/insights.ts

The /insights command includes a function detectMultiClauding() that analyzes session patterns to identify when a user is running multiple Claude Code sessions in parallel — switching rapidly between them within a 30-minute window. When detected, this is reported as a "Multi-Clauding (Parallel Sessions)" insight with session overlap percentages.


24. All Hidden / Stub Commands

The following commands are registered in the command registry but are either disabled (isEnabled: () => false) or explicitly hidden (isHidden: true):

Permanently Disabled Stubs

These appear as { isEnabled: () => false, isHidden: true, name: 'stub' }:

/summary, /bughunter, /env, /mock-limits, /ant-trace, /backfill-sessions, /good-claude, /autofix-pr, /break-cache, /ctx_viz, /perf-issue, /share, /oauth-refresh, /onboarding, /debug-tool-call, /issue, /teleport, /reset-limits

Hidden but Functional

Command Purpose
/heapdump Memory heap dump for diagnostics
/thinkback-play Playback for "year in review" thinking token animations
/output-style Output style configuration (internal use)
/rate-limit-options Rate limit configuration (internal use)

Feature-Gated (only visible when enabled)

Command Feature Flag
/torch feature('TORCH') — implementation not yet present
/proactive feature('PROACTIVE') || feature('KAIROS')
/assistant feature('KAIROS')
/peer feature('UDS_INBOX')
/fork feature('FORK_SUBAGENT')
/buddy feature('BUDDY')

25. System Prompt Engineering Details

File: src/constants/prompts.ts (915 lines)

Some notable hardcoded instructions in the system prompt:

  • "Don't add docstrings, comments, or type annotations to code you didn't change"
  • "Three similar lines of code is better than a premature abstraction"
  • "Never claim 'all tests pass' when they fail"
  • "Don't create helpers, utilities, or abstractions for one-time operations"
  • Output efficiency: target ≤25 words between tool calls, ≤100 words for final responses
  • Cyber-risk instruction: never generate or guess URLs unless confident they're correct

The prompt is split at a SYSTEM_PROMPT_DYNAMIC_BOUNDARY marker — everything above is sent as a single cached block (cheaper), everything below is uncached dynamic content.


26. GrowthBook Feature Flags

All runtime feature flags follow the naming pattern tengu_<adjective>_<noun>. Selected flags of interest:

Flag Purpose
tengu_turtle_carbon Enables ultrathink / thinking token rainbow coloring
tengu_amber_quartz_disabled Emergency kill switch for voice mode
tengu_frond_boric Analytics sink kill switch (obfuscated name)
tengu_hive_evidence Controls adversarial VERIFICATION_AGENT
tengu_miraculo_the_bard Unknown — whimsical name
tengu_surreal_dali Unknown — named after Salvador Dalí
tengu_willow_mode Unknown mode system
tengu_thinkback Year-in-review thinking token animation system
tengu_kairos The KAIROS proactive assistant feature
tengu_kairos_dream KAIROS "dream" subsystem
tengu_ccr_bridge Bridge/remote-control feature gate
tengu_cobalt_harbor Auto-connect behavior for bridge sessions
tengu_ccr_mirror Event forwarding / mirror mode for bridge
tengu_bridge_repl_v2 V2 bridge REPL path
tengu_iron_gate_closed Generic feature gate (ominous name)
tengu_slate_prism Unknown — defaults to true
tengu_toolref_defer_j8m Tool reference deferral (has a hash suffix)

Telemetry events also all use the tengu_ prefix (e.g., tengu_update_check, tengu_mcp_start, tengu_oauth_success) — confirming that "Tengu" is the internal codename for the Claude Code CLI.


Document generated from source exploration of nitrocode/claude-code. All file paths are relative to the repository root.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment