autopilot

Installation
SKILL.md

Autopilot

Run approved pipeline work until it is complete or reaches a genuine human gate. Keep wayfinder, to-spec, to-tickets, and implement authoritative; this skill adds a fresh-process loop around them.

Start the loop

  1. Require a reference to a wayfinder map, a spec, or a ticket. Run from the target Git repository.
  2. Select the current harness as the provider: claude in Claude Code, codex in Codex, grok in Grok. When running directly from a terminal, require the user to choose.
  3. Resolve this skill's installed directory, then run the bundled script by absolute path while keeping the target repository as the working directory:
bash <autopilot-skill-dir>/scripts/autopilot.sh --provider <claude|codex|grok> --root <ref>

Pass --repo <path> when the target is not the current repository, --max-iterations <n> to replace the default limit of 50, and --log-file <path> to mirror the per-run log to another path.

Run the script as a background task: one iteration is a full build lifecycle and routinely outlasts a foreground shell-command timeout. Its exit is the completion signal (for a --tmux run, one background --wait). Immediately report the run ID, worker session model and effort, log path, and printed observer commands. Then report worker milestones and five-minute heartbeats as they arrive; leave routine tool events in the log. Stream them by running --follow 2>&1 | grep --line-buffered -E 'Autopilot: (iteration |selected |next |worker(:| alive)|ticket )|quiet threshold|gate|failed|invalid|interrupted|stopped' under Monitor where available (re-arm when it expires; every --follow line is <timestamp> Autopilot: <message>); otherwise read --status and the log tail each time the turn resumes, and when the run exits. On exit 2 (needs input), 3 (blocked), 4, or 5 (failure), ping the user (PushNotification where available, otherwise in the chat report) with the status and reason.

Foreground run mode prints progress to stderr and one terminal result object to stdout; completion is exit code 0 with status: complete. Observer modes keep their operational messages on stderr: --status prints one state object, --history prints an array of retained states, --tmux prints one launch object, and --follow streams the human-readable run log to stdout, and --wait blocks until the run leaves running, prints the final state object, and exits with the run's terminal code (below). To wait on a run you did not start in this shell, prefer one --wait call with run_in_background over any sleep or /loop polling of --status. With no run for the root, --status prints {"status":"none",…} and exits 1.

Installs
29
GitHub Stars
4
First Seen
Aug 2, 2026