Skip to content
Menu

How it works

The qaren CLI

Every qaren verb, its arguments and its flags.

For detailed command contracts and conditional options, see the CLI README.

Every verb except watch, actions, plans, update and doctor prints one qaren/1 JSON receipt on stdout and its narration on stderr. A usage error exits 2 with help on stderr and nothing on stdout. qaren --help prints the usage.

qaren check

sh
qaren check --plan-file <plan.md> [options]

Walks the plan on a borrowed simulator or emulator against the working tree. The receipt names its evidence paths. See Check a plan for available options.

qaren pr

sh
qaren pr <number|url> --plan-file <plan.md> [options]

Walks the plan on a detached worktree at the pull request's head. Takes the same flags as check except the check-only inspection controls. See Test a pull request for recording support.

qaren publish

sh
qaren publish <run-id> [--json]

Posts the reviewer comment for a finished qaren pr run and saves its discovered blocks to the pull request branch. See Test a pull request.

qaren watch

sh
qaren watch [<run-id> | --latest] [--plain] [--json]

Follows a check or pr run. See Watch a run.

qaren actions

sh
qaren actions list [--json]
qaren actions show <slug>

Lists the saved blocks in the current directory's .qaren/actions/, or prints one. See Saved blocks.

qaren plans

sh
qaren plans [--json]

Lists the saved plans in the current directory's .qaren/plans/ with their blocks and the platforms they are flagged broken on. See Saved plans.

qaren cleanup

sh
qaren cleanup <run-id> [--json]
qaren cleanup <run-id> [--json] --remove-app --confirm-remove-app <run-id>/<remote-serial>/<app-id>

Releases resources retained for inspection or left behind by incomplete teardown, then releases its device lease. Use it when a receipt's next_action names it. Cleanup only touches resources the run recorded as its own; anything it cannot prove is listed and left alone. See the iOS admission and cleanup contract for inspection holds and their release.

--remove-app also uninstalls the app, and its data, that the run installed on its leased Android emulator. It needs --confirm-remove-app naming exactly this run, its recorded emulator serial and its app ID. The two flags go together and only on cleanup.

qaren update

sh
qaren update

Run from the QaReN checkout root. Fast-forwards the checkout with git pull --ff-only from its tracked upstream, then rebuilds and reinstalls qaren through the source installer. It refuses outside a checkout, with local changes, or when the pull fails, leaving your working tree, branch and installed qaren unchanged. Prints one line saying whether the build is already current, updated or newly installed.

qaren doctor

sh
qaren doctor [options]

Diagnoses setup problems and rn-dev-agent 1.x leftovers. See Doctor for the authoritative options, checks, manual fixes, output contract and exit codes, including the privacy contract's exception for configured iOS runtime and Android AVD names.

qaren --version

sh
qaren --version

Prints qaren and its version.

Preparation verbs

These verbs prepare a device and the app from a scenario file instead of walking a plan. A scenario is a strictly validated YAML file with schema: qaren/1.

qaren prepare

sh
qaren prepare <scenario.yaml> [--new | --device <udid> [--boot-device]] [--json] [--dry-run]

Validates the scenario and the checked-out candidate, allocates the device, prepares the app and owned Metro, and emits a ready receipt with the run's device and Metro endpoint. --dry-run validates and prints the planned commands without allocating anything. For default iOS pool reuse, ios.max_devices, temporary fallbacks and --new, see the authoritative iOS simulator pool contract. For --device selection, boot permission and cleanup, see the authoritative existing iOS simulator contract. See CLI-owned iOS build routes for iOS startup ordering and failure cleanup.

qaren prewarm

sh
qaren prewarm <scenario.yaml> [--json]

Installs the app's dependencies ahead of time for a scenario with deps.policy: require-prewarm. See the authoritative dependency prewarming contract for registry access restrictions, prewarm records and offline preparation.

qaren status

sh
qaren status <run-id> [--json]

Reads a prepared run's record and reports whether it is still ready.

qaren complete

sh
qaren complete <run-id> <build-log> [--json]

Only for a scenario with build.owner: qaren, where prepare stops after allocating the device and another session builds the app. complete binds that session's build log to the run and refuses missing, stale, ambiguous or mismatched evidence.

Exit codes

ExitMeaning
0pass, published, ready, cleaned, planned, prewarmed or working
1fail or failed
2Usage error
3unknown
4refused

qaren watch has its own exit codes.

Edit this page on GitHub