Docs

Flight School: give each bot only the freedom it has earned

A new bot doesn't have to get the same freedom as one you've worked with for months. Flight School lets you set how much each bot may do on its own, per kind of work, and take it back in one click.

The three tiers

TierWhat the bot may do on its own
ObservePlans, reads and reports. Every change asks you first.
SandboxChanges files in its task folder when kwant has a checkpoint to undo them. Commands that can change things ask you; reading its own folder doesn't.
ActWorks as it does today, with its usual approvals.

A tier only ever adds approval cards. It never lets a bot skip one, even with approvals off.

On from the start

Since 0.6.5, Flight School is on from the start, also on installs that never changed it, and every bot starts at Act, so nothing new asks. It keeps a scorecard for each bot, so you can lower a bot's tier whenever you want and it can earn it back. Turn it off, or pick where new bots start, in Settings → All spaces → Flight School: limit what each bot may do on its own. A choice you saved is kept. While it is off, nothing on screen changes and no tier applies, whatever you saved.

Settings with the Flight School switch on. It says bots you already have stay at Act, and offers the tier that bots you add from now on start at, here set to Sandbox.
Bots you already have stay at Act. New bots start at Act unless you pick a lower tier here.

Bots you already have stay at Act until you lower one.

A bot's tiers

Open a bot's settings to see its tier for all work, and per kind of work, such as release-notes or deploys. Each row says where its tier comes from, and the recent changes are listed underneath.

QA's Flight School settings: Sandbox for all work, Observe for deploys (already the lowest tier, so no Revoke), Act for release notes and Sandbox for releases, each with where it comes from and a Revoke button where one applies, plus a field to add another kind of work and the recent tier changes.
Set a tier for all work, then make exceptions per kind of work.
  • Kind of work. Every task on the Mission board has one, general unless you or the planning bot set another. You can change it from the task's panel.
  • Revoke. One click moves a tier one step down. It applies from the bot's next action; an action already allowed and running finishes.
  • Only you can change a tier. A bot can see its own and ask for a step up, but can't raise it.

Scorecards: freedom a bot has earned

New in 0.6. Each bot has a scorecard for each kind of work, built from the board's own records of the last 30 days: how many of its tasks were verified, how many on the first try, and how many failed a check or had a call you denied. Open it with Scorecard next to a kind of work in the bot's settings.

QA's settings, Flight School tier section: Sandbox for all work with a Revoke to Observe button, a request from QA for Act on release notes with Grant Act and Decline buttons, and rows for General and Release notes, each with a Scorecard link.
A request shows in the bot's settings too, next to the tiers it would change.

The scorecard also says what the bot still needs for the next tier:

Step upWhat the last 30 days must show
Observe → SandboxAt least 5 verified tasks of that kind, and no denied call in the last 5.
Sandbox → ActAt least 10 verified, at least 70% of them on the first try, none of them a false success, and no denied call in the last 10.

When a bot asks for more

A bot that qualifies can ask you for the next tier, with a reason. The request shows on the Mission board under Needs you and in the bot's settings, with the scorecard it had when it asked.

The Mission board's Needs you section: QA asks for Act on release notes, Sandbox to Act. Its reason says 12 release-note drafts were verified in the last month, 10 on the first try. The scorecard shows 12 of 13 settled verified, 10 of 12 on the first try, none denied in its last 10, and "Qualifies to ask for Act. Only you can grant it." Below are Grant Act and Decline buttons.
The request carries its scorecard. Payments still ask, whatever the tier.
  • Grant moves the bot up one tier for that kind of work. Decline takes an optional reason, and the bot can't ask for the same step again for 7 days.
  • Only you decide. kwant refuses a bot that tries to grant itself, and refuses a request from a bot that doesn't qualify yet, saying what's missing.
  • If you answer in two tabs at once, the first answer counts and the other tab says someone got there first.
  • A request that stops qualifying while it waits, for example after a denied call, is closed and says why.
  • Revoking stays one click, and applies from the bot's next action.

What Sandbox asks about

At Sandbox, a bot works on files in its task folder without asking, because kwant took a checkpoint first and you can restore it. Anything that can change something outside that folder asks first, and the card says why:

A Sandbox bot asks before running a build. You allow it, and the task ends Verified.

Reading and searching files never asks. On Claude, read-only commands in the bot's own folder, such as ls or cat, run without asking; any other command asks below Act. A bot that works through an API key runs commands through kwant's own shell tool, and below Act every command it runs asks, even read-only ones. At Observe, file changes ask too, even inside the task folder.

Tiers apply only while a bot works on a task. Ordinary chat follows your normal approval rules.

Payments always ask

Whatever the tier, and even with approvals off, anything that looks like paying shows a card first. The card says why it looks like a payment, and offers only Allow Once and Deny: allowing a payment covers that one payment, so there's no "Always" button.

An approval card for a command that posts a payment to Stripe. It says "This looks like a payment" and why, and has only Deny and Allow Once buttons.
A payment card has no Always button.

kwant recognises payment apps and their actions (Stripe, PayPal, Square, Wise, Coinbase and others), commands that post to payment services or send crypto, and, in its browser, pay buttons, clicks on checkout pages and typed card numbers. It can't catch everything, such as a plain "Continue" on an unusual checkout page or a card a site already saved.

When you choose Don't ask for a space or a bot, kwant first says plainly what bots can then do without asking, such as send messages, delete files, publish and sign in, and that payments still ask. Nothing changes until you press Turn off approvals. See Approvals.

Codex and Custom API accounts

kwant can hold Claude and Grok bots to their tier, because it sees each of their tool calls. Codex runs its own shell and file tools, and Custom API accounts run outside kwant's gateway, so kwant can't see every call. So a task for one of those bots below Act doesn't run: it waits under Needs you and says what to do. Raise the bot to Act for that kind of work, or give the task to a Claude or Grok bot.

Turning it off

Switch Flight School off in Settings. Every bot goes back to its usual approvals at once. The tiers you set are kept, so they apply again if you switch it back on. Payments still always ask.