Overnight Autopilot

A queue of tasks that runs unattended in worktrees — with your checks, up to five attempts, a backup agent, strict rules for “ready” and a frozen report in the morning.

The autopilot turns idle hours into reviewed work. You fill a queue in the evening; PaneScale works through it, one task at a time, each in its own worktree from the same starting point. Your working copy stays untouched. In the morning you review diffs and decide what to keep — nothing is merged or pushed before you click.

Open it from More → Overnight Autopilot, from the tasks board, with the command palette, or by saying “open autopilot”. The header says it plainly: Local · working tree untouched.

1. Choose the project

Pick the repository the night works in. PaneScale checks it right away and tells you where each task will start — “from the last commit (a1b2c3d on main)”, or “from the current state including uncommitted changes” if you turned that on. A folder without Git can’t be used: the autopilot needs worktrees.

2. Fill the queue

Tasks come from three places:

SourceHow
Your ownTask — a title and a description of what should happen and how to tell it is done
The boardFrom the board — open cards of this project; cards marked Tonight are preselected
GitHub issuesGitHub issues — open issues loaded with your local gh CLI, optionally filtered by label

Tasks run in the order of the list: move them up or down with the arrows, edit them with the pencil, remove them with ×. The queue is saved, so you can prepare it during the day.

3. Set the checks

Checks decide whether a task is ready. PaneScale proposes them from your package.json — build, tests and type check as required, lint as optional. Edit the command, switch between Required and Optional, Add check, or Reset to detected. At least one required check is needed to start. See Checks & integrity.

4. Choose the agents

SettingMeaning
Lead agentClaude Code or Codex, with an optional model (empty = the CLI’s default)
Backup agentAnother agent that takes over — or No handoff

Backup agent

With a backup, the lead works the first half of the attempts and the backup the rest — for example with four attempts: two for the lead, two for the backup. The backup continues in the same worktree with the feedback from the last attempt: failing checks, the diff so far and what the lead reported. Without a backup, every attempt uses the same agent, each with the feedback of the one before.

What the agent gets

What the agent gets shows the exact prompt of the first attempt for the first task: that it works unattended in a separate copy of the repository and nobody will answer questions until morning, the task, the checks it must pass, and the rules. Retries add the failure output and stricter rules — fix the real cause, never special-case tests, keep the useful changes already in the worktree.

5. Set the limits

Limits apply per task:

SettingValues
Attempts per task1 to 5; every retry gets the last failure as feedback
Time per attempt15 minutes, 30 minutes, 1 hour or 2 hours
Token limit per taskStops the task when its measured usage exceeds the limit (where the CLI reports usage)
Max. changed filesAn attempt that changes more files counts as failed

A loop guard watches the attempts: if the same failure happens twice on the same state, further attempts wouldn’t change anything, and the task stops with that reason. Token Guardian rules apply as well.

6. Schedule

OptionMeaning
Start now / At a timeStart immediately, or at a time you pick
No new attempts afterA cut-off time; tasks not started by then are skipped
Keep computer awakePrevents standby while the night runs; the display may still turn off
Include uncommitted changesWorktrees start from your current state instead of the last commit
Prepare draft PRReady tasks get a title and description for a pull request — published only if you click in the morning

PaneScale has to be running at the scheduled time. If it was closed or the computer was asleep, the night does not start on its own later: it shows Start missed and waits for your click.

7. Preflight

Before the night starts — or whenever you click Check now — a preflight checks that it can actually run. Each row is ok, warn or blocked; anything blocked stops the night before it wastes a minute.

CheckBlocks the night when
QueueIt is empty
Repository & HEADThe folder isn’t a Git repository or HEAD can’t be resolved
Git identityuser.name or user.email is missing, so commits would fail
Free disk spaceLess than 2 GB is free
Check profileNo required check is configured — “ready” must be proven
AgentsNone of the selected agents is installed; warns when one isn’t on the PATH
gh CLIWarns when missing — issues and draft PRs won’t be available
Long pathsWarns when Windows long paths are off, since deep worktree paths can hit the 260-character limit

Click Start night or Schedule night.

During the night

The night goes through its phases — Scheduled, Preflight, Baseline, Running, then Done, Stopped or Failed. First the checks run once on the unchanged starting point: the baseline. Then each task:

  1. gets a worktree under panescale/autopilot/… and your dependencies linked in,
  2. runs attempts until it is ready, runs out of attempts, hits a limit or the cut-off,
  3. runs the checks after every attempt — a failing required check gets a second run — and the integrity scan.

Each task card shows what the agent is doing right now and, under Attempts, checks and log, every attempt with its agent, verdict, reason, tokens, check results and the agent’s summary. Stop night ends running agents; finished tasks and their worktrees are kept. If PaneScale is closed during a night, the night is marked as interrupted when it starts again — finished tasks stay.

When a task counts as ready

“Ready” is strict. A task is ready only when:

  • all required checks pass,
  • there is no regression compared with the baseline,
  • the integrity scan found no warning — no deleted tests, no loosened configs,
  • and the agent ended its attempt cleanly.

Every task ends with one verdict:

VerdictMeaning
ReadyAll of the above
Needs reviewChecks passed, but there are integrity warnings or the agent didn’t end cleanly — you decide
FailedRequired checks failed or a regression was found
No changeThe agent changed nothing
Not solvableThe agent judged the task impossible and changed nothing
Limit reachedTime, tokens, changed files or the loop guard stopped it
Stopped / AbortedYou stopped the night, or the agent aborted

Morning report

When the queue finishes, PaneScale freezes a report: one sentence — “4 of 6 tasks done” — the counts of ready tasks, tasks to review and tokens with attempts and cost, and per task every attempt with its checks. Every number comes from recorded runs. The report is saved as JSON; Report folder opens it, Save report stores a copy where you want.

For each task:

ActionWhat it does
DiffThe full change of the task
Adopt into working treeApplies the change as a patch to your working copy, without a commit — with a checkpoint first
Undo adoptionRestores your working copy exactly; files you edited since are kept
Draft PRPublishes a ready task as a draft pull request — see below
RequeuePuts it back into the queue for another night
DiscardRemoves the task’s worktree and branch

Remove leftover worktrees cleans up all worktrees and branches of the night; changes you adopted stay in your working copy.

Draft pull requests

Publishing is never automatic, and it is the only thing the autopilot does that reaches the network. Draft PR shows exactly what will be pushed: the branch, the base, title and description. Approve and publish issues a signed one-time approval, pushes the branch without force and opens a draft pull request with your gh sign-in. Nothing is ever merged.

The autopilot only pushes its own branches — panescale/autopilot/… and panescale/grid/… — and never your default branch.

History

Nights lists previous runs with their summary, phase, project and date. Open one to see its report again; New queue goes back to planning.

Something unclear or missing? Tell us — we improve these pages every week.