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.
Metadata
Release files for roboticks-cli 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| roboticks_cli-0.3.0.tar.gz | 112.8 kB | With provenance | Details for roboticks_cli-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| roboticks_cli-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for roboticks_cli-0.3.0-py3-none-any.whl |
Total release size: 192.6 kB
Release files / roboticks_cli-0.3.0.tar.gz
| Download URL | roboticks_cli-0.3.0.tar.gz |
|---|---|
| Size | 112.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f1a1f7786d8d50f87d4937a9ba9ea974960c692736256e0914292957f08ea371
|
|
BLAKE2b-256 checksum How to use checksums |
01c4602aa9fbfe274b9daa93cbe616c474ad3e967dba2856806f9ff656175804
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logRelease files / roboticks_cli-0.3.0-py3-none-any.whl
| Download URL | roboticks_cli-0.3.0-py3-none-any.whl |
|---|---|
| Size | 79.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b91d7e259317386e0ad1c4d459ff89a83ed9bc0356dfc5f6a2d15b54e2be067e
|
|
BLAKE2b-256 checksum How to use checksums |
d043155169923987b545c1574e2f1735a8939e5c90a29fdfe71be05b5f79d5d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logSecurity for roboticks-cli 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for roboticks_cli-0.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.