CLI Reference¶
Note: the user-facing CLI lives in
lb_ui(invoke vialborpython -m lb_ui.cli). Runner/controller packages do not expose separate entrypoints.
Setup¶
- Install in a venv:
uv venv && uv pip install -e ".[ui,controller]" - Make
lbglobally available (optional):uv tool install -e ".[ui,controller]" - Enable shell completion:
lb --install-completion(bash/zsh/fish)
Global flags¶
--headlessforces headless output (useful in CI or pipes).
Config resolution¶
Order used by commands that need a config:
-c/--configflag- Saved default at
~/.config/lb/config_path(set vialb config set-defaultorlb config init) ./benchmark_config.jsonif present- Built-in defaults
Top-level commands¶
lb run [WORKLOAD ...] [-c FILE] [--run-id ID] [--remote/--no-remote] [--repetitions N] [--intensity LEVEL] [--setup/--no-setup] [--stop-file PATH] [--debug]Run workloads remotely via Ansible. Local execution is not supported by the CLI.lb run ... --docker [--docker-engine docker|podman] [--nodes N]Dev-only: provision containers and run via Ansible (requires.lb_dev_cliorLB_ENABLE_TEST_CLI=1).lb run ... --multipass [--nodes N]Dev-only: provision Multipass VMs and run via Ansible (requires.lb_dev_cliorLB_ENABLE_TEST_CLI=1).lb resume [RUN_ID] [-c FILE] [--root PATH] [--remote/--no-remote] [--docker|--multipass]Resume a previous run; without RUN_ID, pick interactively frombenchmark_results/.lb runs list [--root PATH] [-c FILE]/lb runs show RUN_ID [--root PATH] [-c FILE]Inspect stored runs underbenchmark_results/.lb runs analyze [RUN_ID] [--kind aggregate] [--root PATH] [--workload NAME] [--host NAME]Run analytics on an existing run.lb plugin ...Inspect and manage workload plugins.lb provision loki-grafana install|remove|status [--mode local|docker] [--grafana-url URL] [--grafana-api-key KEY] [--loki-endpoint URL] [--no-configure]Install/remove Loki + Grafana and configure datasources/dashboards.lb config ...Create and manage benchmark configuration files.lb doctor ...Run prerequisite checks.lb test multipass ...(dev-only) Helper to run integration tests.
Plugin management (lb plugin ...)¶
lb plugin listlb plugin enable NAMElb plugin disable NAMElb plugin selectPlugin enablement is stored in the platform config (~/.config/lb/platform.json); workloads live in the run config.
Config management (lb config ...)¶
lb config init [-i] [-c FILE] [--set-default/--no-set-default]lb config set-repetitions N [-c FILE] [--set-default/--no-set-default]lb config set-default FILE/lb config unset-default/lb config show-defaultlb config edit [-c FILE]lb config workloads [-c FILE]lb config enable-workload NAME [-c FILE] [--set-default]lb config disable-workload NAME [-c FILE] [--set-default]lb config select-workloads [-c FILE] [--set-default]
Doctor checks (lb doctor ...)¶
lb doctor controller- Python deps + Ansible requirementslb doctor local- local workload tools (stress-ng, fio, sysstat)lb doctor multipass- Multipass availabilitylb doctor all- run all checks
Test helpers (lb test ..., dev installs only)¶
- Available when
.lb_dev_cliexists in the project root orLB_ENABLE_TEST_CLI=1is set. lb test multipass [-o DIR] [--vm-count {1,2}] [--multi-workloads] [-- EXTRA_PYTEST_ARGS...]
Environment variables¶
LB_ENABLE_TEST_CLI=1enableslb testand provisioning flags in the CLI.LB_USER_PLUGIN_DIRoverrides the user plugin install directory.LB_STOP_FILEsets a stop sentinel path if--stop-fileis omitted.LB_SUPPRESS_SUMMARYsuppresses the end-of-run summary table.LB_TEST_RESULTS_DIR,LB_MULTIPASS_VM_COUNTcustomize test helpers.