LeRobot v0.6.0 release notes
LeRobot v0.6.0 release notes
World models: policies that imagine
LeRobot v0.6.0 introduces three world‑model policies that learn to predict future frames during training while incurring no extra inference cost.
VLA-JEPA
VLA-JEPA teaches a compact VLA (built on Qwen3-VL-2B) to predict the future in latent space while it learns to act: during training, a JEPA world model anticipates upcoming frames from the model's own actions. The world model disappears at inference, giving world‑model supervision at zero extra inference cost. Three ready‑to‑use checkpoints are on the Hub, including a DROID‑pretrained base for fine‑tuning:
lerobot-train \
--policy.path=lerobot/VLA-JEPA-Pretrain \
--dataset.repo_id=${HF_USER}/my_dataset \
--policy.repo_id=${HF_USER}/my_finetuned_policy
See the VLA-JEPA documentation and the paper.
LingBot-VA
LingBot-VA is an autoregressive video‑action model that predicts future video and actions together, chunk by chunk, and feeds real observations back in to keep its imagination grounded. You can save what the robot imagined (--policy.save_predicted_video=true) and compare it with what actually happened. Inference runs on a single 24–32 GB GPU. See the documentation and the paper.
FastWAM
FastWAM pairs a ~5 B video‑generation expert with a compact action expert in a single network, so the model literally learns to dream its own rollouts. At inference it skips the dreaming entirely and directly denoises action chunks. Fine‑tune it from lerobot/fastwam_base and read more in the documentation.
VLAs: the model zoo keeps growing
The release adds five new vision‑language‑action models to the LeRobot zoo, ranging from GR00T N1.7 to the compact EVO1.
GR00T N1.7
We upgraded our NVIDIA GR00T integration to GR00T N1.7, the newest open generation of NVIDIA's cross‑embodiment foundation model. N1.7 swaps the previous VLM for Cosmos‑Reason2‑2B (built on Qwen3‑VL) feeding a flow‑matching action head, and our integration is parity‑tested against NVIDIA's original Isaac‑GR00T implementation: same inputs, same outputs. Flash‑attention is now optional, so pip install 'lerobot[groot]' just works, and you can load NVIDIA's published checkpoints directly.
GR00T N1.7 replaces N1.5 in LeRobot. If you need N1.5, pin
lerobot==0.5.1.
MolmoAct2
MolmoAct2, the Allen Institute for AI's vision‑language‑action model, is now ported into LeRobot with the full lifecycle covered: fine‑tuning (full or LoRA), evaluation, and real‑robot deployment. Ready‑made checkpoints with calibration correction baked in mean you can run it zero‑shot on an SO‑100/101:
lerobot-rollout \
--policy.path=lerobot/MolmoAct2-SO100_101-LeRobot \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.cameras='{cam0: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, cam1: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}' \
--task="pick up the red cube" --duration=30
Inference fits in ~12 GB at bf16, and LoRA fine‑tuning fits on a single 24 GB GPU. See the MolmoAct2 documentation.
EO-1
EO‑1, a VLA pretrained upstream on interleaved vision‑text‑action data, joins LeRobot: a Qwen2.5‑VL‑3B backbone with a flow‑matching action head, contributed by one of the paper's own authors. Train it with the standard lerobot-train workflow using --policy.type=eo1. Details in the documentation and the paper.
Multitask DiT
The Multitask Diffusion Transformer policy brings the TRI Large Behavior Models recipe to LeRobot: a ~450 M‑parameter diffusion transformer conditioned on CLIP vision and language embeddings, so one model learns many tasks selected via natural language. It supports both diffusion and flow‑matching objectives, and it is small enough to train yourself. See the documentation.
EVO1
VLAs don't have to be huge. EVO1 packs its policy into 0.77 B parameters, an InternVL3‑1B backbone with a flow‑matching action head, small enough to fine‑tune and run in real time on modest GPUs. It ships with two‑stage fine‑tuning and Real‑Time Chunking support out of the box. See the EVO1 documentation and the paper.
Reward models: knowing when your robot succeeds
LeRobot v0.6.0 provides a unified reward‑model API with two new pretrained models that score success and progress from video and language without task‑specific training.
Robometer
Robometer is a pretrained, general‑purpose reward model: point lerobot/Robometer-4B at any LeRobot dataset and it scores task progress and success from raw video plus a language instruction, with no task‑specific training required. It is built on Qwen3‑VL‑4B and trained via trajectory comparisons over a dataset of more than one million robot trajectories (RSS 2026 paper).
TOPReward
TOPReward goes fully zero‑shot: no reward weights at all. It wraps an off‑the‑shelf VLM (Qwen3‑VL) and reads the log‑probability of the token "True" given the trajectory video and the task instruction. Any capable VLM becomes a reward function.
Both ship with labeling scripts that write per‑frame progress curves into your dataset, ready for reward‑aware behavior cloning (RA‑BC), dataset quality inspection, and progress‑overlay videos. Check the Robometer and TOPReward docs.
Datasets: faster loading, richer data
Dataset handling gains custom video encoding, end‑to‑end depth, large‑scale language annotation via VLM, and up to 2× faster data loading.
Your codec, your rules
Recording is no longer stuck with one hard‑coded codec. The new --dataset.rgb_encoder.* options expose the full encoding surface (codec, quality, pixel format, GOP, presets), and vcodec=auto probes for hardware encoders like NVENC, VideoToolbox, VAAPI, and QSV before falling back to the default software AV1 encoder. For existing datasets, one command re‑encodes everything:
lerobot-edit-dataset \
--repo_id ${HF_USER}/my_dataset \
--operation.type reencode_videos \
--operation.rgb_encoder.vcodec h264 \
--operation.rgb_encoder.crf 23
Full details in the video encoding documentation.
Depth support, end to end
Plug in an Intel RealSense, set use_depth: true, and LeRobot records depth maps end to end: captured in millimeters, compressed as compact 12‑bit depth video streams alongside your RGB cameras, and decoded back to physical units at training time. Depth renders live during recording and in lerobot-dataset-viz, and it works across SO‑100/101, Koch, OpenArm, reBot, Unitree G1 and more.
Language annotations at scale
Your dataset stops being one task string per episode. LeRobot datasets now natively store rich language annotations (timestamped subtasks, plans, memory, corrections, speech, and per‑camera VQA pairs), and the new lerobot-annotate CLI fills them in automatically using a VLM that watches your episodes:
lerobot-annotate \
--repo_id=${HF_USER}/my_dataset \
--new_repo_id=${HF_USER}/my_dataset_annotated \
--vlm.model_id=Qwen/Qwen2.5-VL-7B-Instruct \
--push_to_hub=true
A YAML recipe layer then renders these annotations into chat‑style training messages at sample time: exactly the data tomorrow's long‑horizon, talking robot policies will train on. Scale it up with HF Jobs, and read the annotation pipeline docs to learn more.
Up to 2x faster data loading
Training on video datasets is now up to ~2× faster out of the box: multi‑camera frames decode in parallel, dataloader workers ship compact uint8 frames (4× less memory between processes), and persistent workers keep decoder caches alive across epochs. Loading a subset of a large dataset (episodes=[...]) went from minutes to milliseconds (275 s down to 0.06 s in our benchmark). Sampling is also deterministic and resumable now, so interrupted trainings restart sample‑exact.
Benchmarks: one CLI to evaluate them all
Six new simulation benchmarks join the evaluation hub and are all accessible through a single lerobot-eval command.
- LIBERO-plus stress‑tests VLAs with roughly 10,000 perturbed variants of LIBERO across seven axes, from lighting and camera viewpoints to rewritten instructions. It tells you when a policy breaks.
- RoboTwin 2.0 covers 50 bimanual manipulation tasks on SAPIEN with heavy domain randomization, and comes with more than 100k ready‑to‑train trajectories on the Hub.
- RoboCasa365 spans 365 kitchen tasks in 2,500 procedurally generated kitchens on a mobile manipulator, the largest task surface in our lineup.
- RoboCerebra evaluates long‑horizon behavior with episodes that chain 3 to 6 sub‑goals under language‑grounded intermediate instructions, plus a 6,660‑episode dataset.
- RoboMME is a memory exam: can your policy count repetitions, track hidden objects, and imitate demonstrated procedures? 16 tasks across 4 memory suites.
- VLABench tests knowledge and reasoning in manipulation, from physics questions to composite tasks like brewing coffee end to end.
lerobot-eval \
--policy.path=lerobot/smolvla_robotwin \
--env.type=robotwin \
--env.task=beat_block_hammer \
--eval.n_episodes=100 --eval.batch_size=1
Simulator backends require specific system dependencies with their own install steps; each docs page has the exact recipe, and every benchmark ships a ready‑made Docker image if you'd rather skip the setup.
Together with LIBERO, Meta‑World, and NVIDIA IsaacLab‑Arena, that makes nine benchmark families under one roof, and a new Adding a New Benchmark guide documents exactly how to plug in yours. Evaluation also got faster: parallel eval now defaults to async vectorized environments, benchmarked at up to 2× faster.
Training & inference
Training and deployment receive a dedicated rollout CLI with DAgger‑style data collection, FSDP for multi‑GPU scaling, and cloud training via HF Jobs.
lerobot-rollout: deployment gets its own CLI
Deploying a policy used to be a hack on top of lerobot-record. The new lerobot-rollout CLI makes deployment its own workflow, with pluggable strategies and inference backends (including Real‑Time Chunking for slow compatible VLAs). The base strategy just runs the policy. sentry records continuously, rotating episodes and uploading to the Hub as it goes. highlight keeps a ring buffer and saves the last N seconds when you hit a key, so an interesting moment is never lost. episodic mirrors the classic episode/reset recording workflow. And dagger turns deployment into data collection.
With the DAgger strategy, you watch your policy run, hit a key (or a USB foot pedal) the moment it goes wrong, take over with your leader arm to record the correction, and hand control back. Actuated leaders are driven to the follower's pose before you take over, so the handover is jerk‑free. Every correction frame is tagged with an intervention flag, and the resulting dataset is ready for the next fine‑tune:
lerobot-rollout \
--strategy.type=dagger \
--policy.path=${HF_USER}/my_policy \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM1 \
--dataset.repo_id=${HF_USER}/dagger_corrections \
--dataset.single_task="Grasp the block"
Deploy, collect corrections, fine‑tune, repeat: the robot learning flywheel is now a CLI flag. Read the deployment docs.
FSDP: train models bigger than your GPU
Robot foundation models are outgrowing single GPUs. LeRobot training now supports FSDP (fully sharded data parallel) through Accelerate: parameters, gradients, and optimizer state are sharded across GPUs, and checkpoints are gathered back into a plain single‑file model.safetensors that loads like any other policy. You can even resume an FSDP run on a different number of GPUs. See the multi‑GPU training docs.
Cloud training with HF Jobs
No GPU? No problem. The exact same lerobot-train command now runs in the cloud by adding one flag:
lerobot-train \
--dataset.repo_id=${HF_USER}/so101_test \
--policy.type=act \
--policy.repo_id=${HF_USER}/my_policy \
--job.target=a10g-small
LeRobot pushes your local dataset to a private Hub repo if needed, submits the job, streams logs to your terminal, and pushes the trained policy to the Hub at the end. Pick anything from a T4 to 8× H200 with --job.target (compute is billed pay‑as‑you‑go). Check out the documentation
Codebase: leaner and cleaner
The installation is now lighter, dependencies are feature‑gated, and usability improvements include Foxglove streaming, uv lock, Wayland keyboard support, and plugin‑based components.
pip install lerobotis now genuinely lightweight, with roughly 40 % fewer base dependencies. Feature‑scoped extras ([training],[core_scripts],[evaluation], ...) cover the rest, and missing‑dependency errors tell you exactly which extra to add. No longer need to install hardware‑related dependencies if you only use LeRobot dataset ;)- Supported PyTorch moves to 2.7–2.11, with CUDA 12.8 wheels pinned out of the box for Linux
uvinstalls.--policy.dtype=bfloat16now drives real mixed‑precision training through Accelerate. - A committed
uv.lockis the authoritative dependency spec for CI, Docker, and development, and the docs includeuvinstall routes for every step, down to picking your CUDA wheel with a single flag. --display_mode=foxglovestreams teleoperation, recording, and rollouts to Foxglove, the visualization tool much of the robotics world already uses. It works with remote setups, andlerobot-dataset-vizgets scrubbable dataset playback.- Pip‑installable
lerobot_env_*packages now self‑register their environments. The plugin system covers all five component types: robots, cameras, teleoperators, policies, and envs. - Keyboard controls during recording now work on Wayland, over SSH, on headless rigs, and on macOS without Accessibility permissions.
Check the release notes for the full list and migration pointers for the breaking changes.
Community & ecosystem
New tools such as LeLab browser UI, Isaac Teleop integration, hardware guide, and plugin policy guide expand accessibility.
- LeLab puts the whole LeRobot workflow (calibrate, teleoperate, record, train locally or on HF Jobs, deploy) in a browser UI, no CLI required. It currently supports the SO‑ARM101. Try it out!
- Isaac Teleop lets you teleoperate an SO‑101 with a VR controller through NVIDIA's Isaac Teleop stack over CloudXR/OpenXR, the result of a collaboration with the NVIDIA team. See the documentation.
- The new compute hardware guide answers the two questions every newcomer asks: which GPU do I need, and how long will training take? It gives measured VRAM envelopes per policy family and reference training times from an RTX 4090 to 4× H100.
- The rewritten Adding a Policy guide shows how to ship your own policy, in‑tree or as a plugin package with no PR needed.
Final thoughts
Beyond the headline features, v0.6.0 includes hundreds of bug fixes, documentation improvements, and quality‑of‑life upgrades across the codebase, from smarter defaults to more reliable CI.
We want to extend a huge thank you to everyone in the community. This release includes work from academia, industry and hobbyists teams who chose LeRobot as the home for their models and benchmarks. Every PR and bug report pushes open‑source robotics forward.
Stay tuned for more to come 🤗 Get started here! – The LeRobot team ❤️