Skip to main content
Replay plays one episode of an existing LeRobot dataset straight back onto the arms: the episode’s recorded action column is streamed to the motors frame by frame, then the robot returns to its rest pose. It’s the inverse of data collection — instead of recording teleop actions it reproduces an already-recorded take on the hardware. You can launch it from the web control panel or the CLI (axol replay-dataset). No VR, cameras, or policy server are involved — replay only drives the arms, so the robot config carries no cameras. The arm is first moved to the rest pose (the same collision-aware return-to-rest run-policy uses) so it starts where every recorded episode does: episodes are recorded from rest, so the first replayed action is ~rest and there’s no jump.
Replay drives the arms open-loop from the recorded actions — it does not watch the scene (though an opt-in contact stop, below, can halt playback if a joint pushes hard against something unexpected). Make sure the workspace is clear and roughly matches what the episode was recorded in before starting, and keep Stop (or Ctrl+C) within reach. Match the stiffness used at collection time so the arm tracks the same way it did when recorded.
Contact stop (opt-in). Off by default. Set the Teleop contact stop in the control panel’s Robot settings (--teleop_torque_threshold on the CLI; the panel suggests 16 Nm) and a sustained torque past the threshold stops playback and drops the arms into a limp gravity-comp hold until you stop the run — replay has no interactive retry. The between-takes return to rest is always guarded separately.

Before you start

  • Axol installed (one-command install), CAN up, and motors verified.
  • A recorded dataset to replay — a local one under --root ($HF_LEROBOT_HOME by default), a filesystem path to a dataset directory anywhere on disk, or one pullable from the HuggingFace Hub by its repo_id. See Data Collection to record one.

Run it

1

Connect the robot

Connect the Axol Host and Axol. No cameras are needed for replay.
2

Select Replay Dataset and fill the fields

Pick Replay Dataset. Set the dataset repo id — pick one from the dropdown of datasets found on the host (each shown with its episode count), or type a repo id or a filesystem path — the episode index (0-indexed), the loop toggle, and optionally interpolate (smooths playback by upsampling the recorded actions to ~120 Hz commands; timing is unchanged) — the per-run inputs. Playback fps and stiffness live in the Settings tabs.
3

Start

Clear the workspace, then press Start. The arm moves to rest, replays the episode at the recorded timing, and returns to rest. With loop on it repeats (returning to rest between takes) until you press Stop.

Next steps

Data Collection

Record the episodes you replay here.

replay-dataset reference

Every flag and the replay internals.