Start here · Make data · Updated 2026-08-23

How to record your first robot dataset

Recording is teleoperation with a tape running. The commands are simple; the habits are what separate data people thank you for from data that gets junk-flagged.

One-time setup: log in to the Hub

hf auth login --token ${HUGGINGFACE_TOKEN} --add-to-git-credential

Note it is hf auth login in current tooling, not the older huggingface-cli command.

The record command

lerobot-record \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem585A0076841 \
    --robot.id=my_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 1920, height: 1080, fps: 30}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_leader_arm \
    --display_data=true \
    --dataset.repo_id=YOURNAME/first-pick-place \
    --dataset.num_episodes=10 \
    --dataset.single_task="Pick up the black cube and place it in the bin"

During recording: right arrow or n ends an episode, left arrow or r re-records one, ESC or q stops everything, encodes, and uploads. Episodes default to 60 seconds. Full flag list in the official recording docs.

The three habits that make data good

First, the task string: notice ours says exactly what happens, not "task desc". That sentence trains language models; treat it like product copy. Second, fixed cameras: clamp them, never nudge them mid-session, keep one wide view and add a wrist view when you can. Third, variation on purpose: the official guidance is 50 or more episodes with about 10 per object position. Move the cube between positions, not your camera.

Start with 10, then grow

Record 10 episodes today as your quality rehearsal, replay one with lerobot-replay to see what the robot saw, fix what bothers you, then push toward 50 in your next sessions with --resume=true.