Skip to content

Autopilot

Autopilot is BMO’s headless long-lived runtime. The inspect family answers three operator questions without mutating the process: is the runtime up, which pillars are healthy, and what were the most recent bounded lifecycle events?

Autopilot is the daemon-owned HTTP + scheduler runtime. It is adjacent to, but not the same thing as, local attached-TUI reuse through bmo --daemon=auto or --daemon=require; those flags attach an interactive client to a compatible loopback daemon instead of starting or stopping the headless runtime.

SurfaceCommand
CLIbmo service status autopilot --source config
TUI/autopilot_status or sidebar Autopilot
HTTP (`bmo service start httpautopilot`)
Native agentautopilot_status
MCPbmo_autopilot_status

/autopilot is the neighboring control surface for starting or stopping the headless runtime. It is distinct from /autopilot_status, which is read-only.

Autopilot status readout
Live BMO TUI: the /autopilot_status readout reports the foundation state, the four readiness pillars (manifest, scheduler, server, auth), PID files, the resolved manifest, and the bounded decision ring — the operator surface for diagnosing why the headless autopilot runtime is or isn't running.
  • Posture state: up, starting, degraded, down, or unknown
  • Pillars: manifest, scheduler, server, and auth
  • Local process markers: autopilot.pid, scheduler.pid, stale-PID detection, and the manifest path
  • Recent lifecycle ring: bounded autopilot.fired events such as startup_ready, partial_startup_unwound, scheduler_drain_timeout, and posture_degraded

The snapshot is metadata-only. It uses hashed data-directory identifiers for cross-surface correlation and does not expose auth tokens or raw bind-address payloads.

Autopilot lifecycle emits through the bounded autopilot.fired lane. To inspect the raw event stream:

Terminal window
bmo logs --tail 1000 | jq -c 'select(.msg=="autopilot.fired")'

For failure and degraded-only arms:

Terminal window
bmo logs --tail 1000 | jq -c 'select(.msg=="autopilot.fired" and (.action=="startup_failed" or .action=="pid_conflict" or .action=="auth_mode_invalid" or .action=="partition_invalid" or .action=="scheduler_start_failed" or .action=="server_bind_failed" or .action=="partial_startup_unwound" or .action=="scheduler_drain_timeout" or .action=="executable_drift_grace" or .action=="executable_drift_cancel" or .action=="posture_degraded"))'

Maintainer detail: Autopilot mode and Agent tracing recipes.