rpx-agent
Wrap any robot training command with one line and get full end-to-end analytics on simtooreal.com.
What it collects automatically - zero code changes to your training script:
| Signal | How |
|---|---|
| Live logs (stdout + stderr) | Streamed in real-time |
| RL metrics (reward, KL, loss, entropy...) | Parsed from stdout - SB3, RSL-RL, Isaac Lab, CleanRL, generic |
| Termination reasons & reward components | Parsed from Episode_Termination/ and Episode_Reward/ lines |
| GPU / CPU / RAM | nvidia-smi + psutil every 60 s |
| Checkpoints / artifacts | File watcher: .pt, .pkl, .ckpt, .safetensors... |
| Environment snapshot | Python version, CUDA, GPU name, git SHA, detected simulator |
| Heartbeat | Every 30 s - run stays marked alive during Isaac Sim loading |
| Offline buffering | Events spooled to disk when backend unreachable; replayed automatically |
Install
pip install rpx-agent
# Optional extras for richer system telemetry:
pip install "rpx-agent[full]" # adds psutil + PyYAML
Local development:
pip install -e ./simtooreal-agent
Flow 1: pip install + rpx-agent run (recommended)
3 commands, then training is instrumented:
# 1. Authenticate
rpx-agent login --api-key YOUR_KEY
# 2. (optional) Initialise project config in your training directory
cd /path/to/your/robot/project
rpx-agent init
# 3. Wrap your existing training command - nothing else changes
rpx-agent run -- python train.py --num-envs 1024
rpx-agent run -- python train_headless.py --agent AnymalC --headless
rpx-agent run -- bash scripts/train.sh
Auto-detection: --task and --platform are inferred automatically.
No need to add any flags unless you want to override.
rpxalso works as a short alias:rpx run -- python train.py
All flags for rpx-agent run
--task TEXT Experiment name (default: inferred from script filename)
--label TEXT Human-readable label shown in dashboard
--platform TEXT isaaclab | mujoco | gazebo | custom (auto-detected)
--run-id TEXT Explicit run ID (auto-generated UUID if omitted)
--tags TEXT Comma-separated tags
--watch-dir DIR Extra dir to watch for checkpoints (repeatable)
--no-metrics Disable stdout metric parsing
--no-sysinfo Disable GPU/CPU telemetry
--no-artifacts Disable checkpoint file detection
--batch-size N Log events per HTTP batch (default: 80)
--flush-interval F Seconds between log flushes (default: 1.5)
Flow 2: SSH connect (HPC / shared clusters)
For machines where you can't install packages (SLURM, university HPC):
- In the SIMTOOREAL dashboard ? Remote Hosts ? Add SSH host
- Paste your SSH key and remote training command
- SIMTOOREAL SSHes in, runs your command, streams logs back
- Same analytics pipeline - failure intelligence, sim-to-real, promotion gate
Flow 3: Docker self-host (on-prem enterprise)
cp .env.example .env
# Set SIMTOOREAL_API_KEY, SIMTOOREAL_DB_URL, JWT_SECRET in .env
docker compose up -d postgres backend frontend
Then use rpx-agent run pointed at your local backend:
export SIMTOOREAL_SERVER_URL=http://your-server:3001
rpx-agent run -- python train.py
Project config (simtooreal.yaml)
rpx-agent init creates this automatically. You can also write it manually:
project: anymal-locomotion
simulator: isaaclab
server_url: https://SIMTOOREAL-backend.fly.dev
watch_dirs:
- .
- logs/checkpoints
The agent searches for simtooreal.yaml from your current directory up to the filesystem root.
Environment variables
| Variable | Aliases | Description |
|---|---|---|
SIMTOOREAL_API_KEY |
SIMTOOREAL_API_KEY, SIMTOOREAL_API_KEY |
API key |
SIMTOOREAL_SERVER_URL |
SIMTOOREAL_SERVER_URL, SIMTOOREAL_SERVER_URL |
Backend URL |
Edge cases handled
- Backend unreachable at start - runs offline, all events spooled to
~/.simtooreal-agent/spool/, replayed when connection restored - Binary / non-UTF-8 output (Isaac Sim OpenGL) - decoded with
errors=replace, never crashes - Long lines > 8 KB - truncated with
...[truncated]marker - Orphan GPU processes on Ctrl+C - kills entire process group (
SIGKILLon Linux,taskkill /Ton Windows) - Command not found - friendly error with PATH hint, exits 127
- Missing API key on production server - warns clearly with
rpx-agent logininstructions - SLURM / multi-process training - wrap the
srunortorchruncommand directly - Isaac Sim long startup (5-10 min silent) - heartbeat thread keeps run alive
- Rate limiting (HTTP 429) - automatic exponential backoff retry
- 401/403 auth errors - clear message with
rpx-agent logininstructions
Supported log formats (auto-parsed)
| Framework | Detected signal |
|---|---|
| Stable Baselines3 | | rollout/ep_rew_mean | 4.23 | table |
| RSL-RL / Isaac Lab | Learning iteration 100/1000 blocks |
| CleanRL | global_step=51200, episodic_return=4.23 |
| Generic | reward=4.23 iteration=100 kl=0.012 |
| SIMTOOREAL / rpx patch | [SIMTOOREAL] failure captured: base_contact rate=0.30 |
| Episode labels | Episode_Termination/base_contact: 0.30 |
Publish to PyPI
python -m build ./simtooreal-agent
python -m twine upload simtooreal-agent/dist/*
Or just push a version tag - GitHub Actions auto-publishes:
git tag v0.2.1; git push origin v0.2.1
Metadata
Release files for simtooreal-agent 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 | |
|---|---|---|---|
| simtooreal_agent-0.3.0.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simtooreal_agent-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.4 kB
Release files / simtooreal_agent-0.3.0.tar.gz
| Download URL | simtooreal_agent-0.3.0.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34f7244767c142fb2e6a6706576e6c075cc67f09f77efc913565baf85ee736da
|
|
BLAKE2b-256 checksum How to use checksums |
58dcb8de380e7773a36b121c3a792df2feeaac8c6286905e4b5197b2615feab1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / simtooreal_agent-0.3.0-py3-none-any.whl
| Download URL | simtooreal_agent-0.3.0-py3-none-any.whl |
|---|---|
| Size | 53.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad348f06e04856d736a552a5a3c6a993d75e8213102c2e79748cc2404e127572
|
|
BLAKE2b-256 checksum How to use checksums |
4135562dced487ed11346bc152d4cfe9bc1654599f2743f1ed436ac5dce798c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|