These docs track main. Latest release: v1.2.0.

antigravity-booster
Getting Started

Verify your setup

agb doctor: every check, what it means, and the exact fix text

agb doctor checks your environment and prints one row per check:

<name>                    | PASS   | <detail>                       | <fix>

The level is PASS, WARN or FAIL. Doctor exits 1 if any check is FAIL, or if a check itself throws (it then prints Error check failed: <reason> in place of a table row), and 0 otherwise. Warnings never change the exit code (lib/doctor.mjs).

agb doctor

Checks

The checks run in this order (runDoctor). Fix text is quoted verbatim from lib/doctor.mjs at v1.0.0.

NameLevelsFix textSource
Node.jspass / failUpgrade Node.js to v22.19.0 or newer.L20-L24
agy CLIpass / failToo old: Upgrade agy to >= 1.2.6 to support --output-format stream-json. Unparseable version: Ensure agy outputs standard SemVer version string. Missing: Install Google Antigravity CLI and ensure it is on PATH.C1, L35-L54
agy Authpass / failRun `agy login` to authenticate.L71-L75
Model catalogpass / warnDrift: Update MODELS in lib/models.mjs to match `agy models`. Listing failed: Fix `agy models` (see agy CLI/agy Auth rows), then re-run doctor. Empty listing: Run `agy models`; if it prints models, report the output format change. Never fails the run.lib/doctor.mjs
adlc-antigravity pluginpass / warn / failSee plugin statesL151-L166
adlc CLIpass / warn / failSee adlc CLIL315-L354
Sandboxpass / failSee SandboxL1086-L1146
Brain Dirpass / warnDefault (~/.gemini/antigravity-cli/brain, ~/.gemini/antigravity/brain, ~/.gemini/jetski/brain): Run an agy session to initialize the brain directory. Custom (AGB_BRAIN_DIR): Create directory <custom> or unset AGB_BRAIN_DIR.L1150-L1154
Ticket Storepass / warn / failSee Ticket storeL1157-L1194
Policy guard self-testpass / failRun `agb bootstrap --force-reinstall` and check hooks.log.L251
agb installpass / warnprefer ~/.local/bin/agb (npm is a secondary channel)L281-L282
Hook killswitchpass / warnUnset AGB_HOOK_DISABLE; the rails guard is bypassed while it is set.L291-L292
Probe pluginspass / warnRun `agy plugin uninstall <first probe>` for each probe plugin.L300-L301

Node version

agb and agb doctor require Node.js >= 22.19.0 (engines.node, see Installation).

adlc-antigravity plugin

Doctor evaluates the staged companion plugin under ~/.gemini/config/plugins/adlc-antigravity. A failing state reports one of these values as its detail (L151-L157):

DetailFix text
not-installedRun `agb bootstrap` to install the bundled plugin.
corrupt-manifestRun `agb bootstrap --force-reinstall`.
outdated-pluginRun `agb bootstrap` to upgrade to the bundled plugin.
corrupt-treeRun `agb bootstrap` to reinstall the pristine plugin.
incompatible-contractRun `agb bootstrap --force-reinstall` to install the bundled plugin.

When the plugin does not declare its contract (a "tolerant" state), doctor warns with Upgrade the plugin to one that declares adlcContract 1. (L166).

adlc CLI

Doctor looks for @adlc/cli (node_modules/.bin/adlc in the current directory, or the resolved binary) and reports one of the following (C31):

SituationLevelFix text
Package manifest authentication failedfailRepair or reinstall @adlc/cli (>= <MIN_ADLC_CLI_VERSION>).
Not found (detail not found (will be installed by bootstrap))warnRun `npm install @adlc/cli` or `npx agb bootstrap`.
Version below the minimumfailUpgrade @adlc/cli to >= <MIN_ADLC_CLI_VERSION>.
Execution failedfailEnsure @adlc/cli executable at <bin> has execute permissions and a valid Node interpreter.
Binary resolved but could not be probed, with no path to reportwarnadlc CLI is optional but recommended. Install it if you want local ADLC gate execution.

Install @adlc/cli locally (npm install @adlc/cli), not globally. Contributors to this repository get it through npm ci.

Sandbox

Gates run inside a kernel sandbox, and doctor checks the one for your platform (checkSandbox). AGB_SANDBOX_GATES=0 bypasses it and reports bypassed via env.

PlatformDetailLevelFix text
macOSsandbox-exec availablepass—
macOSsandbox-exec missing or unusablefailmacOS sandbox-exec is missing or unusable. Set AGB_SANDBOX_GATES=0 to bypass.
Linuxbwrap availablepass—
Linux (bwrap_unusable)bwrap unusable (namespace probe failed)failLinux bubblewrap (bwrap) is installed but unusable (user namespaces may be disabled or restricted in container). Enable unprivileged user namespaces or set AGB_SANDBOX_GATES=0 to bypass.
Linux (bwrap_missing)bwrap missingfailLinux bubblewrap (bwrap) is missing. apt install bubblewrap or set AGB_SANDBOX_GATES=0 to bypass.
Windowsbypassed via verified HMAC attestationpass—
Windowsattestation rejected: <reason>failRepair or update sandboxBypassAttestation in .adlc/config.json.
Windowsmalformed config: <error>failRepair .adlc/config.json.
Windows (without an attestation)Active Windows sandbox probe verified (EACCES/WSAEACCES/nonce)pass—
Windows (without an attestation)Active Windows sandbox probe failed (<reason>)failConfigure a verified sandboxBypassAttestation in .adlc/config.json or ensure the Windows sandbox driver is active.
Otherunsupported platform: <platform>failSandbox is only supported on macOS, Linux, and Windows. Set AGB_SANDBOX_GATES=0 to bypass.

On Linux, the probe classifies a failure by kind (lib/doctor.mjs):

  • bwrap_missing: bwrap is not installed. Fallback mechanisms (systemd-run, unshare) are rejected because they provide insufficient filesystem isolation.
  • bwrap_unusable: bwrap is installed but its usability probe failed. User namespaces are usually disabled (for example sysctl kernel.unprivileged_userns_clone=0) or restricted inside a container.

The other probe kinds are sandbox_exec_unavailable (macOS), powershell_missing (Windows), unsupported_platform and mock_unavailable (tests only).

AGB_SANDBOX_GATES=0 turns off sandboxing of gate commands entirely. Use it only on machines where you accept running gate commands unsandboxed. See Gates and sandboxing.

Ticket store

DetailLevelFix text
legacy single-file store (retired)failagb no longer supports .adlc/tickets.json. Run `adlc ticket store migrate` and commit the result.
both legacy and directory storesfailThe legacy .adlc/tickets.json is retired and the plugin fails closed when both exist. Run `adlc ticket store migrate`, then remove .adlc/tickets.json.
orphaned directory store (no .store.json)warnLikely an interrupted projection — the next `agb plan` recovers it, or run `adlc ticket doctor`.
none (created on first projection)pass—
store corruption: ...failRun `adlc ticket doctor` to diagnose and repair ticket store issues.

A legacy file is detected by detectTicketStoreBackend, which returns 'legacy' for a lone .adlc/tickets.json (a symlink counts, even a dangling one) and 'both' when .adlc/tickets/ and the legacy file both exist (lib/adlc-bridge.mjs). agb plan and agb run throw LEGACY_TICKET_STORE for either state before changing anything, so resolve it before running anything.

Next steps

On this page