Skip to main content

Overview

Claude Code uses build-time feature flags via Bun’s bundler API. Flags are evaluated by a feature() function at bundle time — code paths behind disabled flags are dead-code-eliminated from the distributed package before it reaches users.
if (feature('VOICE_MODE')) {
  // this entire block is removed from public builds when the flag is off
  initializeVoiceMode()
}

Internal vs external builds

The codebase distinguishes between Anthropic-internal builds and the public npm package using a sentinel string comparison:
if ("external" !== 'ant' && isBeingDebugged()) {
  process.exit(1)
}
When the build target is set to 'ant', the expression "external" !== 'ant' evaluates to false, allowing internal tooling (debuggers, test harnesses) to run without triggering the anti-debugging guard. In public builds the expression is always true. Feature flags that are internal-only are similarly gated: the feature() call returns false in public builds, and the bundler removes the enclosed code entirely.

Feature flags

FlagDescription
COORDINATOR_MODEMulti-agent orchestration mode
KAIROSAssistant/proactive agent mode
VOICE_MODEVoice input via speech-to-text
BRIDGE_MODEMobile/web remote control bridge
SSH_REMOTESSH remote execution
DIRECT_CONNECTDirect server connections
ULTRAPLANAdvanced planning mode
BUDDYCompanion sprite Easter egg
FORK_SUBAGENTAgent forking capability
TRANSCRIPT_CLASSIFIERAuto-mode safety classifier
EXPERIMENTAL_SKILL_SEARCHSkill discovery feature
WEB_BROWSER_TOOLBrowser automation tool
These flags are compiled at build time. You cannot enable or disable them at runtime — their values are fixed in the distributed package you install.

Internal codenames

The source code references several internal project codenames. These appear in file names, analytics event prefixes, and comments.
CodenameMeaning
TenguAnalytics event prefix (tengu_*) — Claude Code’s internal project name
KairosAssistant/proactive agent mode
FennecEarlier Claude model variant, now migrated to Opus
LodestoneDeep link / URL protocol handler
TungstenExperimental tool type
WalrusReactive compact feature
TorchExperimental command
UltraplanAdvanced multi-step planning mode
GroveUI component system
BuddyAnimated companion sprite (Easter egg)
Codenames surface occasionally in error messages, log output, and settings keys. For example, analytics events are prefixed with tengu_ (e.g. tengu_sonnet45_to_46_migration), and the Fennec model alias is handled by the migrateFennecToOpus migration.

Build docs developers (and LLMs) love