Skip to content

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

CommandWhat it does
qaclan --helpList the command groups. Works on any subcommand too.
qaclan --versionPrint the version.
qaclan versionThe same, as its own command.

Auth

CommandWhat it does
qaclan loginPrompt 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 logoutRemove the stored key. Local data is untouched.

Which commands need you signed in

Most commands require a stored auth key: project, env, status, runs, run, web, api, pull and push.

These eight run without one: version, login, logout, uninstall, serve, setup, reset-runtime and set-upload-cap. That is why qaclan serve can start and then ask for a key in its own first screen.

Setup and runtime

CommandWhat it does
qaclan setupFull bootstrap: move the binary, add it to PATH, install the runtime and Chromium.
qaclan setup --runtime-onlyRuntime dependencies only.
qaclan setup --path-onlyBinary move and PATH only.
qaclan setup --no-pathSkip the PATH step.
qaclan setup --no-moveLeave the binary in place; add its directory to PATH.
qaclan setup --no-chromiumSkip the Chromium download.
qaclan setup --forceRe-run every step even if it looks done.
qaclan reset-runtimeDelete the runtime directory only, keeping the database, scripts and config. Asks first.
qaclan reset-runtime --yesSkip the confirmation.
qaclan set-upload-cap <MB>Set the size ceiling, in megabytes, for files captured during recording and replayed on a run.

--path-only and --runtime-only are mutually exclusive. Resetting the runtime also clears past run artifacts, which live inside it. Full detail on Install and setup.

Uninstall

CommandWhat it does
qaclan uninstallRemove PATH entries, the binary and the whole ~/.qaclan/ directory, after confirming.
qaclan uninstall --yesSkip 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

CommandWhat it does
qaclan project create <name>Create a project and make it active.
qaclan project listAll projects, with ID and creation date.
qaclan project use <project_id>Switch the active project.
qaclan project showShow the active project.
qaclan project delete <project_id>Delete a project and everything in it, including script files on disk.

Environment

CommandWhat 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

CommandWhat it does
qaclan statusEvery web and API feature in the active project with script counts, plus a summary.

Web testing

CommandWhat it does
qaclan web feature create <name>Create a web feature.
qaclan web feature listFeatures 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 (default), javascript, typescript, javascript_test, typescript_test — the last two with an underscore. 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. Same five language values as record.
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 listAll 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

CommandWhat 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>] [--format bruno|postman]Export a collection. --format takes bruno (the default, writing .bru files) or postman.
qaclan api negatives <name_or_id> [--collection <name>] [--env <name>] [--yes]Generate and run negative cases for a request, or for every request in a collection. --yes is required before cases using mutating verbs will fire.
qaclan api record [--url <start_url>]Open a browser, capture the calls your app makes, then choose which to save. Needs a display.

OpenAPI export lives in the UI

The CLI exports Bruno and Postman. Exporting the generated reference as OpenAPI YAML is done from the local web UI.

Runs

CommandWhat it does
qaclan runs [--suite <suite_id>]Run history, optionally filtered.
qaclan runs show <run_id> [--verbose]Per-script results and classified errors. --verbose adds the raw technical error. Also registered at the top level as qaclan run show — the two are the same command.
qaclan runs report <run_id> [--output <file>]Write a self-contained offline HTML report. Defaults to qaclan-report-<run_id>.html in the current directory.

Sync

CommandWhat it does
qaclan pullDownload the workspace and merge it into the local database — projects, features, scripts, suites, environments and variables, plus API collections, folders and requests. Browser run history is not pulled.
qaclan push [--all]Force a full resync of the active project, or of all.

Local web UI

CommandWhat it does
qaclan serveStart the local UI at localhost:7823 and open a browser.
qaclan serve --port <port>Use a different port.
qaclan serve --host 0.0.0.0Bind all interfaces, for example inside a container.
qaclan serve --no-browserDo not open a browser tab.
qaclan serve --port 7823 --no-browser

If you are logged in, serving also starts the background sync worker.