Skip to main content

1. Install

uv pip install rfx-sdk
Check the environment:
rfx doctor

2. Record a demo

Collection is a first-class primitive. Record episodes into a LeRobot dataset:
rfx record \
  --robot so101 \
  --repo-id my-org/demos \
  --episodes 10 \
  --duration 30
No hardware? Use --mock:
rfx record --robot so101 --repo-id my-org/demos --mock --duration 5

3. Deploy a policy

Deploy from a saved checkpoint, HuggingFace Hub, or a Python file:
rfx deploy runs/my-policy --robot so101
rfx deploy loads weights, resolves the robot config, connects hardware, and runs the control loop with rate control, jitter tracking, and clean shutdown on Ctrl+C.

4. Write a policy

A policy is any callable Dict[str, Tensor] -> Tensor. Use @rfx.policy to make it deployable from the CLI:
my_policy.py
import torch
import rfx

@rfx.policy
def hold_position(obs):
    return torch.zeros(1, 6)  # hold still (SO-101 has 6 joints)
rfx deploy my_policy.py --robot so101

Next steps

SO-101 quickstart

End-to-end setup for the 6-DOF arm.

Simulation guide

Run without hardware using Genesis or a mock robot.

Python SDK

Full reference for observe(), act(), deploy(), and artifacts.

Operator checklist

Preflight gates before a production deploy.