BUSLOOM MANUAL

CLI command reference

Every command, option, environment variable, output mode, and exit code.

22 · HEADLESS REFERENCE

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 status

Both --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

OptionValueBehavior
--run-profile, --automationName or stable IDSelects one saved automation run profile
--connection, --profileName or stable IDSelects one saved RTU, TCP, or TLS connection profile
--paramname-or-id=valueOverrides one target parameter; repeat the option for multiple values
--dry-runNo valueExecutes reads and checks but suppresses device writes
--reportjson · junit · htmlChooses report serialization; JSON is the default
--outputFile pathWrites the report to a file instead of standard output
--tls-caFile pathOverrides the project CA certificate path for this launch
--tls-certificateFile pathOverrides the project client certificate path for this launch
--tls-keyFile pathOverrides the project client private-key path for this launch
--tls-pinSHA-256 fingerprintSupplies a machine-local server certificate pin for this launch
--license-fileFile pathUses a device license without installing it, useful in bounded headless environments
-h, --helpNo valuePrints 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

VariableEquivalent optionUse case
BUSLOOM_TLS_CA_PATH--tls-caInject a CA path from the machine or CI environment
BUSLOOM_TLS_CERTIFICATE_PATH--tls-certificateInject the client certificate path
BUSLOOM_TLS_KEY_PATH--tls-keyInject the corresponding client private-key path
BUSLOOM_TLS_PIN--tls-pinProvide the expected server certificate fingerprint
BUSLOOM_LICENSE_FILE--license-filePoint headless execution at a signed license without installing it

Exit codes

CodeClassInterpretation
0PassedAutomation completed successfully, or a help/license inspection command completed
1Test failedThe automation ran and produced a failed outcome; treat it as device/procedure evidence
2Usage errorUnknown command or option, missing value, malformed parameter override, or missing required selector
3Setup errorProject, 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