CLI reference
Most commands act on the active project, and most require you to be logged in — the exceptions are login, logout, version, setup, serve and uninstall.
Global
| Command | What it does |
|---|---|
qaclan --help | List the command groups. Works on any subcommand too. |
qaclan --version | Print the version. |
qaclan version | The same, as its own command. |
Auth
| Command | What it does |
|---|---|
qaclan login | Prompt for your auth key and validate it against the server. |
qaclan login --key <auth_key> | Non-interactive login, for scripts and unattended hosts. |
qaclan login --key <auth_key> --server <url> | Point the agent at a different server. |
qaclan logout | Remove the stored key. Local data is untouched. |
Setup and runtime
| Command | What it does |
|---|---|
qaclan setup | Full bootstrap: move the binary, add it to PATH, install the runtime and Chromium. |
qaclan setup --runtime-only | Runtime dependencies only. |
qaclan setup --path-only | Binary move and PATH only. |
qaclan setup --no-path | Skip the PATH step. |
qaclan setup --no-move | Leave the binary in place; add its directory to PATH. |
qaclan setup --no-chromium | Skip the Chromium download. |
qaclan setup --force | Re-run every step even if it looks done. |
qaclan reset-runtime | Delete the runtime directory only, keeping the database, scripts and config. |
--path-only and --runtime-only are mutually exclusive. Full detail on Install and setup.
Uninstall
| Command | What it does |
|---|---|
qaclan uninstall | Remove PATH entries, the binary and the whole ~/.qaclan/ directory, after confirming. |
qaclan uninstall --yes | Skip the confirmation. |
Irreversible
This deletes local projects, scripts, run history and environments. Work that was synced can be restored on a new machine with qaclan pull.
Project
| Command | What it does |
|---|---|
qaclan project create <name> | Create a project and make it active. |
qaclan project list | All projects, with ID and creation date. |
qaclan project use <project_id> | Switch the active project. |
qaclan project show | Show the active project. |
qaclan project delete <project_id> | Delete a project and everything in it, including script files on disk. |
Environment
| Command | What it does |
|---|---|
qaclan env create <name> | Create an environment in the active project. |
qaclan env set <env> <key> <value> | Set or update a variable. Add --secret to mask it in list output. |
qaclan env list [env] | All environments, or just one. |
qaclan env delete <env> | Delete an environment and its variables. |
Status
| Command | What it does |
|---|---|
qaclan status | Every web and API feature in the active project with script counts, plus a summary. |
Web testing
| Command | What it does |
|---|---|
qaclan web feature create <name> | Create a web feature. |
qaclan web feature list | Features with script counts. |
qaclan web feature delete <feature_id> | Delete a feature and its scripts. |
qaclan web record --feature <id> --name <name> [--url <start_url>] [--language <lang>] | Record with Playwright codegen. Languages: python, javascript, javascript-test, typescript. Needs a display. |
qaclan web script list [--feature <id>] | List scripts. |
qaclan web script show <script_id> | Print a script's contents. |
qaclan web script import <file> --name <name> --feature <id> [--language <lang>] | Import an existing Playwright script. |
qaclan web script delete <script_id> | Delete a script and its file. |
qaclan web suite create <name> | Create an empty suite. |
qaclan web suite add --suite <id> --script <id> | Append a script. |
qaclan web suite remove --suite <id> --script <id> | Remove a script. |
qaclan web suite reorder --suite <id> --scripts <id1,id2,...> | Set the exact run order. |
qaclan web suite show --suite <id> | Scripts in order, with run status. |
qaclan web suite list | All suites with counts and last-run status. |
qaclan web suite delete <suite_id> | Delete the suite, keeping its scripts. |
qaclan web run --suite <id> [--env <name>] [--browser <engine>] [--resolution WxH] [--headless] [--stop-on-fail] | Run every script in the suite, in order, in one shared browser context. |
API testing
| Command | What it does |
|---|---|
qaclan api list [--collection <name>] | Collections, or the requests in one. |
qaclan api run <name_or_id> [--collection <name>] [--env <name>] | Run a single request, or a whole collection when --collection is given. The positional argument is required either way. |
qaclan api import <file_or_url> [--format auto|har|openapi|postman|bruno] [--collection <name>] | Import requests. Format is auto-detected by default. |
qaclan api export <collection> [--output <dir>] | Export a collection as Bruno .bru files. |
qaclan api record [--url <start_url>] | Open a browser, capture the calls your app makes, then choose which to save. Needs a display. |
Postman and OpenAPI export live in the UI
The CLI export writes Bruno files. Exporting a collection as Postman JSON, or the generated reference as OpenAPI YAML, is done from the local web UI.
Runs
| Command | What it does |
|---|---|
qaclan runs [--suite <suite_id>] | Run history, optionally filtered. |
qaclan run show <run_id> [--verbose] | Per-script results and classified errors. --verbose adds the raw traceback. |
qaclan runs report <run_id> [--output <file>] | Write a self-contained offline HTML report. |
Sync
| Command | What it does |
|---|---|
qaclan pull | Download the workspace and merge it into the local database. |
qaclan push [--all] | Force a full resync of the active project, or of all. |
Local web UI
| Command | What it does |
|---|---|
qaclan serve | Start the local UI at localhost:7823 and open a browser. |
qaclan serve --port <port> | Use a different port. |
qaclan serve --host 0.0.0.0 | Bind all interfaces, for example inside a container. |
qaclan serve --no-browser | Do not open a browser tab. |
qaclan serve --port 7823 --no-browserIf you are logged in, serving also starts the background sync worker.