The official graphical interface for LeRobot.
LeLab is a web app that puts the full LeRobot workflow — calibrate, teleoperate, record, train, replay — into a single browser UI. Plug in your arm, open the app, and go. No CLI gymnastics, no keyboard prompts.
🤗 A web-native front door to LeRobot, designed so newcomers can get from "unboxing" to "training their first policy" in minutes.
🤗 Install and run everything with a single command.
Grab the one-liner from the LeLab Space — it installs and runs LeLab + LeRobot in a single command.
A page will automatically open in your browser and you are ready to go.
| 🎯 Calibrate | Guided web flow for both arms — no keyboard prompts. |
| 🕹️ Teleoperate | Move the leader, the follower mirrors it. Live joint streaming. |
| 📹 Record | Capture episodes into a LeRobotDataset, with cameras. |
| 🔎 Browse | Watch the episodes of a dataset on disk — every camera, frame by frame, with a joint-motion trace. No upload required. |
| 🧠 Train | Kick off a LeRobot training job, watch logs live. |
| 🤖 Run inference | Execute a trained policy on the follower. |
| ⏪ Replay | Re-run any recorded episode. |
| ☁️ Upload | Push your dataset to the Hugging Face Hub in one click. |
If a camera is mounted upside down or sideways, select its Rotation in the camera setup on the Calibration page. Choose 0°, 90°, 180°, or 270° clockwise. For an upside-down wrist camera, choose 180°.
LeLab saves the rotation for each camera. Setup and teleoperation previews, recorded frames, and inference use the selected rotation. Profiles without a rotation setting use 0°.
The resolution setting describes the camera's capture resolution. A 90° or 270° rotation swaps the output dimensions. For example, a 640 × 480 capture becomes a 480 × 640 observation. The preview shows the complete rotated frame.
Before inference, select the same rotation used for the training dataset. Check it again if you change the camera binding. Checkpoint image dimensions do not establish image orientation. For example, 0° and 180° have the same dimensions. The setting applies to new observations; it does not change existing recordings or checkpoints.
- LeRobot: the underlying library — go here for everything beyond the UI.
- LeLab Space: try the UI in your browser.
- Discord: chat with the LeRobot community.
- CLAUDE.md: architecture rundown for contributors.
PRs welcome. Hot-reload mode for working on the code:
lelab --devVite on :8080, uvicorn --reload on :8000. Installing LeLab builds the frontend bundle, so PRs never include frontend/dist.