Configuration
Runner state lives in~/.roboticks/runner.yaml (or %APPDATA%\roboticks\runner.yaml on Windows). The file is created by rbtk-runner register and updated automatically on token rotation. You edit the capabilities and resource stanzas.
File layout
Capabilities
Capabilities are matched all-or-nothing against the job requirements declared in the test job’s payload. A runner missing a required capability is silently skipped — it never sees the job.ROS2 distros
/opt/ros/{distro} into the test container. List only the distros actually installed on the host; rbtk-runner doctor flags drift.
Sim engines
GPU
requires_gpu: true in the payload. If model is also set on the job, the runner is matched only if its declared model contains the substring. See GPU setup for nvidia-container-toolkit configuration.
Labels
Arbitrary string tags. Jobs may request a label (e.g.,ldra-licensed) — runners without it are skipped.
Resources
Pick
max_concurrent_jobs based on host capacity:
Log level
debug includes every HTTP request to the platform and the full Docker run command. Use it when diagnosing capability mismatches or upload failures.
Per-invocation override:
Environment variables
Validate a config
Hot reload
The runner watchesrunner.yaml and re-applies capability changes on the next poll without restarting. Resource limits and log_level require a restart.
Token rotation
On every heartbeat the platform may return a freshrunner_token. The runner writes the new token to runner.yaml atomically. Never copy runner.yaml between machines — each runner identity is bound to its host.
Inspect current state
Next steps
Run as a service
systemd, launchd, Windows. Drain-then-replace updates.
GPU setup
nvidia-container-toolkit, multi-GPU pools.