Skip to main content

Roboticks CLI - Verify ROS2 robots against requirements from the command line

Project description

Roboticks CLI

Command-line interface for the Roboticks ROS2 verification & validation platform. Drive local pytest runs, trigger cloud test runs, manage requirements, link GitHub repositories, and pull evidence packs — from the same shell you write tests in.

Installation

# Using pip
pip install roboticks-cli

# Using pipx (recommended for isolated install)
pipx install roboticks-cli

# With the local-test SDK (drives @confirms-decorated pytest)
pip install "roboticks-cli[local-tests]"

# From source
pip install -e ".[dev]"

Quick Start

# Login (opens browser)
rbtk login

# Set the org/project context once
rbtk context set --org acme --project warehouse

# Link a GitHub repo to this project (uses the Roboticks GitHub App)
rbtk github link acme/perception

# Upload requirements (ReqIF, PDF, YAML — auto-detected)
rbtk requirements upload ./safety-requirements.reqif

# Run tests locally with traceability
rbtk test run --package ./src/perception_tests

# Run the same tests on a Roboticks cloud runner
rbtk test cloud --branch main --watch

# Inspect results + grab the evidence pack
rbtk test results <test-run-id>
rbtk test evidence-pack <test-run-id> --format pdf -o evidence.pdf

CI/CD Usage

export ROBOTICKS_API_KEY=rbtk_xxx
export ROBOTICKS_ORG=acme
export ROBOTICKS_PROJECT=warehouse

rbtk test cloud --commit "$GITHUB_SHA" --branch "$GITHUB_REF_NAME" --watch

Inside GitHub Actions, use OIDC instead of long-lived API keys:

permissions:
  id-token: write
steps:
  - uses: actions/checkout@v4
  - run: pip install roboticks-cli
  - run: rbtk auth oidc-from-github
  - run: rbtk test cloud --watch

rbtk auth oidc-from-github exchanges the GitHub Actions OIDC token for a short-lived Roboticks token and stores it in the keyring for the run.

Commands

Authentication

rbtk login                       # Login via browser
rbtk logout                      # Clear credentials
rbtk auth status                 # Check auth status
rbtk auth whoami                 # Same as auth status
rbtk auth oidc-from-github       # Exchange GitHub Actions OIDC token (CI only)

Context

rbtk context                                # Show current context
rbtk context set --org acme --project robots
rbtk context list                           # List available orgs/projects
rbtk context clear                          # Clear saved context

Organizations / Projects

rbtk org list
rbtk org get [SLUG]
rbtk org limits
rbtk project list
rbtk project get [SLUG]

Tests

rbtk test run [--package PATH] [--filter PATTERN]    # Local pytest/colcon run
rbtk test cloud [--branch BRANCH] [--commit SHA] [--watch]
rbtk test list [--limit N] [--status STATUS]
rbtk test results <test-run-id>
rbtk test logs <test-run-id> [--follow]
rbtk test artifacts <test-run-id> [--download PATH]
rbtk test evidence-pack <test-run-id> [--format pdf|reqif|zip] [-o FILE]

Requirements

rbtk requirements upload <file.reqif | file.pdf | file.yaml>
rbtk requirements list [--type safety] [--gap-only]
rbtk requirements show <REQ-ID>
rbtk requirements coverage
rbtk requirements export --format reqif -o requirements.reqif

GitHub Integration

rbtk github link <owner/repo> [--project PROJECT]
rbtk github status

Runner Pools

rbtk runner-pool list
rbtk runner-pool create --type self-hosted --name lab-gpus \
    --flavors ros2_test,gazebo
rbtk runner-pool register-runner --pool lab-gpus
rbtk runner-pool runners <pool>
rbtk runner-pool delete <pool>

Logs

rbtk log list --test-run <id> --level error
rbtk log list --ros-node /perception_node
rbtk log stream --test-run <id>
rbtk log export --test-run <id> --since 24h -o logs.json

Shell Completions

rbtk completion bash >> ~/.bashrc
rbtk completion install

Environment Variables

Variable Description Default
ROBOTICKS_API_KEY API key for authentication -
ROBOTICKS_ORG Default organization slug -
ROBOTICKS_PROJECT Default project slug -
ROBOTICKS_API_URL API base URL https://api.roboticks.io
ROBOTICKS_OUTPUT Output format (table/json/yaml/ids) table
ROBOTICKS_NO_INTERACTIVE Disable interactive prompts false
ROBOTICKS_DEBUG Enable debug output false
NO_COLOR Disable colored output -

Output Formats

rbtk test list --output json
rbtk requirements coverage --output yaml
rbtk runner-pool list --output ids

Configuration Files

User Config

# ~/.config/roboticks/config.yaml
version: 1
context:
  organization: acme
  project: warehouse
api:
  base_url: https://api.roboticks.io
output:
  format: table

Project Config

# .roboticks.yaml (in repo root)
organization: acme
project: warehouse
defaults:
  test:
    package: src/perception_tests

Development

python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

pytest                                  # 90% coverage enforced
ruff check src/ tests/
ruff format --check src/ tests/
mypy src/

Releases

Tag a version on the main branch — CI publishes to PyPI via the publish.yml workflow. 0.2.0aN tags publish to TestPyPI; 0.2.0 and above publish to PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roboticks_cli-0.3.0.tar.gz (112.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roboticks_cli-0.3.0-py3-none-any.whl (79.7 kB view details)

Uploaded Python 3

File details

Details for the file roboticks_cli-0.3.0.tar.gz.

File metadata

  • Download URL: roboticks_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 112.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for roboticks_cli-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f1a1f7786d8d50f87d4937a9ba9ea974960c692736256e0914292957f08ea371
MD5 97383894dc34345051cf5fb2b1eec967
BLAKE2b-256 01c4602aa9fbfe274b9daa93cbe616c474ad3e967dba2856806f9ff656175804

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboticks_cli-0.3.0.tar.gz:

Publisher: publish.yml on Roboticks-IO/roboticks-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file roboticks_cli-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: roboticks_cli-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 79.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for roboticks_cli-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b91d7e259317386e0ad1c4d459ff89a83ed9bc0356dfc5f6a2d15b54e2be067e
MD5 e8e30493564c1bb53ee73ffa926f3366
BLAKE2b-256 d043155169923987b545c1574e2f1735a8939e5c90a29fdfe71be05b5f79d5d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboticks_cli-0.3.0-py3-none-any.whl:

Publisher: publish.yml on Roboticks-IO/roboticks-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page