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
| Tier | What the bot may do on its own |
|---|---|
| Observe | Plans, reads and reports. Every change asks you first. |
| Sandbox | Changes 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. |
| Act | Works 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.
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.
- Kind of work. Every task on the Mission board has one,
generalunless 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.
The scorecard also says what the bot still needs for the next tier:
| Step up | What the last 30 days must show |
|---|---|
| Observe → Sandbox | At least 5 verified tasks of that kind, and no denied call in the last 5. |
| Sandbox → Act | At 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.
- 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:
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.
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.




