Skip to content

CLI reference

ob

OmniBenchmark Command Line Interface (CLI).

Usage:

ob [OPTIONS] COMMAND [ARGS]...

Options:

  --debug / --no-debug  Enable debug mode
  --version             Show the version and exit.
  -h, --help            Show this message and exit.

Subcommands

  • archive: Archive a benchmark and its artifacts.
  • cite: Extract citation metadata from CITATION.cff files in benchmark modules.
  • create: Create new benchmarks or modules from templates.
  • dashboard: Generate a dashboard from benchmark results.
  • describe: Describe benchmarks and/or information about them.
  • remote: Manage remote storage.
  • run: Run a benchmark.
  • validate: Validate benchmarks and modules.

archive

Archive a benchmark and its artifacts.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob archive [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug            Enable debug mode
  -c, --code                      Archive benchmarking code (repos).
  -s, --software                  Archive software environments.
  -r, --results                   Archive results files.
  --compression [none|deflated|bzip2|lzma|gzip]
                                  Compression method. 'gzip' creates a tar.gz
                                  archive, others create ZIP archives.
                                  [default: gzip]
  --compresslevel INTEGER         Compression level (1-9, higher is better
                                  compression).  [default: 9]
  -n, --dry-run                   Do not create the archive, just show what
                                  would be done.
  --use-remote-storage            Download results from remote storage for
                                  archiving. Default False.
  --out-dir TEXT                  Local directory name to archive from (local-
                                  only mode). Default: `out`
  -o, --output-file PATH          Custom output file path for the archive.
                                  Extension must match compression type:
                                  none/deflated (.zip), bzip2 (.bz2), lzma
                                  (.xz), gzip (.tar.gz).
  --help                          Show this message and exit.

cite

Extract citation metadata from CITATION.cff files in benchmark modules.

Automatically clones repositories to temporary directories if not found locally. By default, runs in warn mode and converts errors to warnings. Use --strict to fail on errors instead.

Usage:

ob cite [OPTIONS]

Options:

  --debug / --no-debug            Enable debug mode
  -b, --benchmark PATH            Path to benchmark yaml file or benchmark id.
                                  [required]
  -f, --format [json|yaml|bibtex]
                                  Output format for citation information.
  --strict                        Fail on errors instead of converting them to
                                  warnings (default: warn mode).
  --out PATH                      Output file to write results to.
  --help                          Show this message and exit.

create

Create new benchmarks or modules from templates.

Usage:

ob create [OPTIONS] COMMAND [ARGS]...

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.

Subcommands

  • benchmark: Create a new benchmark from a template.
  • module: Create a new module from a template.

benchmark

Create a new benchmark from a template.

This command scaffolds a new benchmark project structure using copier templates. It creates all necessary configuration files, directory structure, and example modules to get you started with your benchmark.

Usage:

ob create benchmark [OPTIONS] [PATH]

Options:

  --debug / --no-debug            Enable debug mode
  --no-input                      Do not prompt for parameters and only use
                                  defaults
  --non-interactive               Non-interactive mode (requires all mandatory
                                  parameters as flags)
  --name TEXT                     Name of the benchmark
  --author-name TEXT              Author name
  --author-email TEXT             Author email
  --license [MIT|Apache-2.0|GPL-3.0|BSD-3-Clause|CC0-1.0]
                                  License for the benchmark
  --description TEXT              Description of the benchmark
  --help                          Show this message and exit.

module

Create a new module from a template.

This command scaffolds a new OmniBenchmark module project structure using copier templates. It creates the necessary configuration files (CITATION.cff, omnibenchmark.yaml), a sample entrypoint script, and documentation to get you started with your module development.

When using --benchmark and --for-stage, the generated entrypoint will include CLI argument parsing for the specific inputs required by that stage.

Usage:

ob create module [OPTIONS] PATH

Options:

  --debug / --no-debug            Enable debug mode
  -b, --benchmark TEXT            Path or URL to benchmark YAML file (for
                                  stage-specific input parsing)
  --for-stage TEXT                Stage ID to generate module for (requires
                                  --benchmark)
  --no-input                      Do not prompt for parameters and only use
                                  defaults
  --non-interactive               Non-interactive mode (requires all mandatory
                                  parameters as flags)
  --name TEXT                     Name of the module
  --author-name TEXT              Author name
  --author-email TEXT             Author email
  --license [MIT|Apache-2.0|GPL-3.0-or-later|BSD-3-Clause|CC0-1.0]
                                  License for the module
  --description TEXT              Description of the module
  --entrypoint [run.R|run.py|run.sh]
                                  Main entrypoint script for the module
  --help                          Show this message and exit.

dashboard

Generate a dashboard from benchmark results.

This command generates a dashboard from the performance data collected during benchmark execution.

Usage:

ob dashboard [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  -f, --format [bettr]  Dashboard format to generate (default: bettr).
  -o, --out-dir PATH    Output directory containing benchmark results
                        (default: out).
  --help                Show this message and exit.

describe

Describe benchmarks and/or information about them.

Usage:

ob describe [OPTIONS] COMMAND [ARGS]...

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.

Subcommands

  • snakemake: Export a snakemake computational graph to dot format.
  • status: Show the status of a benchmark.
  • topology: Export benchmark topology to MERMAID diagram format.

snakemake

Export a snakemake computational graph to dot format.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob describe snakemake [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.

status

Show the status of a benchmark.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob describe status [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  --out-dir TEXT        Output folder name (local only).
  --missing_files       Show missing files in the status report.
  --reason              Show reason for missing files in the status report.
  --logs                Show logs for missing files in the status report.
  --json                Return the status report as JSON.
  --html                Return the status report as HTML.
  --html-file TEXT      Output HTML file name.
  --force               If HTML file exists, overwrite it.
  --help                Show this message and exit.

topology

Export benchmark topology to MERMAID diagram format.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob describe topology [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug            Enable debug mode
  --show-params / --no-show-params
                                  Whether to write parameters to the mermaid
                                  output.
  --compact-params / --no-compact-params
                                  Whether to write parameters compactly (only
                                  used if --show-params).
  --help                          Show this message and exit.

remote

Manage remote storage.

Usage:

ob remote [OPTIONS] COMMAND [ARGS]...

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.

Subcommands

  • files: Manage files in remote storage.
  • policy: Manage storage policies. DEPRECATED: use your cloud provider's IAM tooling directly.
  • version: Manage benchmark versions.

files

Manage files in remote storage.

Usage:

ob remote files [OPTIONS] COMMAND [ARGS]...

Options:

  --help  Show this message and exit.

Subcommands

  • checksum: Generate md5sums of all benchmark outputs.
  • download: Download all or specific files for a benchmark.
  • list: List all or specific files for a benchmark.
checksum

Generate md5sums of all benchmark outputs.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob remote files checksum [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.
download

Download all or specific files for a benchmark.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob remote files download [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  -t, --type TEXT       File types. Options: all, code, inputs, outputs, logs,
                        performance.
  -s, --stage TEXT      Stage to download files from.
  -m, --module TEXT     Module to download files from.
  -i, --id TEXT         File id to download.
  -o, --overwrite       Overwrite existing files.
  --help                Show this message and exit.
list

List all or specific files for a benchmark.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob remote files list [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  -t, --type TEXT       File types. Options: all, code, inputs, outputs, logs,
                        performance.
  -s, --stage TEXT      Stage to list files for.
  -m, --module TEXT     Module to list files for.
  -i, --id TEXT         File id/type to list.
  --help                Show this message and exit.

policy

Manage storage policies. DEPRECATED: use your cloud provider's IAM tooling directly.

Usage:

ob remote policy [OPTIONS] COMMAND [ARGS]...

Options:

  --help  Show this message and exit.

Subcommands

  • create: Generate an S3/MinIO IAM policy for a benchmark bucket.
create

Generate an S3/MinIO IAM policy for a benchmark bucket.

This command generates a least-privilege AWS IAM policy JSON that can be used to create access keys in MinIO or AWS. The policy allows full S3 operations on the bucket but denies deletion and governance bypass.

You can either: - Provide a benchmark YAML file (-b/--benchmark) to read the bucket name from storage.bucket_name - Provide the bucket name directly (--bucket)

Usage:

ob remote policy create [OPTIONS]

Options:

  --debug / --no-debug  Enable debug mode
  -b, --benchmark PATH  Path to benchmark YAML file.
  --bucket TEXT         S3 bucket name. If not provided, reads from benchmark
                        YAML.
  --help                Show this message and exit.

version

Manage benchmark versions.

Usage:

ob remote version [OPTIONS] COMMAND [ARGS]...

Options:

  --help  Show this message and exit.

Subcommands

  • create: Create a new benchmark version.
  • diff: Show differences between 2 benchmark versions.
  • list: List all available benchmark versions.
create

Create a new benchmark version.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob remote version create [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.
diff

Show differences between 2 benchmark versions.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob remote version diff [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  -v1, --version1 TEXT  Reference version.  [required]
  -v2, --version2 TEXT  Version to compare with.  [required]
  --help                Show this message and exit.
list

List all available benchmark versions.

BENCHMARK: Path to benchmark YAML file.

Usage:

ob remote version list [OPTIONS] BENCHMARK

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.

run

Run a benchmark.

BENCHMARK: Path to benchmark YAML file.

This command: 1. Fetches and caches all module repositories 2. Resolves modules and generates an explicit Snakefile 3. Runs snakemake on the generated Snakefile

Any arguments after -- are passed directly to snakemake.

Examples:

ob run benchmark.yaml # Run full benchmark ob run benchmark.yaml --cores 8 # Run with 8 cores ob run benchmark.yaml --dry # Generate Snakefile only ob run benchmark.yaml --dirty # Allow local paths with uncommitted changes ob run benchmark.yaml --unpinned # Allow branch refs on remote repos ob run benchmark.yaml -m M1 # Dev mode: run only module M1 ob run benchmark.yaml -- --rerun-triggers mtime # Pass flags to snakemake ob run benchmark.yaml -- --forceall # Force re-run all rules

Usage:

ob run [OPTIONS] BENCHMARK [SNAKEMAKE_ARGS]...

Options:

  --debug / --no-debug     Enable debug mode
  -c, --cores INTEGER      Use at most N CPU cores in parallel. Default is 1.
  -d, --dry                Dry run (only generate Snakefile, don't execute).
  -k, --continue-on-error  Go on with independent jobs if a job fails (--keep-
                           going in snakemake).
  --out-dir TEXT           Output folder name. Default: `out`
  --dirty                  Allow local path module references with uncommitted
                           changes. Use for development only.
  --unpinned               Allow unpinned branch references on remote repos
                           (resolved to HEAD at run time). Use for development
                           only.
  --use-remote-storage     Execute and store results remotely using S3 storage
                           configured in the benchmark YAML.
  -m, --module TEXT        Run only the sub-graph needed for a single module
                           (development mode). Prunes all stages after the
                           target module's stage and keeps only the first
                           upstream input × parameter expansion for each
                           module.
  --help                   Show this message and exit.

validate

Validate benchmarks and modules.

Usage:

ob validate [OPTIONS] COMMAND [ARGS]...

Options:

  --debug / --no-debug  Enable debug mode
  --help                Show this message and exit.

Subcommands

  • module: Validate module (metadata, try to run).
  • plan: Validate benchmark YAML plan structure.

module

Validate module (metadata, try to run).

Validates a module repository at PATH. Defaults to current directory if not specified.

Checks: - Required files exist (CITATION.cff, LICENSE, omnibenchmark.yaml) - CITATION.cff is valid and has required fields - License consistency between CITATION.cff and LICENSE file

By default, shows warnings but doesn't fail. Use --strict to fail on warnings.

Usage:

ob validate module [OPTIONS] [PATH]

Options:

  --strict  Treat warnings as errors and fail on any validation issue.
  --help    Show this message and exit.

plan

Validate benchmark YAML plan structure.

Checks: - YAML syntax is valid - Required fields are present - Data types are correct - References between stages/modules are valid - Software environment backends are properly configured

Usage:

ob validate plan [OPTIONS] BENCHMARK

Options:

  --help  Show this message and exit.