Skip to content

Configuration ​

Reference for configuring agents-fleet at v0.60.1 via CLI flags, environment variables, and the persisted config.json file.

Sources: CLI flags are defined in src/index.ts; the config schema + defaults live in src/config.ts (FleetConfig / DEFAULT_CONFIG); environment variables are read across src/. The environment-variable section lists every AGENTS_FLEET_* variable read by non-test code at v0.60.1, except the test-harness/build seams called out under Internal & test-only; the config-file section covers selected fields only.

Precedence ​

When the same setting can be supplied multiple ways, the most specific wins:

CLI flag  >  environment variable  >  ~/.fleet/config.json  >  built-in default

A handful of flags also have a config-file mirror (e.g. allowPrivilegeEscalation, workflowDiscovery.trustProjectSources); where that is the case it is noted below.


CLI flags ​

Invoke as agents-fleet [flags]. Run agents-fleet --help for the canonical list emitted by Commander. Source: src/index.ts.

Session & provider ​

FlagDefaultDescription
-p, --prompt <prompt>—Run a single prompt OR slash command and exit (non-interactive).
-m, --model <model>claude-opus-4.6Model to use.
--provider <name>copilotLLM provider: copilot or claude.
-e, --effort <level>highReasoning effort: low | medium | high | xhigh.
--resume [sessionId]—Resume a previous session (omit ID to resume latest).
--resume-allfalseInclude worker/orphan sessions in the --resume picker (recover a corrupted coordinator session).
--name <label>—Set a name for this session.
-v, --verbosefalseVerbose per-tool-call logging in the fleet log (Ink-safe).
--unattendedfalseRun without blocking for interactive askUser prompts; the coordinator self-directs. Required for goal-driven loops under --provider claude.
--no-coordinator—Single-agent mode (no fleet coordination).
--legacy-ui—Use the legacy VT100 renderer instead of Ink.
--cli-path <path>—Path to the Copilot CLI executable.
--cli-url <url>—URL of an existing Copilot CLI server.

Context window ​

FlagDefaultDescription
--context-tier <tier>defaultContext-window tier (default = 200k, long_context = 1M). Sets BOTH coordinator + worker. Only honored by 1M-capable models.
--coordinator-context-tier <tier>—Context tier for the COORDINATOR session only. Overrides --context-tier for that scope.
--worker-context-tier <tier>—Context tier for ALL WORKER sessions. Overrides --context-tier for that scope.
--long-contextfalseShortcut for --context-tier long_context.
--context-window <size>—Friendly alias for --context-tier: 200k → default, 1m → long_context.

Concurrency & watchdog ​

FlagDefaultDescription
--max-workers <n>12Maximum concurrent (data-plane) workers.
--hang-threshold-ms <ms>14400000 (4h)Override the SessionSendQueue hang-detector threshold. 0 disables.

Trust & security ​

FlagDefaultDescription
--trust-project-mcpoffLoad project-level MCP server configs (.mcp.json, .cursor/mcp.json, .vscode/mcp.json, agency.toml). Disabled by default per SEC-1.
--trust-project-workflowson (no-op)Legacy explicit opt-in for project-tier workflow command synthesis, which is enabled by default. Project workflows load regardless of this gate.
--no-trust-project-workflows—Disable command synthesis from project-tier workflows; the workflows still load for direct and crew references.
--trust-project-gatesoffLoad project-tier .fleet/gates/*.gate.md validation gates (PR-6).
--no-trust-project-gates—Explicit opt-out for project-tier gate discovery (already the default).
--trust-project-intakeoffLoad project-tier .fleet/intake/*.intake.md adapters (PR-7).
--no-trust-project-intake—Explicit opt-out for project-tier intake discovery (already the default).
--trust-project-skillsoffLoad project-tier .fleet/roles/*.role.md, .fleet/skills/*.skill.md, .fleet/crews/*.crew.md (#487). Bundled and user tiers always load.
--no-trust-project-skills—Explicitly skip project-tier roles, skills, and crews (already the default).
--trust-teamoffConfirm the --team meta-repo on first use and pin its fingerprint (TOFU); also required to re-trust a changed repository URL.
--teamoffEXPERIMENTAL: enable the shared meta-repo "team" artifact tier (resolved from <cwd>/.fleet/team.toml). Mirror: AGENTS_FLEET_TEAM=1.
--enable-cybersec-skillsoffOpt in to the vendored, dual-use cybersecurity skills library at lowest precedence. Authorized-scope use only. Mirror: AGENTS_FLEET_CYBERSEC_SKILLS=1.
--allow-privilege-escalationfalseAllow config/spawn overrides to enable shell/write/meta/full trust, raise privilege level, or widen write scopes beyond a canonical profile (SEC-4). Mirrors allowPrivilegeEscalation in config.json (CLI wins).

Artifact precedence is bundled < user < team(main) < team(member) < trusted project. The optional team tier also requires --team; see Team Meta-Repo for setup, member overlays, and TOFU behavior.

Deprecated --yolo bypass ​

--yolo no longer bypasses anything on its own; it requires at least one --acknowledge-* flag.

FlagDefaultDescription
--yolofalseRequest deprecated yolo bypass mode. Requires an --acknowledge-* flag.
--acknowledge-sec2falseWith --yolo, re-enable SEC-2 Claude bypassPermissions.
--acknowledge-sec4falseWith --yolo, re-enable SEC-4 restricted-agent approve-all/write/shell bypass.
--acknowledge-mcp-bypassfalseWith --yolo, re-enable the MCP allowlist bypass.
--acknowledge-sec-r3-2falseWith --yolo, re-enable SEC-R3-2 unknown-kind fail-closed bypass.
--acknowledge-all-secfalseWith --yolo, acknowledge all SEC bypasses (legacy full-bypass behavior).

Channels & experimental ​

FlagDefaultDescription
--telegramfalseEnable the Telegram remote-steering channel. Incompatible with --legacy-ui, -p/--prompt, and --no-coordinator.
--inboxfalseEnable the EXPERIMENTAL file-queue inbox at ~/.fleet/inbox/*.task.json.
--inbox-trust-allfalseWith --inbox, allow kind: spawn_worker descriptors (refused by default).
--control-planefalseEXPERIMENTAL: boot the machine-orchestration control plane instead of a data-plane fleet.
--control-socketfalseEXPERIMENTAL: expose a per-fleet control socket so an attached client can drive this fleet remotely.
--hubfalseEXPERIMENTAL: opt this fleet in to the control-plane Telegram hub (one forum topic per fleet). Implies --control-socket (fail-loud). The hub operator must still approve the fleet once.
--forensic-viewerfalseStart or reuse the local forensic replay viewer service. See the Forensic Viewer guide.
--native-rootoffUse native ROOT orchestration for fresh sessions (saved sessions keep their mode).
--no-native-root—Use legacy Fleet execution; cannot resume a native saved session.
--root-integration-target <refs...>—In native ROOT mode, authorize exact local refs for accepted root integration.

~/.fleet/config.json ​

Persisted settings live in <FLEET_HOME>/config.json (default ~/.fleet/config.json). Edit it by hand, or in-app with /config set <key> <value> (accepted keys: model, reasoningEffort, maxWorkers, verbose, and the worktrees.*, steering.*, and evolution.* fields listed below) and /config model-routing for modelRouting. The schema is FleetConfig in src/config.ts; unknown keys are ignored and malformed values fall back to defaults with a warning.

Selected top-level fields ​

KeyDefaultDescription
modelclaude-opus-4.6Default model.
providercopilotcopilot or claude.
reasoningEfforthighlow | medium | high | xhigh.
contextTierdefaultLegacy fleet-wide context tier; seeds both coordinator + worker tiers.
coordinatorContextTier—Coordinator-only context tier.
workerContextTier—Worker-session context tier.
workerReasoningEffort—Reasoning effort for worker sessions (low | medium | high | xhigh). Unset = provider default (today's behaviour); it does not inherit reasoningEffort. Silently omitted for models that don't support it (e.g. claude-sonnet-4.5, haiku). Set it by editing config.json — there is no slash command for it (/effort changes the coordinator's reasoningEffort only).
modelRouting—Per-agent-type default worker model, e.g. { "explorer": "claude-sonnet-4.5" }. Keys must be known agent types and values non-empty strings (invalid entries are skipped with a warning). Precedence: explicit definition.model (spawn/role/crew pin) > modelRouting[agentType] > session/config model > provider default. Manage with /config model-routing (show), /config model-routing set <agentType> <model>, clear <agentType>, clear-all; /fleet-intel apply <id> also writes it for model-swap suggestions.
maxWorkers12Data-plane worker pool size.
maxCoordinatorWorkersmax(1, ⌊maxWorkers/3⌋)Independent coordinator-tier worker pool (additive to maxWorkers).
verbosefalseVerbose tool-call logging.
resumeWindow500Max transcript entries shown on resume (0 = unlimited).
allowPrivilegeEscalationfalseAllow permission-profile elevation via wildcard, type, or spawn overrides (SEC-4). Required for false-to-true canShell/canWrite and write-scope widening.
yolofalseDeprecated bypass; each bypass still needs a matching yoloAcks entry.
controlSocketfalseEnable the per-fleet control socket without a flag. Read early and fail-soft (a bind failure warns and the fleet keeps booting). Precedence: --control-socket > AGENTS_FLEET_CONTROL_SOCKET > this key. Edit config.json by hand.

Nested config objects ​

KeyNotable fields (defaults)Description
worktreesenabled: true, directory: '.worktrees', symlinkNodeModules: falseGit-worktree isolation for workers.
steeringenabled: true, timeoutMs: 60000, maxInsights: 10, maxMessages: 50, memoryThreshold: 70Remote-steering / insight-extraction knobs.
mcpServers[]Explicit MCP server entries (managed via /mcp).
mcpDiscoveryenabled: true, trustProjectSources: falseMCP auto-discovery; project sources off by default (SEC-1).
evolutionenabled: true, autoEvolve: false, maxPromptTokens: 4000, minSampleSize: 5, confidenceThreshold: 75, rollbackAfterSessions: 5Skill-evolution pipeline.
experimentenabled, schedulerEnabled, maxVariants, maxTrialsPerRun, …A/B experiment framework knobs.
intelcaptureLabeledOutcomesIntel/telemetry capture knobs.
shadowminShadowRuns: 5, winRateThreshold: 0.6Shadow-skill promotion thresholds.
heartbeatenabled, heartbeatIntervalMs, stallTimeoutMs, bridgedStallTimeoutMs, maxRespawnAttempts, …Worker heartbeat / stall-recovery tuning.
instructionsenabled, discover, files, excludePatterns, injectIntoWorkersProject-instruction injection.
workflowDiscoverytrustProjectSources: trueControls project-tier workflow command synthesis only; project workflows still load when false.
gateDiscoverytrustProjectSources: falseProject-tier gate trust (PR-6).
intakeDiscoverytrustProjectSources: falseProject-tier intake-adapter trust (PR-7).
skillsDiscoverytrustProjectSources (unset; resolves false)Project-tier role/skill/crew trust (#487, opt-in).
coordinator—Coordinator-engine tuning.
permissions—Per-agent-type permission overrides (Record<AgentType | '*', PermissionOverrides>).
yoloAcks—Per-SEC acknowledgements for the deprecated yolo bypasses.
telegramHubattach: false{"attach": true} opts this fleet in to the control-plane Telegram hub and implies the control socket (fail-soft). Precedence: --hub > AGENTS_FLEET_TELEGRAM_HUB_ATTACH (0 forces off) > this key.

Environment variables ​

All boolean-style flags below treat '1' (and where noted '0') as the active value. Unless stated otherwise, a variable being unset keeps the default behavior.

Paths & storage ​

VariableDefaultDescription
FLEET_HOME~/.fleetRoot for all fleet state (config, sessions, logs, intel DB). Enables multi-instance isolation.
AGENTS_FLEET_HOME—Alternate fleet-home override (resolved by resolveFleetHome).
AGENTS_FLEET_SESSION_STORE_DB—Override path to the SQLite session-store DB.
AGENTS_FLEET_HOST_SESSION_STATE_DIR~/.copilot/session-stateOverride the Copilot host session-state root used for stat-only oversized-log resume checks.
AGENTS_FLEET_NO_MIGRATEoffSkip session-schema / skill migrations on boot.
AGENTS_FLEET_REGISTRY_DIR~/.fleet/socketsDirectory for the machine-wide registry of running-fleet discovery descriptors (<id>.json). Non-empty value wins over the default.

Worktrees ​

VariableDefaultDescription
AGENTS_FLEET_WORKTREE_REAPonStartup reclamation of old worker-prefixed (and unattributed) agent worktrees that pass every /worktree cleanup safety guard (dirty, unmerged, locked, live-agent, nested, and similar entries are refused). At most 25 removals per pass; best-effort, never throws or blocks boot. 0/false/no/off (case-insensitive) disables.
AGENTS_FLEET_WORKTREE_REAP_RETENTION_DAYS7Age window before a preserved worktree becomes reclaimable. 0 removes the age gate (every guard-passing candidate is reclaimable, not "disabled" — use AGENTS_FLEET_WORKTREE_REAP=0 to turn reaping off). Negative or unparseable values fall back to 7.
AGENTS_FLEET_WORKTREE_GIT_TIMEOUT_MS60000Timeout for each git worktree subprocess (raise on slow filesystems). Non-positive/invalid values use the default.

Native ROOT (--native-root only) ​

VariableDefaultDescription
AGENTS_FLEET_ROOT_REAPonReap old root-run records from the ROOT run store (terminal, abandoned-draft, or budget-expired roots past retention; up to 100 per pass). 0/false disables.
AGENTS_FLEET_ROOT_REAP_RETENTION_DAYS30Retention window for root-run reaping. Non-positive/unparseable values fall back to 30.
AGENTS_FLEET_ROOT_MAX_WALLCLOCK_MSoffOptional raw wall-clock ceiling for a live root, independent of the metered root clock's stall credit. Unset, 0, false, or garbage disables.

Provider & permissions ​

VariableDefaultDescription
AGENTS_FLEET_CLAUDE_BYPASS_PERMISSIONSoffRe-enable global Claude bypassPermissions (SEC-2; otherwise gated behind --yolo --acknowledge-sec2).
AGENTS_FLEET_UNATTENDEDoffEquivalent to --unattended.
AGENTS_FLEET_CLAUDE_HISTORY_WINDOW40--provider claude: number of most-recent messages re-injected as conversation history on each send. 0 injects the full history (legacy, O(n²) over a long session); negative/invalid values use the default.
AGENTS_FLEET_QUIET_MODEL_LOGoff1 suppresses the per-session "resolved model" log line written at session creation.
AGENTS_FLEET_MCP_RECOVERY_MAX_ATTEMPTS5MCP health monitor: reload attempts (spaced 30 s, the registry breaker window) while MCP servers stay blocked after a registry outage.
AGENTS_FLEET_MCP_RECOVERY_BOUNCEoff1 lets the MCP health monitor escalate once to a transport bounce (fresh subprocess) when reloads are exhausted. Off by default because bouncing recreates sessions.

Telegram & channels ​

VariableDefaultDescription
AGENTS_FLEET_TELEGRAM_TOKEN—Telegram bot token. Always wins over ~/.fleet/telegram.json.
AGENTS_FLEET_TG_DEBUGoffVerbose Telegram transport logging.
AGENTS_FLEET_OUTBOXoffSet to 1 by the control-plane supervisor on the data-plane fleets it spawns; enables the structured JSONL event outbox at <FLEET_HOME>/outbox/events.jsonl. Any other value is a no-op.
AGENTS_FLEET_TRANSPORT_BOUNCEoff1 lets the Copilot provider restart (bounce) a dead CLI transport before creating/resuming sessions.

Trust & security ​

VariableDefaultDescription
AGENTS_FLEET_MCP_TRUST_PROJECToffMirror of --trust-project-mcp (1 loads project MCP sources).
AGENTS_FLEET_MCP_REGISTRY_WAIT_MS120000Startup wait budget while the Copilot MCP registry allowlist endpoint returns 503; boot proceeds (fail-open) when it expires. 0 = no wait; an unparseable value is also treated as 0. Only applies when MCP servers are configured and a registry token plus GitHub owner/repo resolve.
AGENTS_FLEET_MCP_REGISTRY_GATEon0 disables the startup MCP registry probe/gate and the in-session MCP health monitor. The gate only runs when MCP servers are configured and a registry token plus GitHub owner/repo resolve.
AGENTS_FLEET_NPM_REGISTRY—Registry URL injected into spawned worker sessions as npm_config_registry (e.g. a proxy). Never applied to the coordinator or parent process.
AGENTS_FLEET_NPM_PREFER_OFFLINEoffTruthy (1/true/yes/on) injects npm_config_prefer_offline=true into worker sessions.
AGENTS_FLEET_NPM_CACHE—Shared npm cache directory injected into worker sessions as npm_config_cache.
AGENTS_FLEET_TRUST_PROJECT_WORKFLOWSon0 disables project-tier workflow command synthesis; workflow loading is unaffected.
AGENTS_FLEET_TRUST_PROJECT_GATESoff1 loads project-tier validation gates (PR-6).
AGENTS_FLEET_TRUST_PROJECT_INTAKEoff1 loads project-tier intake adapters (PR-7).
AGENTS_FLEET_TRUST_PROJECT_SKILLSoff1 loads project-tier roles/skills/crews; 0 explicitly skips them (#487).
AGENTS_FLEET_TRUST_TEAMoff1 mirrors --trust-team for first-use TOFU confirmation or explicit re-trust of a changed team meta-repo URL.
AGENTS_FLEET_TEAMoff1 (strict) mirrors --team: enable the shared meta-repo team tier.
AGENTS_FLEET_TEAM_DIR—With the team tier on, use this already-local checkout as the team main tier; skips the team.toml sync and the TOFU gate.
AGENTS_FLEET_TEAM_MEMBER_DIR—Companion to AGENTS_FLEET_TEAM_DIR: local checkout for the members/<name> overlay tier.
AGENTS_FLEET_CYBERSEC_SKILLSoff1 (strict) mirrors --enable-cybersec-skills.
AGENTS_FLEET_COORD_ALLOW_INLINE_EDIToff1 (strict) gives the coordinator back its built-in file-mutation tools (Copilot and Claude providers). By default code changes must be delegated via spawn_worker.
AGENTS_FLEET_INBOX_TRUST_ALLoffMirror of --inbox-trust-all.
AGENTS_FLEET_YOLO_LEGACYoffRe-enable legacy full --yolo bypass semantics.

Watchdog & stall recovery ​

See the coordinator stall ladder (T1–T4) for the full design.

VariableDefaultDescription
AGENTS_FLEET_WATCHDOG_DISABLEDoff1 turns off ALL watchdog tiers (interval never starts).
AGENTS_FLEET_STALL_WARN_THRESHOLD_MS60000 (60 s)T1 warn threshold. Raise (e.g. 180000) to quiet benign "Coordinator appears stalled" warnings from long mid-stream thinking gaps (high-effort Opus on 1M context). The T2 auto-abort / T3 escalation thresholds are unaffected; note the T1.5 zombie probe starts counting from this threshold, so a higher value slightly delays that probe's start (its recovery still fires well before T2).
AGENTS_FLEET_STALL_WARN_DISABLEDoff1 suppresses the T1 warn (emit + channel notify + heartbeat) entirely while keeping T1.5/T2/T3 recovery.
AGENTS_FLEET_AUTO_ABORT_DISABLEDoff1 disables T2 auto-abort + T1.5 zombie probe; T1 warn still fires.
AGENTS_FLEET_AUTO_ABORT_THRESHOLD_MS2400000 (40 min)T2 auto-abort threshold for a wedged coordinator.
AGENTS_FLEET_FIRST_DELTA_TIMEOUT_MS600000 (10 min)Caps how long the watchdog tiers stay suppressed while a sent prompt waits for its first streaming delta, so a dead pre-stream connection is caught in minutes instead of at T2.
AGENTS_FLEET_HANG_THRESHOLD_MS14400000 (4 h)T4 SessionSendQueue hang-detector threshold (mirror of --hang-threshold-ms; 0 disables).
AGENTS_FLEET_STALL_HEARTBEAT_MSinternalHeartbeat interval for the stall watchdog.
AGENTS_FLEET_WAKE_ON_COMPLETIONon0 disables the CompletionWaker (auto-wake on terminal agent events).
AGENTS_FLEET_AUTOPILOT_ESCALATIONon0 disables autopilot-stuck channel notify + in-app chip.
AGENTS_FLEET_HEARTBEAT_BRIDGED_EXEMPTon0 restores the legacy heartbeat kill for bridged sub-coordinators.
AGENTS_FLEET_HEARTBEAT_BRIDGED_STALL_MS2700000 (45 min)Non-destructive bridged-stall detection threshold.
AGENTS_FLEET_HEARTBEAT_MAX_TOOL_RUNTIME_MS1800000 (30 min)Maximum age of an active worker tool before heartbeat recovery may proceed. Valid values are clamped to 1 min–24 h; invalid values fall back to config/default.
AGENTS_FLEET_LOOP_MAX_NOOPSinternalMax consecutive no-progress loop iterations before a loop self-stops.
AGENTS_FLEET_LEAK_DETECTOR_DISABLEDoff1 disables the resource-leak detector.
AGENTS_FLEET_IDLE_WITH_WORK_WATCHDOGonMode C IdleWithWorkWatchdog: wakes an idle coordinator that still has outstanding work (max 3 wakes per stagnation episode). 0/false/no/off disables; AGENTS_FLEET_WATCHDOG_DISABLED also turns it off.
AGENTS_FLEET_IDLE_WITH_WORK_RECOVERoffOpt in (1/true/yes/on) to the destructive escalation (session recovery) after wakes are exhausted. Keep off unless you need it.
AGENTS_FLEET_IDLE_WITH_WORK_THRESHOLD_MS900000 (15 min)Idle time with outstanding work before the first wake.
AGENTS_FLEET_COORD_INLINE_TOOL_CAPonoff (or 0) disables the per-call cap on the coordinator's inline shell / file-mutation built-ins. Never applies to in-process fleet tools.
AGENTS_FLEET_COORD_INLINE_TOOL_CAP_MS25000Duration cap for one inline coordinator built-in tool call; on breach the call is aborted and the coordinator is told to delegate via spawn_worker. 0 disables; garbage uses the default.
AGENTS_FLEET_COORD_QUEUED_ACKonoff disables the one-time "queued" acknowledgement shown when you send a prompt while the coordinator is busy.

Workflows & sub-coordinator bridge ​

VariableDefaultDescription
AGENTS_FLEET_WORKFLOW_SUBCOORD_BRIDGEon0 reverts bridged autopilots to the legacy LLM-driven workflow-runner path.
AGENTS_FLEET_WORKFLOW_WATCHDOG_DISABLEDoff1 disables the workflow-runner watchdog.
AGENTS_FLEET_WORKFLOW_WATCHDOG_THRESHOLD_MSper-workflowOverride the workflow-runner warn threshold.
AGENTS_FLEET_WORKFLOW_AUTO_ABORT_THRESHOLD_MSper-workflowOverride the workflow-runner auto-abort threshold.
AGENTS_FLEET_WORKFLOW_HANG_THRESHOLD_MSper-workflowOverride the workflow-runner hang threshold.
AGENTS_FLEET_WORKFLOW_COMPLETE_GRACE_MSinternalGrace period before a completed workflow is finalized.
AGENTS_FLEET_STAGE_GATE_REMINDER_MSinternalInterval for stage-gate reminder nudges.
AGENTS_FLEET_SUBGRAPH_MAX_DEPTH5Max nested-subgraph recursion depth for workflows.
AGENTS_FLEET_FOREACH_COMMANDoffEnable the experimental forEach stage command.
AGENTS_FLEET_LANGGRAPH_DISABLEDoff1 disables the LangGraph execution path.
AGENTS_FLEET_EVAL_SCHEDULER_DISABLEDoff1 disables the background evaluation scheduler.
AGENTS_FLEET_EXPERIMENT_SCHEDULER_DISABLEDoff1 (strict) disables the A/B experiment scheduler even when experiment.enabled and experiment.schedulerEnabled are set in config.
AGENTS_FLEET_STAGE_SPAWN_TIMEOUT_MS1800000 (30 min)Bridged per-stage spawn wait used when a workflow declares no phaseTimeoutMs (a workflow's own phaseTimeoutMs wins). Non-positive/invalid values use the default.
AGENTS_FLEET_HANDOFF_STRICToff1/true/yes (case-insensitive): malformed workflow handoff: entries throw INVALID_WORKFLOW_HANDOFF at load instead of being warned about and dropped.
AGENTS_FLEET_WEBHOOK_SECRET_<NAME>—HMAC secret for a webhook handoff target. <NAME> is the target's name: (or the URL hostname when omitted), uppercased, with non-alphanumerics replaced by _.

Planning & DoD ​

VariableDefaultDescription
AGENTS_FLEET_DOD_GATEwarnControls the self-healing DoD execute-gate: off (no gating), warn (auto-remediate then proceed), enforce (auto-remediate then hold if gap remains). See the Coordinator Planning guide.

Control plane & control socket ​

VariableDefaultDescription
AGENTS_FLEET_CONTROL_SOCKEToffMirror of --control-socket.
AGENTS_FLEET_CONTROL_PLANE_HOME—Home dir for the control-plane singleton state.
AGENTS_FLEET_CONTROL_PLANE_NO_REPLoff1 forces the control plane headless (no Ink REPL or line reader), regardless of stdin.
AGENTS_FLEET_CONTROL_PLANE_TELEGRAM_TOKEN—Telegram token for the control-plane front-end.
AGENTS_FLEET_CONTROL_PLANE_AUTO_APPROVEoff1 runs control-plane mutating tools WITHOUT a Telegram confirm prompt.
AGENTS_FLEET_CONTROL_PLANE_CONFIRM_TAPS1Number of taps the control-plane Telegram confirm prompt requires (positive integer).
AGENTS_FLEET_CONTROL_PLANE_CONFIRM_TTL_MSinternalTTL for a pending tap confirmation.
AGENTS_FLEET_DATA_PLANE_BINresolvedOverride the data-plane launcher binary.
AGENTS_FLEET_DATA_PLANE_ARGS_PREFIX—Argument prefix injected when spawning data-plane fleets.
AGENTS_FLEET_TELEGRAM_HUBon (with a CP token)Control-plane Telegram hub. Enabled whenever AGENTS_FLEET_CONTROL_PLANE_TELEGRAM_TOKEN is set; a bound group is not required. 0 is the killswitch (legacy control-plane bot behaviour).
AGENTS_FLEET_TELEGRAM_HUB_DISCOVERY_MS3000Hub registry poll interval (~/.fleet/sockets). Overrides hub.json discoveryIntervalMs.
AGENTS_FLEET_TELEGRAM_HUB_RATE_PER_MIN20Shared per-group send budget (all topics + General). Overrides hub.json groupRatePerMin.
AGENTS_FLEET_TELEGRAM_HUB_ATTACHoffFleet side: 1 mirrors --hub (fail-loud), 0 forces attach off (overrides telegramHub.attach). The control-plane supervisor sets 1 on the fleets it spawns while the hub is enabled.

Telegram hub file: <control-plane home>/hub.json ​

Optional, validated key by key (an invalid value falls back to the default with a warning). Precedence: env > hub.json > defaults. Persisted hub state (binding, trust decisions, topics, watermarks) lives in <control-plane home>/telegram-hub/state.json.

KeyDefaultDescription
enabledtruefalse disables the hub like AGENTS_FLEET_TELEGRAM_HUB=0.
exclude[]Globs matched against a fleet's cwd / name; matching fleets are ignored.
discoveryIntervalMs3000Registry poll interval.
groupRatePerMin20Shared per-group send budget.
coalesceMs2000Per-topic, per-class outbound coalescing window.
titleMinIntervalMs30000Per-topic floor between topic-title (status emoji) edits.
defaultVerbositydefaultdefault | verbose for new topics (/verbose on|off per topic).
maxReplyChars12000Reply cap before …(truncated, see terminal).
maxInboundAgeMs600000Mandatory (> 0): inbound prompts, /stop and Control commands older than this (e.g. typed while the hub was down) are rejected with a stale notice.
queueAgingMs60000Queued status/verbose items older than this are promoted one class.
detachAfterMs60000Unreachable link + dead pid ⇒ detach.
trustPromptTtlMs86400000An unanswered fleet approval prompt expires (re-prompted on the next sighting).
errorStickyMs600000How long a fleet error keeps the 🔴 status emoji.

There is deliberately no "trust all fleets" switch: every fleet is approved once by the operator, including children the control plane spawned itself.

Inbox ​

VariableDefaultDescription
AGENTS_FLEET_INBOX_POLL_MSinternal DEFAULT_POLL_MSInbox file-queue poll interval.
AGENTS_FLEET_INBOX_TRUST_ALLoffSee Trust & security above.

Restart, timeouts & misc ​

VariableDefaultDescription
AGENTS_FLEET_RESTART_DELAY_SECONDSinternalDelay before /restart relaunches the new window.
AGENTS_FLEET_RESTART_MAX_WAIT_SECONDSinternalMax wait for /restart handoff.
AGENTS_FLEET_SINGLE_SHOT_TIMEOUT_MSinternalTimeout for single-shot (-p/--prompt) runs.
AGENTS_FLEET_POST_QUERY_IDLE_MSinternalIdle window after a query completes before considering the turn done.
AGENTS_FLEET_POST_QUERY_TIMEOUT_MSinternalHard timeout for post-query settle.
AGENTS_FLEET_DELEGATION_NUDGEon0 disables the coordinator delegation nudge.
AGENTS_FLEET_DISABLE_CENTRAL_PROMPToffDiagnostic-only legacy killswitch. 1 disables the generated coordinator invariant core; it is not a supported extension or production setting. The mandatory worker core remains enabled.
AGENTS_FLEET_DISABLE_TIERED_LIMITERoff1 collapses worker + coordinator pools into a single maxWorkers limiter (pre-3a behavior).
AGENTS_FLEET_INVALIDATION_CHECKon unless NODE_ENV=productionState-store cache-invalidation contract check: 1 forces it on, 0 forces it off (e.g. benchmarks).

Forensics & telemetry ​

VariableDefaultDescription
AGENTS_FLEET_SESSION_TELEMETRYonFull-payload forensic event capture to ~/.fleet/sessions/<sessionId>.events.ndjson is enabled by default. Set to 0 (or false, case-insensitive) to opt out; any other value — including 1, true, or an unrecognized value — leaves capture on. Unredacted — see caution below. Prints a one-time startup security caution whenever capture is on.
AGENTS_FLEET_SESSION_TELEMETRY_MAX_MB50Maximum ledger file size in megabytes. Must be a positive number.
AGENTS_FLEET_SESSION_TELEMETRY_RETENTION_DAYS30Age window for the startup ledger reaper. Ledgers last modified more than this many days ago are deleted. 0 disables age-based reaping; an unparseable value falls back to 30.
AGENTS_FLEET_SESSION_TELEMETRY_MAX_TOTAL_MB2048Total on-disk budget across ALL ledgers. When exceeded, the reaper deletes oldest-first until the remainder fits. 0 disables budget-based reaping; an unparseable value falls back to 2048.
AGENTS_FLEET_FORENSIC_VIEWER_DESCRIPTOR~/.fleet/forensics/viewer-server.jsonOverride the path to the forensic replay service descriptor file (port, token, PID).
AGENTS_FLEET_FORENSIC_VIEWER_SWEEPonBest-effort sweep at normal startup that unlinks a viewer descriptor left behind by a crashed service (PID check, then authenticated /api/health + instanceId probe, 1s timeout). Makes no network call when no descriptor file exists. Set to 0 (or false, case-insensitive) to opt out; any other value — including a typo — leaves it on.

⚠️ Forensic capture is ON BY DEFAULT and writes secrets to disk in plaintext. Opt out with AGENTS_FLEET_SESSION_TELEMETRY=0. Capture applies zero redaction. The ledger records LLM prompts, LLM completions, tool arguments, tool results, permission/decision-dialog payloads, inter-agent messages, and token-usage snapshots — all verbatim. Any API key, bearer token, or credential passed as a tool argument is persisted in cleartext.

Ledgers are created with POSIX mode 0o600 in directories at 0o700, but NTFS does not enforce POSIX mode bits — on Windows the full conversation history is readable by any local user unless you apply ACLs to ~/.fleet/sessions/ (and ~/.fleet/forensics/) yourself.

Ledgers are not deleted at session end. They are reaped at the NEXT startup on two dimensions: an age window (AGENTS_FLEET_SESSION_TELEMETRY_RETENTION_DAYS, default 30 days) and a total on-disk budget across all ledgers (AGENTS_FLEET_SESSION_TELEMETRY_MAX_TOTAL_MB, default 2048 MB, trimmed oldest-first). The budget is the dimension that bounds the worst case: an age window alone cannot stop a burst of sessions that each saturate the 50 MB AGENTS_FLEET_SESSION_TELEMETRY_MAX_MB per-session cap. Set either to 0 to disable that dimension and take retention back yourself. See Forensic Session Viewer.

Debugging ​

VariableDefaultDescription
AGENTS_FLEET_DEBUGoffRaw SDK event firehose to the fleet log.
AGENTS_FLEET_DEBUG_STDERRoff1 (exactly), together with AGENTS_FLEET_DEBUG, mirrors the SDK event firehose to stderr; under Ink that stderr output is redirected to ~/.fleet/logs/ink-suppressed.log. With --provider claude, 1 also shows the expected, normally suppressed Permission deny rule … matches no known tool warnings (aliases the current SDK doesn't register). Unknown deny names always warn, and a load-bearing name (one the SDK really registers, e.g. Write, Edit, Bash, Task, NotebookEdit, TodoWrite, EnterWorktree) escalates loudly regardless.
AGENTS_FLEET_DEBUG_SDK_TOOLSoffVerbose SDK tool-call tracing.
AGENTS_FLEET_VERBOSEoffAny non-empty value (or DEBUG) logs unknown Claude SDK message types to stderr (redacted).
AGENTS_FLEET_VERBOSE_TOOL_ARGSoffLog per-tool-call arg key/size (mirror of --verbose).

Internal & test-only ​

These are read by non-test source but are build/test seams, not operator knobs. They are listed for completeness; do not rely on them.

VariablePurpose
AGENTS_FLEET_COMMITBuild metadata: commit SHA reported in runtime metadata (falls back to GITHUB_SHA, then package.json gitHead).
AGENTS_FLEET_TEST_OFFLINETest harness: 1 disables live provider integration tests and auth/health probes.
AGENTS_FLEET_CONTROL_PLANE_REPL_MARKERe2e harness: 1 makes the control-plane line reader print an idle marker line between turns.

Removed / never wired: AGENTS_FLEET_SEND_FSM (send state machine removed in #680), AGENTS_FLEET_CREW_V1, AGENTS_FLEET_CONTROL_SOCKET_PATH, and AGENTS_FLEET_OUTBOX_ENV (a source constant naming AGENTS_FLEET_OUTBOX, not a variable) were listed in earlier versions of this page but are not read by any agents-fleet code; setting them has no effect.

Note: Variables marked internal read a hard-coded default from source when unset; consult the cited module (src/fleet/, src/coordinator/, src/skills/) for the exact numeric value, which may change between releases.