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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1a1f7786d8d50f87d4937a9ba9ea974960c692736256e0914292957f08ea371
|
|
| MD5 |
97383894dc34345051cf5fb2b1eec967
|
|
| BLAKE2b-256 |
01c4602aa9fbfe274b9daa93cbe616c474ad3e967dba2856806f9ff656175804
|
Provenance
The following attestation bundles were made for roboticks_cli-0.3.0.tar.gz:
Publisher:
publish.yml on Roboticks-IO/roboticks-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roboticks_cli-0.3.0.tar.gz -
Subject digest:
f1a1f7786d8d50f87d4937a9ba9ea974960c692736256e0914292957f08ea371 - Sigstore transparency entry: 1697322407
- Sigstore integration time:
-
Permalink:
Roboticks-IO/roboticks-cli@5638d50ffe8979cc9790ed3b7b65890b51f42b94 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Roboticks-IO
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5638d50ffe8979cc9790ed3b7b65890b51f42b94 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b91d7e259317386e0ad1c4d459ff89a83ed9bc0356dfc5f6a2d15b54e2be067e
|
|
| MD5 |
e8e30493564c1bb53ee73ffa926f3366
|
|
| BLAKE2b-256 |
d043155169923987b545c1574e2f1735a8939e5c90a29fdfe71be05b5f79d5d9
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roboticks_cli-0.3.0-py3-none-any.whl -
Subject digest:
b91d7e259317386e0ad1c4d459ff89a83ed9bc0356dfc5f6a2d15b54e2be067e - Sigstore transparency entry: 1697322500
- Sigstore integration time:
-
Permalink:
Roboticks-IO/roboticks-cli@5638d50ffe8979cc9790ed3b7b65890b51f42b94 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Roboticks-IO
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5638d50ffe8979cc9790ed3b7b65890b51f42b94 -
Trigger Event:
release
-
Statement type: