CLI command reference
Every command, option, environment variable, output mode, and exit code.
CLI command reference
The busloom command is a headless adapter to the same project parser, license verifier, transports, codecs, automation runner, and report writers as the desktop application. It does not open Tauri, create a WebView, or save modifications back into the project.
Command synopsis
busloom run <project.busloom.json> \
--run-profile <name-or-id> \
--connection <name-or-id> [options]
busloom license request --output <device.busloom-license-request>
busloom license install <device.busloom-license>
busloom license inspect <device.busloom-license>
busloom license statusBoth --run-profile and --connection are required for a run. Names are convenient for people; stable IDs avoid ambiguity in long-lived scripts. The command uses the project exactly as it exists on disk, so save desktop edits before expecting the CLI to see them.
Run options
| Option | Value | Behavior |
|---|---|---|
| --run-profile, --automation | Name or stable ID | Selects one saved automation run profile |
| --connection, --profile | Name or stable ID | Selects one saved RTU, TCP, or TLS connection profile |
| --param | name-or-id=value | Overrides one target parameter; repeat the option for multiple values |
| --dry-run | No value | Executes reads and checks but suppresses device writes |
| --report | json · junit · html | Chooses report serialization; JSON is the default |
| --output | File path | Writes the report to a file instead of standard output |
| --tls-ca | File path | Overrides the project CA certificate path for this launch |
| --tls-certificate | File path | Overrides the project client certificate path for this launch |
| --tls-key | File path | Overrides the project client private-key path for this launch |
| --tls-pin | SHA-256 fingerprint | Supplies a machine-local server certificate pin for this launch |
| --license-file | File path | Uses a device license without installing it, useful in bounded headless environments |
| -h, --help | No value | Prints the supported syntax and exits successfully |
Command-line TLS values take precedence over environment values, which take precedence over project paths. These are launch overrides only: the CLI never rewrites the profile. There is deliberately no hidden flag that changes the project's Skip verification policy.
Environment variables
| Variable | Equivalent option | Use case |
|---|---|---|
| BUSLOOM_TLS_CA_PATH | --tls-ca | Inject a CA path from the machine or CI environment |
| BUSLOOM_TLS_CERTIFICATE_PATH | --tls-certificate | Inject the client certificate path |
| BUSLOOM_TLS_KEY_PATH | --tls-key | Inject the corresponding client private-key path |
| BUSLOOM_TLS_PIN | --tls-pin | Provide the expected server certificate fingerprint |
| BUSLOOM_LICENSE_FILE | --license-file | Point headless execution at a signed license without installing it |
Exit codes
| Code | Class | Interpretation |
|---|---|---|
| 0 | Passed | Automation completed successfully, or a help/license inspection command completed |
| 1 | Test failed | The automation ran and produced a failed outcome; treat it as device/procedure evidence |
| 2 | Usage error | Unknown command or option, missing value, malformed parameter override, or missing required selector |
| 3 | Setup error | Project, connection, license, entitlement, runtime, TLS, or report setup prevented a meaningful test run |
Keep exit 1 separate from exit 2 or 3 in CI. A failed expectation is a legitimate test result and should retain its report. A missing project or license means the test never started and should be repaired as infrastructure.
Reproducible invocation
busloom run ./projects/drive.busloom.json \
--run-profile "Commissioning smoke" \
--connection "Bench TCP" \
--param targetSpeed=1200 \
--param allowStart=false \
--dry-run \
--report junit \
--output ./artifacts/drive-smoke.xml