Skip to main content

Feature Flags

All 90+ feature flags defined in build.ts, their default values in the public build, and what they gate.

How Flags Work

Flags are resolved at build time via Bun's feature() API:

import { feature } from 'bun:bundle'

// At build time, this becomes: const enabled = false
const enabled = feature('COORDINATOR_MODE')

if (enabled) {
// Entire block eliminated from bundle (dead code)
}

This means flags set to false have zero runtime cost — the gated code is physically removed from the bundle.

Enabled Flags (Public Build)

These features are active in the v2.1.88 public release:

FlagWhat It Gates
BUILTIN_EXPLORE_PLAN_AGENTSBuilt-in Explore and Plan agent types
MCP_SKILLSMCP-based skill loading
TOKEN_BUDGETToken usage display in UI
COMPACTION_REMINDERSReminders about context compaction
TASK_TOOLSTaskCreate, TaskList, TaskUpdate, TaskGet, TaskOutput tools
TOOL_SEARCHToolSearch tool for deferred tool loading
AGENT_TOOLAgent tool for sub-agent spawning
SEND_MESSAGE_TOOLSendMessage tool for agent communication

Disabled Flags (Internal/Experimental)

These features are compiled out of the public build:

FlagWhat It GatesCategory
BRIDGE_MODEIDE bridge integrationInternal
COORDINATOR_MODEMulti-agent coordinatorInternal
KAIROSAutonomous assistant modeInternal
DAEMONBackground daemon processInternal
VOICE_MODEVoice input/outputExperimental
WEB_BROWSER_TOOLBrowser automation toolExperimental
CHICAGO_MCPComputer-use MCP toolsInternal
ABLATION_BASELINEA/B testing baselineTesting
WORKFLOW_SCRIPTSWorkflow file executionExperimental

Flag Reference

The full list of flags is defined in build.ts:

const featureFlags = {
// Core features (enabled)
BUILTIN_EXPLORE_PLAN_AGENTS: true,
MCP_SKILLS: true,
TOKEN_BUDGET: true,
COMPACTION_REMINDERS: true,

// Internal features (disabled)
BRIDGE_MODE: false,
COORDINATOR_MODE: false,
KAIROS: false,
DAEMON: false,

// Experimental (disabled)
VOICE_MODE: false,
WEB_BROWSER_TOOL: false,

// ... 80+ more flags
}

Modifying Flags

To experiment with disabled features, edit build.ts and set the flag to true, then rebuild:

# Edit build.ts: change COORDINATOR_MODE: false → true
bun run build.ts
bun dist/cli.js

Note that internal features may depend on infrastructure not available in the public build.

Source File

FilePurpose
build.tsAll flag definitions and build configuration