Skip to content

Full Auto

Lane Holloway edited this page Oct 22, 2026 · 1 revision

Full auto

Full auto is the hands-off setting. On a repo in full auto, every trigger runs and Claude acts on its own judgment, the way a careful maintainer would:

  • reviews pull requests, and approves them or requests changes
  • merges pull requests when checks pass, there are no conflicts, and it's confident the change is sound (otherwise it leaves a review or comment)
  • pushes fixes, comments, labels, and closes issues
  • never asks you a question; it decides and explains its decisions in reviews and comments

Auto rules still apply: a matching rule picks the prompt, model and effort, and a key whose rules all reject an item (a draft, say) still keeps it from running. Triggers with no rule run with the defaults. max_auto_runs and the per-session budget still cap what it can spend.

What only a human may do

Full auto refuses to:

  • delete or transfer the repository
  • force-push or delete the default branch
  • delete or move tags, or delete releases
  • rewrite history (git filter-branch, git filter-repo, BFG)
  • change rulesets or branch protection

Everything else is Claude's call, including force-pushing a PR branch after a rebase and deleting a branch once its PR is merged.

How that's enforced

Three layers, because no single one can catch everything:

  1. Fast Lane checks every command. Full-auto sessions run in Claude Code's manual permission mode with no shell commands pre-approved, whatever your Settings say, so every command Claude wants to run comes to Fast Lane first. It reads the command the way a shell would, including quotes, && chains, $(…), bash -c "…", and wrappers such as sudo, env and xargs, and refuses anything on the list above. Claude is told why and carries on with something else. You hear the bell, the status line says what was refused, and the refusal stays in the session's transcript.
  2. GitHub enforces it. When you turn on full auto for a repo, Fast Lane adds two rulesets to it: Fast Lane: protect the default branch (no force-pushes, no deletion) and Fast Lane: protect tags (no deletion, no moving). GitHub applies them to everyone, so they also stop anything the first layer can't see, such as a script Claude writes and then runs. They're yours: change or remove them in the repo's Settings → Rules. GitHub only enforces rulesets on private repos with a paid plan; if Fast Lane can't add them, it says so, and the first layer still applies.
  3. Your token can't delete repos. gh auth login doesn't grant the delete_repo scope. If your login has it while anything runs in full auto, the Settings tab warns you and gives the command to drop it.

Fast Lane's check errs toward refusing: a commit message that spells out a destructive command is refused too, and Claude rewords it.

Turning it on

  • For a repo: a on the Repos tab, or on the Rules tab with the repo selected, cycles off → on → full auto. Full auto asks first, then adds the rulesets.
  • For the inbox: i on the Rules tab, or Inbox on the Settings tab, cycles auto-run → full auto → list only → off. In full auto, review requests, mentions and assignments on any repo run hands-off. Rulesets are only added to repos you turn full auto on for.

While anything runs in full auto, the header shows ⚡ full auto and what's in it. Full-auto sessions say so in the start dialog and the session header, and the Repos tab marks the repo FULL.

In config.json, that's "full_auto": true on a repo, or in "inbox".

Good to know

  • Watching a repo never starts it in full auto; you choose it per repo.
  • Questions Claude would have asked you get answered with "decide for yourself", and it does.
  • A session started in full auto stays full auto when you reply to it, and a trigger that resumes it uses the repo's current setting.

Clone this wiki locally