Audit date: 2026-03-31
This repository currently references 88 feature('FLAG') compile-time flags.
I re-checked them by bundling the CLI once per flag on top of the current
external-build defines and externals. Result:
- 54 flags bundle cleanly in this snapshot
- 34 flags still fail to bundle
Important: "bundle cleanly" does not always mean "runtime-safe". Some flags
still depend on optional native modules, claude.ai OAuth, GrowthBook gates, or
externalized @ant/* packages.
bun run buildBuilds the regular external binary at./cli.bun run compileBuilds the regular external binary at./dist/cli.bun run build:devBuilds./cli-devwith a dev-stamped version and experimental GrowthBook key.bun run build:dev:fullBuilds./cli-devwith the entire current "Working Experimental Features" bundle from this document, minusCHICAGO_MCP. That flag still compiles, but the external binary does not boot cleanly with it because startup reaches the missing@ant/computer-use-mcpruntime package.
VOICE_MODEThis is now included in the default build pipeline, not just the dev build. It enables/voice, push-to-talk UI, voice notices, and dictation plumbing. Runtime still depends on claude.ai OAuth plus either the native audio module or a fallback recorder such as SoX.
These are the user-facing or behavior-changing flags that currently bundle cleanly and should still be treated as experimental in this snapshot unless explicitly called out as default-on.
AWAY_SUMMARYAdds away-from-keyboard summary behavior in the REPL.HISTORY_PICKEREnables the interactive prompt history picker.HOOK_PROMPTSPasses the prompt/request text into hook execution flows.KAIROS_BRIEFEnables brief-only transcript layout and BriefTool-oriented UX without the full assistant stack.KAIROS_CHANNELSEnables channel notices and channel callback plumbing around MCP/channel messaging.LODESTONEEnables deep-link / protocol-registration related flows and settings wiring.MESSAGE_ACTIONSEnables message action entrypoints in the interactive UI.NEW_INITEnables the newer/initdecision path.QUICK_SEARCHEnables prompt quick-search behavior.SHOT_STATSEnables additional shot-distribution stats views.TOKEN_BUDGETEnables token budget tracking, prompt triggers, and token warning UI.ULTRAPLANEnables/ultraplan, prompt triggers, and exit-plan affordances.ULTRATHINKEnables the extra thinking-depth mode switch.VOICE_MODEEnables voice toggling, dictation keybindings, voice notices, and voice UI.
AGENT_MEMORY_SNAPSHOTStores extra custom-agent memory snapshot state in the app.AGENT_TRIGGERSEnables local cron/trigger tools and bundled trigger-related skills.AGENT_TRIGGERS_REMOTEEnables the remote trigger tool path.BUILTIN_EXPLORE_PLAN_AGENTSEnables built-in explore/plan agent presets.CACHED_MICROCOMPACTEnables cached microcompact state through query and API flows.COMPACTION_REMINDERSEnables reminder copy around compaction and attachment flows.EXTRACT_MEMORIESEnables post-query memory extraction hooks.PROMPT_CACHE_BREAK_DETECTIONEnables cache-break detection around compaction/query/API flow.TEAMMEMEnables team-memory files, watcher hooks, and related UI messages.VERIFICATION_AGENTEnables verification-agent guidance in prompts and task/todo tooling.
BASH_CLASSIFIEREnables classifier-assisted bash permission decisions.BRIDGE_MODEEnables Remote Control / REPL bridge command and entitlement paths.CCR_AUTO_CONNECTEnables the CCR auto-connect default path.CCR_MIRROREnables outbound-only CCR mirror sessions.CCR_REMOTE_SETUPEnables the remote setup command path.CHICAGO_MCPEnables computer-use MCP integration paths and wrapper loading.CONNECTOR_TEXTEnables connector-text block handling in API/logging/UI paths.MCP_RICH_OUTPUTEnables richer MCP UI rendering.NATIVE_CLIPBOARD_IMAGEEnables the native macOS clipboard image fast path.POWERSHELL_AUTO_MODEEnables PowerShell-specific auto-mode permission handling.TREE_SITTER_BASHEnables the tree-sitter bash parser backend.TREE_SITTER_BASH_SHADOWEnables the tree-sitter bash shadow rollout path.UNATTENDED_RETRYEnables unattended retry behavior in API retry flows.
These also bundle cleanly, but they are mostly rollout, platform, telemetry, or plumbing toggles rather than user-facing experimental features.
ABLATION_BASELINECLI ablation/baseline entrypoint toggle.ALLOW_TEST_VERSIONSAllows test versions in native installer flows.ANTI_DISTILLATION_CCAdds anti-distillation request metadata.BREAK_CACHE_COMMANDInjects the break-cache command path.COWORKER_TYPE_TELEMETRYAdds coworker-type telemetry fields.DOWNLOAD_USER_SETTINGSEnables settings-sync pull paths.DUMP_SYSTEM_PROMPTEnables the system-prompt dump path.FILE_PERSISTENCEEnables file persistence plumbing.HARD_FAILEnables stricter failure/logging behavior.IS_LIBC_GLIBCForces glibc environment detection.IS_LIBC_MUSLForces musl environment detection.NATIVE_CLIENT_ATTESTATIONAdds native attestation marker text in the system header.PERFETTO_TRACINGEnables perfetto tracing hooks.SKILL_IMPROVEMENTEnables skill-improvement hooks.SKIP_DETECTION_WHEN_AUTOUPDATES_DISABLEDSkips updater detection when auto-updates are disabled.SLOW_OPERATION_LOGGINGEnables slow-operation logging.UPLOAD_USER_SETTINGSEnables settings-sync push paths.
These bundle today, but I would still treat them as experimental because they have meaningful runtime caveats:
VOICE_MODEBundles cleanly, but requires claude.ai OAuth and a local recording backend. The native audio module is optional now; on this machine the fallback path asks forbrew install sox.NATIVE_CLIPBOARD_IMAGEBundles cleanly, but only accelerates macOS clipboard reads whenimage-processor-napiis present.BRIDGE_MODE,CCR_AUTO_CONNECT,CCR_MIRROR,CCR_REMOTE_SETUPBundle cleanly, but are gated at runtime on claude.ai OAuth plus GrowthBook entitlement checks.KAIROS_BRIEF,KAIROS_CHANNELSBundle cleanly, but they do not restore the full missing assistant stack. They only expose the brief/channel-specific surfaces that still exist.CHICAGO_MCPBundles cleanly, but the runtime path still reaches externalized@ant/computer-use-*packages. This is compile-safe, not fully runtime-safe, in the external snapshot.TEAMMEMBundles cleanly, but only does useful work when team-memory config/files are actually enabled in the environment.
These are the failed flags where the current blocker looks small enough that a focused reconstruction pass could probably restore them without rebuilding an entire subsystem.
AUTO_THEMEFails on missingsrc/utils/systemThemeWatcher.js.systemTheme.tsand the theme provider already contain the cache/parsing logic, so the missing piece looks like the OSC 11 watcher only.BG_SESSIONSFails on missingsrc/cli/bg.js. The CLI fast-path dispatch insrc/entrypoints/cli.tsxis already wired.BUDDYFails on missingsrc/commands/buddy/index.js. The buddy UI components and prompt-input hooks already exist.BUILDING_CLAUDE_APPSFails on missingsrc/claude-api/csharp/claude-api.md. This looks like an asset/document gap, not a missing runtime subsystem.COMMIT_ATTRIBUTIONFails on missingsrc/utils/attributionHooks.js. Setup and cache-clear code already call into that hook module.FORK_SUBAGENTFails on missingsrc/commands/fork/index.js. Command slot and message rendering support are already present.HISTORY_SNIPFails on missingsrc/commands/force-snip.js. The surrounding SnipTool and query/message comments are already there.KAIROS_GITHUB_WEBHOOKSFails on missingsrc/tools/SubscribePRTool/SubscribePRTool.js. The command slot and some message handling already exist.KAIROS_PUSH_NOTIFICATIONFails on missingsrc/tools/PushNotificationTool/PushNotificationTool.js. The tool slot already exists insrc/tools.ts.MCP_SKILLSFails on missingsrc/skills/mcpSkills.js.mcpSkillBuilders.tsalready exists specifically to support that missing registry layer.MEMORY_SHAPE_TELEMETRYFails on missingsrc/memdir/memoryShapeTelemetry.js. The hook call sites are already in place insessionFileAccessHooks.ts.OVERFLOW_TEST_TOOLFails on missingsrc/tools/OverflowTestTool/OverflowTestTool.js. This appears isolated and test-only.RUN_SKILL_GENERATORFails on missingsrc/runSkillGenerator.js. The bundled skill registration path already expects it.TEMPLATESFails on missingsrc/cli/handlers/templateJobs.js. The CLI fast-path is already wired insrc/entrypoints/cli.tsx.TORCHFails on missingsrc/commands/torch.js. This looks like a single command entry gap.TRANSCRIPT_CLASSIFIERThe first hard failure is missingsrc/utils/permissions/yolo-classifier-prompts/auto_mode_system_prompt.txt. The classifier engine, parser, and settings plumbing already exist, so the missing prompt/assets are likely the first reconstruction target.
These do have meaningful surrounding code, but the missing piece is larger than a single wrapper or asset.
BYOC_ENVIRONMENT_RUNNERMissingsrc/environment-runner/main.js.CONTEXT_COLLAPSEMissingsrc/tools/CtxInspectTool/CtxInspectTool.js.COORDINATOR_MODEMissingsrc/coordinator/workerAgent.js.DAEMONMissingsrc/daemon/workerRegistry.js.DIRECT_CONNECTMissingsrc/server/parseConnectUrl.js.EXPERIMENTAL_SKILL_SEARCHMissingsrc/services/skillSearch/localSearch.js.MONITOR_TOOLMissingsrc/tools/MonitorTool/MonitorTool.js.REACTIVE_COMPACTMissingsrc/services/compact/reactiveCompact.js.REVIEW_ARTIFACTMissingsrc/hunter.js.SELF_HOSTED_RUNNERMissingsrc/self-hosted-runner/main.js.SSH_REMOTEMissingsrc/ssh/createSSHSession.js.TERMINAL_PANELMissingsrc/tools/TerminalCaptureTool/TerminalCaptureTool.js.UDS_INBOXMissingsrc/utils/udsMessaging.js.WEB_BROWSER_TOOLMissingsrc/tools/WebBrowserTool/WebBrowserTool.js.WORKFLOW_SCRIPTSFails first onsrc/commands/workflows/index.js, but there are more gaps:tasks.tsalready expectsLocalWorkflowTask, andtools.tsexpects a realWorkflowToolimplementation while onlyWorkflowTool/constants.tsexists in this snapshot.
These are the ones that still look expensive to restore because the first missing import is only the visible edge of a broader absent subsystem.
KAIROSMissingsrc/assistant/index.jsand much of the assistant stack with it.KAIROS_DREAMMissingsrc/dream.jsand related dream-task behavior.PROACTIVEMissingsrc/proactive/index.jsand the proactive task/tool stack.
- Feature-aware build logic: scripts/build.ts
- Feature-gated command imports: src/commands.ts
- Feature-gated tool imports: src/tools.ts
- Feature-gated task imports: src/tasks.ts
- Feature-gated query behavior: src/query.ts
- Feature-gated CLI entry paths: src/entrypoints/cli.tsx