WikifitaGitHub live67e8de5
projeto · claude_desktop/claude-desktop-feature-flags

Claude Desktop — Feature Flags

Documentation: Claude Desktop — Feature Flags

Baixar raw

Claude Desktop — Feature Flags

Claude Desktop feature flag system, extracted via ASAR bundle analysis + runtime introspection (CDP).

System Architecture

claude.ai /api/desktop/features ──→ GrowthBook (custom wrapper)
                                        │
                                        ▼
                              ct("ID") checks in code
                                        │
                        ┌───────────────┼───────────────┐
                        ▼               ▼               ▼
                  desktopBootFeatures  $3i (dynamic)   V3i (hardcoded)
                   (39 capabilities)   (model-based)   (1p-only, 9 flags)

Feature Sources

SourceDescriptionCount
fcache (disk)Local cache at ~/Library/Application Support/Claude/fcache189 features
V3iHardcoded 1p — returned by hardcodedMainGrowthBookFeatures()9 features
$3iDynamic — generated from buildConfig() and supports1mContextModels()29 features
desktopBootFeaturesNamed capabilities passed to renderer39 features

Feature Format

{
  "2976814254": {
    "value": true,
    "on": true,
    "off": false,
    "source": "force",
    "experiment": null,
    "experimentResult": null
  }
}
  • source: "force" — hardcoded in code (1p)
  • source: "defaultValue" — $3i default
  • source: "server" — came from /api/desktop/features endpoint

3p Flow

hardcodedMainGrowthBookFeatures() → null
  → fetch GET /api/desktop/features (from configured server)
    → cache in fcache (gzip, 24h TTL)
      → ct() checks

1p Flow

hardcodedMainGrowthBookFeatures() → V3i (9 hardcoded features)
  → fetch GET /api/desktop/features (from claude.ai)
    → merge with V3i
      → ct() checks

Identified 3p Stubs

StubFunctionImpact
_vt()return Promise.resolve({})Voice skill never loads
y4nObject.freeze({__proto__:null})Empty Echo MCP server
hardcodedMainGrowthBookFeatures()return nullNo 1p features

Named Features

⭐ V3i — Hardcoded 1p (forces on:true)

IDNameFunction
2976814254ccd-builtin-toolsBuilt-in MCP tools + preview server
3246569822can-save-skillEnables "Save Skill" button in UI
1143815894force-disable-host-loopForcefully disables host loop
123929380memory-reflect-skillMemory reflection skill
1696890383cowork-memory-guidelinesCowork memory path + guidelines
2307090146plugin-oauth-storageOAuth credential storage for plugins
2940196192louder-panda-betaLouder Panda beta feature
3732274605chilling-sloth-betaChilling Sloth beta feature
1978029737cowork-native-file-previewNative file preview in Cowork

🧠 Voice (1985784543)

  • Name: voice:setup-voice-skill
  • 1p: Active (confirmed by protocol captures)
  • 3p: BLOCKED — feature not in cache + _vt() is a stub
  • Module: getSetupVoiceSkill() via await _vt() — returns undefined in 3p
  • To activate: Replace stub _vt + return feature on:true

🖥️ Computer Use (4116586025)

  • Name: computer-use-availability
  • 1p: supported
  • 3p: NOT in cache
  • Dependency: Purely local (ct() + platform check)

🛠️ Skills

IDName1p3p
123929380memory-reflect-skillon (V3i)off
1824824999skill-custom-description?off
1004628546memory-reflect-configonon
4066504968cowork-setup-configonon
2800354941skill-sort-alpha?on

🔌 Plugins

IDName1p3p
4274871493plugin-sync-v2on (force)on (force)
3633961296plugin-backfill-migrationon (force)on (force)
1609612026plugin-account-enabledon (force)on (force)
720735283plugin-stale-checkon (force)on (force)
3758515526plugin-marketplace-configonon

🖥️ VM & Cowork

IDName1p3p
4160352601vm-heartbeat-restartonoff
2339084909vm-heartbeat-simpleon (force)on (force)
4141490266cowork-additional-tools?off
3371831021cowork-cu-only-mode?off

⏰ Scheduler

IDName1p3p
3516166472wake-scheduler-featureunavailableon
3300773012scheduler-offline-gate?off
2893011886scheduler-battery-interval?on

🔐 OAuth / Auth

IDName1p3p
2438134137oauth-design-scope?off
2392971184oauth-sessions-scopeon (force)on (force)

desktopBootFeatures — 39 Named Capabilities

Extracted from 1p webview via window.desktopBootFeatures:

Supported (24)

nativeQuickEntry, quickEntryDictation, quickEntryGlobalShortcut, customQuickEntryDictationShortcut, chillingSlothFeat, chillingSlothEnterprise, chillingSlothLocal, yukonSilver, yukonSilverGems, yukonSilverGemsCache, desktopTopBar, ccdPlugins, computerUse, tearOffHalo, coworkArtifactPopout, claudeDesignWindow, coworkRemoteSessionSpaces, coworkBranchSession, bootstrapConfig, chatIn3p, builtinMcpPresets, chatTab [beta]

Unavailable (15)

artifactsPane, plushRaccoon, quietPenguin, chillingSlothPool, wakeScheduler, coworkKappa, coworkArtifacts, markTaskComplete, framebufferPreview, iosSimulator, androidEmulator, iosSimulatorH264, grandPrix, grandPrixRequest, surfaceTogglesPreview, chatCodeExecution, epitaxyMcpApps

Name → Numeric ID Mapping

Named FeatureNumeric IDResolver
chillingSlothFeat1928275548DHr()ct("1928275548")
chillingSlothLocal2115990222SHr()ct("2115990222")
chillingSlothPool1992087837ct("1992087837")
wakeScheduler3516166472ER(xHr)ct("3516166472") + platform
computerUse4116586025LHr()ct("4116586025") + platform
framebufferPreview1928275548GHr() → same as chillingSlothFeat

Multiple features are hardcoded Md = {status: "supported"}: ccdPlugins, tearOffHalo, coworkArtifactPopout, claudeDesignWindow, coworkRemoteSessionSpaces, coworkBranchSession, bootstrapConfig, chatIn3p, builtinMcpPresets

Complete Analysis

CSV with 226 features, names, 1p/3p state, and compliance: ~/.bezetacil/workdir/claude-desktop/feature-flags.csv

References