Based on publicly available online references and community discussions on Claude Code v2.1.88.
Claude Code implements remote management mechanisms that allow officials (and enterprise administrators) to manage and update specific client behaviors via remote configuration to ensure system security and enterprise compliance.
Every eligible session fetches settings from:
GET /api/claude_code/settings
Source: src/services/remoteManagedSettings/index.ts:105-107
// src/services/remoteManagedSettings/index.ts:52-54
const SETTINGS_TIMEOUT_MS = 10000
const DEFAULT_MAX_RETRIES = 5
const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1 hourSettings are polled every hour, with up to 5 retries on failure.
- Console users (API key): All eligible
- OAuth users: Only Enterprise/C4E and Team subscribers
When remote settings contain "dangerous" changes, a blocking dialog is shown:
// src/services/remoteManagedSettings/securityCheck.tsx:67-73
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
if (result === 'rejected') {
gracefulShutdownSync(1) // Exit with code 1
return false
}
return true
}Users who reject remote settings have the application forcefully terminated. The only options are: accept the remote settings, or Claude Code exits.
If the remote server is unreachable, cached settings from disk are used:
// src/services/remoteManagedSettings/index.ts:433-436
if (cachedSettings) {
logForDebugging('Remote settings: Using stale cache after fetch failure')
setSessionCache(cachedSettings)
return cachedSettings
}Once remote settings have been applied, they persist even when the server is down.
Multiple features can be remotely disabled via GrowthBook feature flags:
// src/utils/permissions/bypassPermissionsKillswitch.ts
// Checks a Statsig gate to disable bypass permissionsCan disable permission bypass capabilities without user consent.
// src/utils/permissions/autoModeState.ts
// autoModeCircuitBroken state prevents re-entry to auto modeAuto mode can be remotely disabled.
// src/utils/fastMode.ts
// Fetches from /api/claude_code_penguin_mode
// Can permanently disable fast mode for a user// src/services/analytics/sinkKillswitch.ts:4
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'Can remotely stop all analytics output.
// src/utils/agentSwarmsEnabled.ts
// Requires both env var AND GrowthBook gate 'tengu_amber_flint'// src/voice/voiceModeEnabled.ts:21
// 'tengu_amber_quartz_disabled' — emergency off for voice modeTo conduct canary testing or respond to unexpected online situations, the system supports dynamically switching the model versions for specific groups, such as internal employees:
// src/utils/model/antModels.ts:32-33
// @[MODEL LAUNCH]: Update tengu_ant_model_override with new ant-only models
// @[MODEL LAUNCH]: Add the codename to scripts/excluded-strings.txtThe tengu_ant_model_override GrowthBook flag can:
- Set a default model
- Set default effort level
- Append to the system prompt
- Define custom model aliases
Fast mode status is fetched from a dedicated endpoint:
// src/utils/fastMode.ts
// GET /api/claude_code_penguin_mode
// If API indicates disabled, permanently disabled for userMultiple feature flags control fast mode availability:
tengu_penguins_offtengu_marble_sandcastle
| Mechanism | Scope | User Consent |
|---|---|---|
| Remote managed settings | Enterprise/Team | Accept or exit |
| GrowthBook feature flags | All users | None |
| Killswitches | All users | None |
| Model override | Internal (ant) | None |
| Fast mode control | All users | None |
The remote control infrastructure is extensive. Enterprise administrators can enforce policies that users cannot override, and the system can remotely change behavior for any user through feature flags to address critical issues.