{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/huggingface-co/2026-07-07-lerobot-v0-6-0-imagine-evaluate-improve/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "This new release is about closing the robot learning loop: policies that imagine the future before acting, reward models that tell you when your robot succeeds, a deployment CLI that turns failures into training data, and six new simulation benchmarks to measure it all. It also brings depth sensing, VLM-powered dataset annotation, custom video encoding, cloud training on HF Jobs, and a much leaner install.\n\n## TL;DR\n\nLeRobot v0.6.0 introduces world model policies (VLA-JEPA, FastWAM, LingBot-VA) that learn to imagine the future, a wave of new VLAs (GR00T N1.7, MolmoAct2, EO-1, EVO1, Multitask DiT), and a new reward models API (Robometer, TOPReward). It ships six new simulation benchmarks unified under `lerobot-eval`, the `lerobot-rollout` CLI with DAgger-style human-in-the-loop corrections, FSDP training, and cloud training on HF Jobs. Datasets get depth support, an automatic language annotation pipeline, custom video encoding, and up to 2x faster data loading, all on top of a leaner installation.\n\n[![LeRobot 0.6.0](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/lerobot%20v0.6.0.png)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/lerobot%20v0.6.0.png)\n\n## Table of contents\n\n- [LeRobot v0.6.0: Imagine, Evaluate, Improve](https://huggingface.co/blog/lerobot-release-v060#lerobot-v060-imagine-evaluate-improve)\n  - [TL;DR](https://huggingface.co/blog/lerobot-release-v060#tldr)\n  - [Table of contents](https://huggingface.co/blog/lerobot-release-v060#table-of-contents)\n  - [World models: policies that imagine](https://huggingface.co/blog/lerobot-release-v060#world-models-policies-that-imagine)\n    - [VLA-JEPA](https://huggingface.co/blog/lerobot-release-v060#vla-jepa)\n    - [LingBot-VA](https://huggingface.co/blog/lerobot-release-v060#lingbot-va)\n    - [FastWAM](https://huggingface.co/blog/lerobot-release-v060#fastwam)\n  - [VLAs: the model zoo keeps growing](https://huggingface.co/blog/lerobot-release-v060#vlas-the-model-zoo-keeps-growing)\n    - [GR00T N1.7](https://huggingface.co/blog/lerobot-release-v060#gr00t-n17)\n    - [MolmoAct2](https://huggingface.co/blog/lerobot-release-v060#molmoact2)\n    - [EO-1](https://huggingface.co/blog/lerobot-release-v060#eo-1)\n    - [Multitask DiT](https://huggingface.co/blog/lerobot-release-v060#multitask-dit)\n    - [EVO1](https://huggingface.co/blog/lerobot-release-v060#evo1)\n  - [Reward models: knowing when your robot succeeds](https://huggingface.co/blog/lerobot-release-v060#reward-models-knowing-when-your-robot-succeeds)\n    - [Robometer](https://huggingface.co/blog/lerobot-release-v060#robometer)\n    - [TOPReward](https://huggingface.co/blog/lerobot-release-v060#topreward)\n  - [Datasets: faster loading, richer data](https://huggingface.co/blog/lerobot-release-v060#datasets-faster-loading-richer-data)\n    - [Your codec, your rules](https://huggingface.co/blog/lerobot-release-v060#your-codec-your-rules)\n    - [Depth support, end to end](https://huggingface.co/blog/lerobot-release-v060#depth-support-end-to-end)\n    - [Language annotations at scale](https://huggingface.co/blog/lerobot-release-v060#language-annotations-at-scale)\n    - [Up to 2x faster data loading](https://huggingface.co/blog/lerobot-release-v060#up-to-2x-faster-data-loading)\n  - [Benchmarks: one CLI to evaluate them all](https://huggingface.co/blog/lerobot-release-v060#benchmarks-one-cli-to-evaluate-them-all)\n  - [Training & inference](https://huggingface.co/blog/lerobot-release-v060#training--inference)\n    - [`lerobot-rollout`: deployment gets its own CLI](https://huggingface.co/blog/lerobot-release-v060#lerobot-rollout-deployment-gets-its-own-cli)\n    - [FSDP: train models bigger than your GPU](https://huggingface.co/blog/lerobot-release-v060#fsdp-train-models-bigger-than-your-gpu)\n    - [Cloud training with HF Jobs](https://huggingface.co/blog/lerobot-release-v060#cloud-training-with-hf-jobs)\n  - [Codebase: leaner and cleaner](https://huggingface.co/blog/lerobot-release-v060#codebase-leaner-and-cleaner)\n  - [Community & ecosystem](https://huggingface.co/blog/lerobot-release-v060#community--ecosystem)\n  - [Final thoughts](https://huggingface.co/blog/lerobot-release-v060#final-thoughts)\n\n## World models: policies that imagine\n\nThe robotics world is asking a big question: do world models actually help robot policies? v0.6.0 brings three policies to LeRobot to help answer that question. Each one learns to imagine the future as part of its training, and each takes a different path to keep that imagination affordable.\n\n### VLA-JEPA\n\nVLA-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 has to anticipate upcoming frames from the model's own actions. The trick is that the world model then disappears at inference, so you get 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:\n\n```bash\nlerobot-train \\\n  --policy.path=lerobot/VLA-JEPA-Pretrain \\\n  --dataset.repo_id=${HF_USER}/my_dataset \\\n  --policy.repo_id=${HF_USER}/my_finetuned_policy\n```\n\nCheck out the [VLA-JEPA documentation](https://huggingface.co/docs/lerobot/v0.6.0/vla_jepa) and the [paper](https://arxiv.org/abs/2602.10098) to learn more.\n\n### LingBot-VA\n\nLingBot-VA goes one step further: 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 even 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. Check out the [documentation](https://huggingface.co/docs/lerobot/v0.6.0/lingbot_va) and the [paper](https://arxiv.org/pdf/2601.21998) for the technical details.\n\n[![LingBot-VA imagined rollout vs real rollout](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/lingbot_va_viz_1.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/lingbot_va_viz_1.gif)\n\n### FastWAM\n\nFastWAM asks the question in its paper title: do world action models need test-time future imagination? It pairs a ~5B 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](https://huggingface.co/lerobot/fastwam_base), and read more in the [documentation](https://huggingface.co/docs/lerobot/v0.6.0/fastwam).\n\n## VLAs: the model zoo keeps growing\n\n### GR00T N1.7\n\nWe 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](https://huggingface.co/nvidia/GR00T-N1.7-3B) directly.\n\n> GR00T N1.7 replaces N1.5 in LeRobot. If you need N1.5, pin `lerobot==0.5.1`.\n\n### MolmoAct2\n\nMolmoAct2, 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:\n\n```bash\nlerobot-rollout \\\n  --policy.path=lerobot/MolmoAct2-SO100_101-LeRobot \\\n  --robot.type=so100_follower \\\n  --robot.port=/dev/ttyACM0 \\\n  --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}}' \\\n  --task=\"pick up the red cube\" --duration=30\n```\n\nInference fits in ~12 GB at bf16, and LoRA fine-tuning fits on a single 24 GB GPU. See the [MolmoAct2 documentation](https://huggingface.co/docs/lerobot/v0.6.0/molmoact2) for the full deployment guide.\n\n[![MolmoAct2 Zero-Shot in LeRobot](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/molmoact2_4.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/molmoact2_4.gif)\n\n### EO-1\n\nEO-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](https://huggingface.co/docs/lerobot/v0.6.0/eo1) and the [paper](https://arxiv.org/abs/2508.21112).\n\n### Multitask DiT\n\nThe Multitask Diffusion Transformer policy brings the TRI Large Behavior Models recipe to LeRobot: a ~450M-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](https://huggingface.co/docs/lerobot/v0.6.0/multi_task_dit).\n\n### EVO1\n\nVLAs don't have to be huge. EVO1 packs its policy into 0.77B 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](https://huggingface.co/docs/lerobot/v0.6.0/evo1) and the [paper](https://arxiv.org/abs/2511.04555).\n\n## Reward models: knowing when your robot succeeds\n\nSuccess detection and progress estimation are missing pieces in the robot learning loop, and v0.6.0 gives them a home. LeRobot now has a unified reward models API (`lerobot.rewards`), mirroring the policies API, with four reward models behind one interface - the HIL-SERL reward classifier, SARM, and two new additions:\n\n### Robometer\n\nRobometer is a pretrained, general-purpose reward model: point [lerobot/Robometer-4B](https://huggingface.co/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](https://arxiv.org/abs/2603.02115)).\n\n[![LeRobot Robometer](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/rm_robometer.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/rm_robometer.gif)\n\n### TOPReward\n\nTOPReward 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.\n\nBoth 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](https://huggingface.co/docs/lerobot/v0.6.0/robometer) and [TOPReward](https://huggingface.co/docs/lerobot/v0.6.0/topreward) docs.\n\n## Datasets: faster loading, richer data\n\n### Your codec, your rules\n\nRecording 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:\n\n```bash\nlerobot-edit-dataset \\\n    --repo_id ${HF_USER}/my_dataset \\\n    --operation.type reencode_videos \\\n    --operation.rgb_encoder.vcodec h264 \\\n    --operation.rgb_encoder.crf 23\n```\n\nFull details in the [video encoding documentation](https://huggingface.co/docs/lerobot/v0.6.0/video_encoding_parameters).\n\n### Depth support, end to end\n\nPlug 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.\n\n[![LeRobot Depth Camera](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/depth2.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/depth2.gif)\n\n### Language annotations at scale\n\nYour 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:\n\n```bash\nlerobot-annotate \\\n    --repo_id=${HF_USER}/my_dataset \\\n    --new_repo_id=${HF_USER}/my_dataset_annotated \\\n    --vlm.model_id=Qwen/Qwen2.5-VL-7B-Instruct \\\n    --push_to_hub=true\n```\n\nA 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](https://huggingface.co/docs/lerobot/v0.6.0/annotation_pipeline) to learn more.\n\n### Up to 2x faster data loading\n\nTraining on video datasets is now up to ~2x faster out of the box: multi-camera frames decode in parallel, dataloader workers ship compact uint8 frames (4x 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.\n\n## Benchmarks: one CLI to evaluate them all\n\nv0.5.0 planted the flag on LeRobot as an evaluation hub for VLAs; v0.6.0 makes it the real deal with six new simulation benchmarks, all runnable through the same `lerobot-eval` CLI, each with a docs page, a Docker image, and a SmolVLA baseline checkpoint smoke-tested in CI:\n\n- [LIBERO-plus](https://huggingface.co/docs/lerobot/v0.6.0/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.\n- [RoboTwin 2.0](https://huggingface.co/docs/lerobot/v0.6.0/robotwin) covers 50 bimanual manipulation tasks on SAPIEN with heavy domain randomization, and comes with [more than 100k ready-to-train trajectories](https://huggingface.co/datasets/lerobot/robotwin_unified) on the Hub.\n- [RoboCasa365](https://huggingface.co/docs/lerobot/v0.6.0/robocasa) spans 365 kitchen tasks in 2,500 procedurally generated kitchens on a mobile manipulator, the largest task surface in our lineup.\n- [RoboCerebra](https://huggingface.co/docs/lerobot/v0.6.0/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.\n- [RoboMME](https://huggingface.co/docs/lerobot/v0.6.0/robomme) is a memory exam: can your policy count repetitions, track hidden objects, and imitate demonstrated procedures? 16 tasks across 4 memory suites.\n- [VLABench](https://huggingface.co/docs/lerobot/v0.6.0/vlabench) tests knowledge and reasoning in manipulation, from physics questions to composite tasks like brewing coffee end to end.\n\n```bash\nlerobot-eval \\\n  --policy.path=lerobot/smolvla_robotwin \\\n  --env.type=robotwin \\\n  --env.task=beat_block_hammer \\\n  --eval.n_episodes=100 --eval.batch_size=1\n```\n\nSimulator 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.\n\nTogether with LIBERO, Meta-World, and NVIDIA IsaacLab-Arena, that makes nine benchmark families under one roof, and a new [Adding a New Benchmark guide](https://huggingface.co/docs/lerobot/v0.6.0/adding_benchmarks) documents exactly how to plug in yours. Evaluation also got faster: parallel eval now defaults to async vectorized environments, benchmarked at up to 2x faster.\n\n[![LeRobot benchmarks](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/benchmarks2.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/benchmarks2.gif)\n\n## Training & inference\n\n### `lerobot-rollout`: deployment gets its own CLI\n\nDeploying 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.\n\nWith 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:\n\n```bash\nlerobot-rollout \\\n    --strategy.type=dagger \\\n    --policy.path=${HF_USER}/my_policy \\\n    --robot.type=so100_follower \\\n    --robot.port=/dev/ttyACM0 \\\n    --teleop.type=so101_leader \\\n    --teleop.port=/dev/ttyACM1 \\\n    --dataset.repo_id=${HF_USER}/dagger_corrections \\\n    --dataset.single_task=\"Grasp the block\"\n```\n\nDeploy, collect corrections, fine-tune, repeat: the robot learning flywheel is now a CLI flag. Read the [deployment docs](https://huggingface.co/docs/lerobot/v0.6.0/inference).\n\n### FSDP: train models bigger than your GPU\n\nRobot 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](https://huggingface.co/docs/lerobot/v0.6.0/multi_gpu_training).\n\n### Cloud training with HF Jobs\n\nNo GPU? No problem. The exact same `lerobot-train` command now runs in the cloud by adding one flag:\n\n```bash\nlerobot-train \\\n  --dataset.repo_id=${HF_USER}/so101_test \\\n  --policy.type=act \\\n  --policy.repo_id=${HF_USER}/my_policy \\\n  --job.target=a10g-small\n```\n\nLeRobot 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 8x H200 with `--job.target` (compute is billed pay-as-you-go). [Check out the documentation](https://huggingface.co/docs/lerobot/v0.6.0/hardware_guide#hugging-face-jobs)\n\n## Codebase: leaner and cleaner\n\n- `pip install lerobot` is 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 ;)**\n- Supported PyTorch moves to 2.7–2.11, with CUDA 12.8 wheels pinned out of the box for Linux `uv` installs. `--policy.dtype=bfloat16` now drives real mixed-precision training through Accelerate.\n- A committed `uv.lock` is the authoritative dependency spec for CI, Docker, and development, and the docs include `uv` install routes for every step, down to picking your CUDA wheel with a single flag.\n- `--display_mode=foxglove` streams teleoperation, recording, and rollouts to [Foxglove](https://foxglove.dev), the visualization tool much of the robotics world already uses. It works with remote setups, and `lerobot-dataset-viz` gets scrubbable dataset playback.\n- Pip-installable `lerobot_env_*` packages now self-register their environments. The plugin system covers all five component types: robots, cameras, teleoperators, policies, and envs.\n- Keyboard controls during recording now work on Wayland, over SSH, on headless rigs, and on macOS without Accessibility permissions.\n\n> Check the [release notes](https://github.com/huggingface/lerobot/releases) for the full list and migration pointers for the breaking changes.\n\n[![LeLab a graphical user interface for LeRobot](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/LeLab.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/LeLab.gif)\n\n## Community & ecosystem\n\n- 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!](https://github.com/huggingface/leLab)\n- Isaac Teleop lets you teleoperate an SO-101 with a VR controller through [NVIDIA's Isaac Teleop stack](https://github.com/NVIDIA/IsaacTeleop) over CloudXR/OpenXR, the result of a collaboration with the NVIDIA team. See the [documentation](https://huggingface.co/docs/lerobot/v0.6.0/isaac_teleop).\n- The new [compute hardware guide](https://huggingface.co/docs/lerobot/v0.6.0/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 4x H100.\n- The rewritten [Adding a Policy guide](https://huggingface.co/docs/lerobot/v0.6.0/bring_your_own_policies) shows how to ship your own policy, in-tree or as a plugin package with no PR needed.\n\n## Final thoughts\n\nBeyond these 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.\n\nWe 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.\n\nStay tuned for more to come 🤗 Get started [here](https://github.com/huggingface/lerobot)! – The LeRobot team ❤️\n",
  "authors": [],
  "captured_at": "2026-10-19T01:26:53.998049939+00:00",
  "category": "ai",
  "content_html": "<p>This new release is about closing the robot learning loop: policies that imagine the future before acting, reward models that tell you when your robot succeeds, a deployment CLI that turns failures into training data, and six new simulation benchmarks to measure it all. It also brings depth sensing, VLM-powered dataset annotation, custom video encoding, cloud training on HF Jobs, and a much leaner install.</p>\n<h2>TL;DR</h2>\n<p>LeRobot v0.6.0 introduces world model policies (VLA-JEPA, FastWAM, LingBot-VA) that learn to imagine the future, a wave of new VLAs (GR00T N1.7, MolmoAct2, EO-1, EVO1, Multitask DiT), and a new reward models API (Robometer, TOPReward). It ships six new simulation benchmarks unified under <code>lerobot-eval</code>, the <code>lerobot-rollout</code> CLI with DAgger-style human-in-the-loop corrections, FSDP training, and cloud training on HF Jobs. Datasets get depth support, an automatic language annotation pipeline, custom video encoding, and up to 2x faster data loading, all on top of a leaner installation.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/lerobot%20v0.6.0.png\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/lerobot%20v0.6.0.png\" alt=\"LeRobot 0.6.0\" loading=\"eager\" decoding=\"async\" fetchpriority=\"high\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h2>Table of contents</h2>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#lerobot-v060-imagine-evaluate-improve\">LeRobot v0.6.0: Imagine, Evaluate, Improve</a>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#tldr\">TL;DR</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#table-of-contents\">Table of contents</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#world-models-policies-that-imagine\">World models: policies that imagine</a>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#vla-jepa\">VLA-JEPA</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#lingbot-va\">LingBot-VA</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#fastwam\">FastWAM</a></li>\n</ul>\n</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#vlas-the-model-zoo-keeps-growing\">VLAs: the model zoo keeps growing</a>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#gr00t-n17\">GR00T N1.7</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#molmoact2\">MolmoAct2</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#eo-1\">EO-1</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#multitask-dit\">Multitask DiT</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#evo1\">EVO1</a></li>\n</ul>\n</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#reward-models-knowing-when-your-robot-succeeds\">Reward models: knowing when your robot succeeds</a>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#robometer\">Robometer</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#topreward\">TOPReward</a></li>\n</ul>\n</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#datasets-faster-loading-richer-data\">Datasets: faster loading, richer data</a>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#your-codec-your-rules\">Your codec, your rules</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#depth-support-end-to-end\">Depth support, end to end</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#language-annotations-at-scale\">Language annotations at scale</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#up-to-2x-faster-data-loading\">Up to 2x faster data loading</a></li>\n</ul>\n</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#benchmarks-one-cli-to-evaluate-them-all\">Benchmarks: one CLI to evaluate them all</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#training--inference\">Training &amp; inference</a>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#lerobot-rollout-deployment-gets-its-own-cli\"><code>lerobot-rollout</code>: deployment gets its own CLI</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#fsdp-train-models-bigger-than-your-gpu\">FSDP: train models bigger than your GPU</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#cloud-training-with-hf-jobs\">Cloud training with HF Jobs</a></li>\n</ul>\n</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#codebase-leaner-and-cleaner\">Codebase: leaner and cleaner</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#community--ecosystem\">Community &amp; ecosystem</a></li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/blog/lerobot-release-v060#final-thoughts\">Final thoughts</a></li>\n</ul>\n</li>\n</ul>\n<h2>World models: policies that imagine</h2>\n<p>The robotics world is asking a big question: do world models actually help robot policies? v0.6.0 brings three policies to LeRobot to help answer that question. Each one learns to imagine the future as part of its training, and each takes a different path to keep that imagination affordable.</p>\n<h3>VLA-JEPA</h3>\n<p>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 has to anticipate upcoming frames from the model's own actions. The trick is that the world model then disappears at inference, so you get 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:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-train</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>policy</span>.path=lerobot/VLA-JEPA-Pretrain <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>dataset</span>.repo_id=<span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_dataset <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>policy</span>.repo_id=<span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_finetuned_policy</span>\n</span></span></code></pre>\n<p>Check out the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/vla_jepa\">VLA-JEPA documentation</a> and the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://arxiv.org/abs/2602.10098\">paper</a> to learn more.</p>\n<h3>LingBot-VA</h3>\n<p>LingBot-VA goes one step further: 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 even save what the robot imagined (<code>--policy.save_predicted_video=true</code>) and compare it with what actually happened. Inference runs on a single 24–32 GB GPU. Check out the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/lingbot_va\">documentation</a> and the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://arxiv.org/pdf/2601.21998\">paper</a> for the technical details.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/lingbot_va_viz_1.gif\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/lingbot_va_viz_1.gif\" alt=\"LingBot-VA imagined rollout vs real rollout\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h3>FastWAM</h3>\n<p>FastWAM asks the question in its paper title: do world action models need test-time future imagination? It pairs a ~5B 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 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/lerobot/fastwam_base\">lerobot/fastwam_base</a>, and read more in the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/fastwam\">documentation</a>.</p>\n<h2>VLAs: the model zoo keeps growing</h2>\n<h3>GR00T N1.7</h3>\n<p>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 <code>pip install 'lerobot[groot]'</code> just works, and you can load <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/nvidia/GR00T-N1.7-3B\">NVIDIA's published checkpoints</a> directly.</p>\n<blockquote>\n<p>GR00T N1.7 replaces N1.5 in LeRobot. If you need N1.5, pin <code>lerobot==0.5.1</code>.</p>\n</blockquote>\n<h3>MolmoAct2</h3>\n<p>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:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-rollout</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>policy</span>.path=lerobot/MolmoAct2-SO100_101-LeRobot <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>robot</span>.type=so100_follower <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>robot</span>.port=/dev/ttyACM0 <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>robot</span>.cameras=<span class=\"syntax-string syntax-quoted syntax-single syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&#39;</span>{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}}<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&#39;</span></span> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>task</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span><span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>pick up the red cube<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>duration</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>30</span>\n</span></span></code></pre>\n<p>Inference fits in ~12 GB at bf16, and LoRA fine-tuning fits on a single 24 GB GPU. See the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/molmoact2\">MolmoAct2 documentation</a> for the full deployment guide.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/molmoact2_4.gif\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/molmoact2_4.gif\" alt=\"MolmoAct2 Zero-Shot in LeRobot\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h3>EO-1</h3>\n<p>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 <code>lerobot-train</code> workflow using <code>--policy.type=eo1</code>. Details in the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/eo1\">documentation</a> and the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://arxiv.org/abs/2508.21112\">paper</a>.</p>\n<h3>Multitask DiT</h3>\n<p>The Multitask Diffusion Transformer policy brings the TRI Large Behavior Models recipe to LeRobot: a ~450M-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 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/multi_task_dit\">documentation</a>.</p>\n<h3>EVO1</h3>\n<p>VLAs don't have to be huge. EVO1 packs its policy into 0.77B 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 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/evo1\">EVO1 documentation</a> and the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://arxiv.org/abs/2511.04555\">paper</a>.</p>\n<h2>Reward models: knowing when your robot succeeds</h2>\n<p>Success detection and progress estimation are missing pieces in the robot learning loop, and v0.6.0 gives them a home. LeRobot now has a unified reward models API (<code>lerobot.rewards</code>), mirroring the policies API, with four reward models behind one interface - the HIL-SERL reward classifier, SARM, and two new additions:</p>\n<h3>Robometer</h3>\n<p>Robometer is a pretrained, general-purpose reward model: point <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/lerobot/Robometer-4B\">lerobot/Robometer-4B</a> 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 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://arxiv.org/abs/2603.02115\">RSS 2026 paper</a>).</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/rm_robometer.gif\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/rm_robometer.gif\" alt=\"LeRobot Robometer\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h3>TOPReward</h3>\n<p>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 &quot;True&quot; given the trajectory video and the task instruction. Any capable VLM becomes a reward function.</p>\n<p>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 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/robometer\">Robometer</a> and <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/topreward\">TOPReward</a> docs.</p>\n<h2>Datasets: faster loading, richer data</h2>\n<h3>Your codec, your rules</h3>\n<p>Recording is no longer stuck with one hard-coded codec. The new <code>--dataset.rgb_encoder.*</code> options expose the full encoding surface (codec, quality, pixel format, GOP, presets), and <code>vcodec=auto</code> 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:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-edit-dataset</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>repo_id</span> <span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_dataset <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>operation</span>.type reencode_videos <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>operation</span>.rgb_encoder.vcodec h264 <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>operation</span>.rgb_encoder.crf 23</span>\n</span></span></code></pre>\n<p>Full details in the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/video_encoding_parameters\">video encoding documentation</a>.</p>\n<h3>Depth support, end to end</h3>\n<p>Plug in an Intel RealSense, set <code>use_depth: true</code>, 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 <code>lerobot-dataset-viz</code>, and it works across SO-100/101, Koch, OpenArm, reBot, Unitree G1 and more.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/depth2.gif\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/depth2.gif\" alt=\"LeRobot Depth Camera\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h3>Language annotations at scale</h3>\n<p>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 <code>lerobot-annotate</code> CLI fills them in automatically using a VLM that watches your episodes:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-annotate</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>repo_id</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_dataset <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>new_repo_id</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_dataset_annotated <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>vlm</span>.model_id=Qwen/Qwen2.5-VL-7B-Instruct <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>push_to_hub</span><span class=\"syntax-keyword syntax-operator syntax-assignment syntax-option syntax-shell\">=</span>true</span>\n</span></span></code></pre>\n<p>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 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/annotation_pipeline\">annotation pipeline docs</a> to learn more.</p>\n<h3>Up to 2x faster data loading</h3>\n<p>Training on video datasets is now up to ~2x faster out of the box: multi-camera frames decode in parallel, dataloader workers ship compact uint8 frames (4x less memory between processes), and persistent workers keep decoder caches alive across epochs. Loading a subset of a large dataset (<code>episodes=[...]</code>) 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.</p>\n<h2>Benchmarks: one CLI to evaluate them all</h2>\n<p>v0.5.0 planted the flag on LeRobot as an evaluation hub for VLAs; v0.6.0 makes it the real deal with six new simulation benchmarks, all runnable through the same <code>lerobot-eval</code> CLI, each with a docs page, a Docker image, and a SmolVLA baseline checkpoint smoke-tested in CI:</p>\n<ul>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/libero_plus\">LIBERO-plus</a> 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.</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/robotwin\">RoboTwin 2.0</a> covers 50 bimanual manipulation tasks on SAPIEN with heavy domain randomization, and comes with <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/lerobot/robotwin_unified\">more than 100k ready-to-train trajectories</a> on the Hub.</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/robocasa\">RoboCasa365</a> spans 365 kitchen tasks in 2,500 procedurally generated kitchens on a mobile manipulator, the largest task surface in our lineup.</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/robocerebra\">RoboCerebra</a> evaluates long-horizon behavior with episodes that chain 3 to 6 sub-goals under language-grounded intermediate instructions, plus a 6,660-episode dataset.</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/robomme\">RoboMME</a> is a memory exam: can your policy count repetitions, track hidden objects, and imitate demonstrated procedures? 16 tasks across 4 memory suites.</li>\n<li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/vlabench\">VLABench</a> tests knowledge and reasoning in manipulation, from physics questions to composite tasks like brewing coffee end to end.</li>\n</ul>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-eval</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>policy</span>.path=lerobot/smolvla_robotwin <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>env</span>.type=robotwin <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>env</span>.task=beat_block_hammer <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>eval</span>.n_episodes=100<span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>eval</span>.batch_size=1</span>\n</span></span></code></pre>\n<p>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.</p>\n<p>Together with LIBERO, Meta-World, and NVIDIA IsaacLab-Arena, that makes nine benchmark families under one roof, and a new <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/adding_benchmarks\">Adding a New Benchmark guide</a> documents exactly how to plug in yours. Evaluation also got faster: parallel eval now defaults to async vectorized environments, benchmarked at up to 2x faster.</p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/benchmarks2.gif\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/benchmarks2.gif\" alt=\"LeRobot benchmarks\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h2>Training &amp; inference</h2>\n<h3><code>lerobot-rollout</code>: deployment gets its own CLI</h3>\n<p>Deploying a policy used to be a hack on top of <code>lerobot-record</code>. The new <code>lerobot-rollout</code> CLI makes deployment its own workflow, with pluggable strategies and inference backends (including Real-Time Chunking for slow compatible VLAs). The <code>base</code> strategy just runs the policy. <code>sentry</code> records continuously, rotating episodes and uploading to the Hub as it goes. <code>highlight</code> keeps a ring buffer and saves the last N seconds when you hit a key, so an interesting moment is never lost. <code>episodic</code> mirrors the classic episode/reset recording workflow. And <code>dagger</code> turns deployment into data collection.</p>\n<p>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 <code>intervention</code> flag, and the resulting dataset is ready for the next fine-tune:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-rollout</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>strategy</span>.type=dagger <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>policy</span>.path=<span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_policy <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>robot</span>.type=so100_follower <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>robot</span>.port=/dev/ttyACM0 <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>teleop</span>.type=so101_leader <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>teleop</span>.port=/dev/ttyACM1 <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>dataset</span>.repo_id=<span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/dagger_corrections <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">    --</span>dataset</span>.single_task=<span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Grasp the block<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span></span>\n</span></span></code></pre>\n<p>Deploy, collect corrections, fine-tune, repeat: the robot learning flywheel is now a CLI flag. Read the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/inference\">deployment docs</a>.</p>\n<h3>FSDP: train models bigger than your GPU</h3>\n<p>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 <code>model.safetensors</code> that loads like any other policy. You can even resume an FSDP run on a different number of GPUs. See the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/multi_gpu_training\">multi-GPU training docs</a>.</p>\n<h3>Cloud training with HF Jobs</h3>\n<p>No GPU? No problem. The exact same <code>lerobot-train</code> command now runs in the cloud by adding one flag:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">lerobot-train</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>dataset</span>.repo_id=<span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/so101_test <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>policy</span>.type=act <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>policy</span>.repo_id=<span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-variable syntax-shell\">$</span><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-begin syntax-shell\">{</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-variable syntax-other syntax-readwrite syntax-shell\">HF_USER</span></span><span class=\"syntax-meta syntax-group syntax-expansion syntax-parameter syntax-shell\"><span class=\"syntax-punctuation syntax-section syntax-expansion syntax-parameter syntax-end syntax-shell\">}</span></span>/my_policy <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  --</span>job</span>.target=a10g-small</span>\n</span></span></code></pre>\n<p>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 8x H200 with <code>--job.target</code> (compute is billed pay-as-you-go). <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/hardware_guide#hugging-face-jobs\">Check out the documentation</a></p>\n<h2>Codebase: leaner and cleaner</h2>\n<ul>\n<li><code>pip install lerobot</code> is now genuinely lightweight, with roughly 40% fewer base dependencies. Feature-scoped extras (<code>[training]</code>, <code>[core_scripts]</code>, <code>[evaluation]</code>, ...) cover the rest, and missing-dependency errors tell you exactly which extra to add. <strong>No longer need to install hardware-related dependencies if you only use LeRobot dataset ;)</strong></li>\n<li>Supported PyTorch moves to 2.7–2.11, with CUDA 12.8 wheels pinned out of the box for Linux <code>uv</code> installs. <code>--policy.dtype=bfloat16</code> now drives real mixed-precision training through Accelerate.</li>\n<li>A committed <code>uv.lock</code> is the authoritative dependency spec for CI, Docker, and development, and the docs include <code>uv</code> install routes for every step, down to picking your CUDA wheel with a single flag.</li>\n<li><code>--display_mode=foxglove</code> streams teleoperation, recording, and rollouts to <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://foxglove.dev\">Foxglove</a>, the visualization tool much of the robotics world already uses. It works with remote setups, and <code>lerobot-dataset-viz</code> gets scrubbable dataset playback.</li>\n<li>Pip-installable <code>lerobot_env_*</code> packages now self-register their environments. The plugin system covers all five component types: robots, cameras, teleoperators, policies, and envs.</li>\n<li>Keyboard controls during recording now work on Wayland, over SSH, on headless rigs, and on macOS without Accessibility permissions.</li>\n</ul>\n<blockquote>\n<p>Check the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/lerobot/releases\">release notes</a> for the full list and migration pointers for the breaking changes.</p>\n</blockquote>\n<p><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/LeLab.gif\"><picture class=\"article-picture article-picture-fallback\" style=\"--image-ratio:16 / 9\"><img src=\"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/LeLab.gif\" alt=\"LeLab a graphical user interface for LeRobot\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" referrerpolicy=\"no-referrer\" class=\"progressive-image\"></picture></a></p>\n<h2>Community &amp; ecosystem</h2>\n<ul>\n<li>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. <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/leLab\">Try it out!</a></li>\n<li>Isaac Teleop lets you teleoperate an SO-101 with a VR controller through <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/NVIDIA/IsaacTeleop\">NVIDIA's Isaac Teleop stack</a> over CloudXR/OpenXR, the result of a collaboration with the NVIDIA team. See the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/isaac_teleop\">documentation</a>.</li>\n<li>The new <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/hardware_guide\">compute hardware guide</a> 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 4x H100.</li>\n<li>The rewritten <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/lerobot/v0.6.0/bring_your_own_policies\">Adding a Policy guide</a> shows how to ship your own policy, in-tree or as a plugin package with no PR needed.</li>\n</ul>\n<h2>Final thoughts</h2>\n<p>Beyond these 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.</p>\n<p>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.</p>\n<p>Stay tuned for more to come 🤗 Get started <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/lerobot\">here</a>! – The LeRobot team ❤️</p>\n",
  "content_markdown": "This new release is about closing the robot learning loop: policies that imagine the future before acting, reward models that tell you when your robot succeeds, a deployment CLI that turns failures into training data, and six new simulation benchmarks to measure it all. It also brings depth sensing, VLM-powered dataset annotation, custom video encoding, cloud training on HF Jobs, and a much leaner install.\n\n## TL;DR\n\nLeRobot v0.6.0 introduces world model policies (VLA-JEPA, FastWAM, LingBot-VA) that learn to imagine the future, a wave of new VLAs (GR00T N1.7, MolmoAct2, EO-1, EVO1, Multitask DiT), and a new reward models API (Robometer, TOPReward). It ships six new simulation benchmarks unified under `lerobot-eval`, the `lerobot-rollout` CLI with DAgger-style human-in-the-loop corrections, FSDP training, and cloud training on HF Jobs. Datasets get depth support, an automatic language annotation pipeline, custom video encoding, and up to 2x faster data loading, all on top of a leaner installation.\n\n[![LeRobot 0.6.0](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/lerobot%20v0.6.0.png)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/lerobot%20v0.6.0.png)\n\n## Table of contents\n\n- [LeRobot v0.6.0: Imagine, Evaluate, Improve](https://huggingface.co/blog/lerobot-release-v060#lerobot-v060-imagine-evaluate-improve)\n  - [TL;DR](https://huggingface.co/blog/lerobot-release-v060#tldr)\n  - [Table of contents](https://huggingface.co/blog/lerobot-release-v060#table-of-contents)\n  - [World models: policies that imagine](https://huggingface.co/blog/lerobot-release-v060#world-models-policies-that-imagine)\n    - [VLA-JEPA](https://huggingface.co/blog/lerobot-release-v060#vla-jepa)\n    - [LingBot-VA](https://huggingface.co/blog/lerobot-release-v060#lingbot-va)\n    - [FastWAM](https://huggingface.co/blog/lerobot-release-v060#fastwam)\n  - [VLAs: the model zoo keeps growing](https://huggingface.co/blog/lerobot-release-v060#vlas-the-model-zoo-keeps-growing)\n    - [GR00T N1.7](https://huggingface.co/blog/lerobot-release-v060#gr00t-n17)\n    - [MolmoAct2](https://huggingface.co/blog/lerobot-release-v060#molmoact2)\n    - [EO-1](https://huggingface.co/blog/lerobot-release-v060#eo-1)\n    - [Multitask DiT](https://huggingface.co/blog/lerobot-release-v060#multitask-dit)\n    - [EVO1](https://huggingface.co/blog/lerobot-release-v060#evo1)\n  - [Reward models: knowing when your robot succeeds](https://huggingface.co/blog/lerobot-release-v060#reward-models-knowing-when-your-robot-succeeds)\n    - [Robometer](https://huggingface.co/blog/lerobot-release-v060#robometer)\n    - [TOPReward](https://huggingface.co/blog/lerobot-release-v060#topreward)\n  - [Datasets: faster loading, richer data](https://huggingface.co/blog/lerobot-release-v060#datasets-faster-loading-richer-data)\n    - [Your codec, your rules](https://huggingface.co/blog/lerobot-release-v060#your-codec-your-rules)\n    - [Depth support, end to end](https://huggingface.co/blog/lerobot-release-v060#depth-support-end-to-end)\n    - [Language annotations at scale](https://huggingface.co/blog/lerobot-release-v060#language-annotations-at-scale)\n    - [Up to 2x faster data loading](https://huggingface.co/blog/lerobot-release-v060#up-to-2x-faster-data-loading)\n  - [Benchmarks: one CLI to evaluate them all](https://huggingface.co/blog/lerobot-release-v060#benchmarks-one-cli-to-evaluate-them-all)\n  - [Training & inference](https://huggingface.co/blog/lerobot-release-v060#training--inference)\n    - [`lerobot-rollout`: deployment gets its own CLI](https://huggingface.co/blog/lerobot-release-v060#lerobot-rollout-deployment-gets-its-own-cli)\n    - [FSDP: train models bigger than your GPU](https://huggingface.co/blog/lerobot-release-v060#fsdp-train-models-bigger-than-your-gpu)\n    - [Cloud training with HF Jobs](https://huggingface.co/blog/lerobot-release-v060#cloud-training-with-hf-jobs)\n  - [Codebase: leaner and cleaner](https://huggingface.co/blog/lerobot-release-v060#codebase-leaner-and-cleaner)\n  - [Community & ecosystem](https://huggingface.co/blog/lerobot-release-v060#community--ecosystem)\n  - [Final thoughts](https://huggingface.co/blog/lerobot-release-v060#final-thoughts)\n\n## World models: policies that imagine\n\nThe robotics world is asking a big question: do world models actually help robot policies? v0.6.0 brings three policies to LeRobot to help answer that question. Each one learns to imagine the future as part of its training, and each takes a different path to keep that imagination affordable.\n\n### VLA-JEPA\n\nVLA-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 has to anticipate upcoming frames from the model's own actions. The trick is that the world model then disappears at inference, so you get 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:\n\n```bash\nlerobot-train \\\n  --policy.path=lerobot/VLA-JEPA-Pretrain \\\n  --dataset.repo_id=${HF_USER}/my_dataset \\\n  --policy.repo_id=${HF_USER}/my_finetuned_policy\n```\n\nCheck out the [VLA-JEPA documentation](https://huggingface.co/docs/lerobot/v0.6.0/vla_jepa) and the [paper](https://arxiv.org/abs/2602.10098) to learn more.\n\n### LingBot-VA\n\nLingBot-VA goes one step further: 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 even 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. Check out the [documentation](https://huggingface.co/docs/lerobot/v0.6.0/lingbot_va) and the [paper](https://arxiv.org/pdf/2601.21998) for the technical details.\n\n[![LingBot-VA imagined rollout vs real rollout](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/lingbot_va_viz_1.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/lingbot_va_viz_1.gif)\n\n### FastWAM\n\nFastWAM asks the question in its paper title: do world action models need test-time future imagination? It pairs a ~5B 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](https://huggingface.co/lerobot/fastwam_base), and read more in the [documentation](https://huggingface.co/docs/lerobot/v0.6.0/fastwam).\n\n## VLAs: the model zoo keeps growing\n\n### GR00T N1.7\n\nWe 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](https://huggingface.co/nvidia/GR00T-N1.7-3B) directly.\n\n> GR00T N1.7 replaces N1.5 in LeRobot. If you need N1.5, pin `lerobot==0.5.1`.\n\n### MolmoAct2\n\nMolmoAct2, 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:\n\n```bash\nlerobot-rollout \\\n  --policy.path=lerobot/MolmoAct2-SO100_101-LeRobot \\\n  --robot.type=so100_follower \\\n  --robot.port=/dev/ttyACM0 \\\n  --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}}' \\\n  --task=\"pick up the red cube\" --duration=30\n```\n\nInference fits in ~12 GB at bf16, and LoRA fine-tuning fits on a single 24 GB GPU. See the [MolmoAct2 documentation](https://huggingface.co/docs/lerobot/v0.6.0/molmoact2) for the full deployment guide.\n\n[![MolmoAct2 Zero-Shot in LeRobot](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/molmoact2_4.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/molmoact2_4.gif)\n\n### EO-1\n\nEO-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](https://huggingface.co/docs/lerobot/v0.6.0/eo1) and the [paper](https://arxiv.org/abs/2508.21112).\n\n### Multitask DiT\n\nThe Multitask Diffusion Transformer policy brings the TRI Large Behavior Models recipe to LeRobot: a ~450M-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](https://huggingface.co/docs/lerobot/v0.6.0/multi_task_dit).\n\n### EVO1\n\nVLAs don't have to be huge. EVO1 packs its policy into 0.77B 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](https://huggingface.co/docs/lerobot/v0.6.0/evo1) and the [paper](https://arxiv.org/abs/2511.04555).\n\n## Reward models: knowing when your robot succeeds\n\nSuccess detection and progress estimation are missing pieces in the robot learning loop, and v0.6.0 gives them a home. LeRobot now has a unified reward models API (`lerobot.rewards`), mirroring the policies API, with four reward models behind one interface - the HIL-SERL reward classifier, SARM, and two new additions:\n\n### Robometer\n\nRobometer is a pretrained, general-purpose reward model: point [lerobot/Robometer-4B](https://huggingface.co/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](https://arxiv.org/abs/2603.02115)).\n\n[![LeRobot Robometer](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/rm_robometer.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/rm_robometer.gif)\n\n### TOPReward\n\nTOPReward 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.\n\nBoth 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](https://huggingface.co/docs/lerobot/v0.6.0/robometer) and [TOPReward](https://huggingface.co/docs/lerobot/v0.6.0/topreward) docs.\n\n## Datasets: faster loading, richer data\n\n### Your codec, your rules\n\nRecording 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:\n\n```bash\nlerobot-edit-dataset \\\n    --repo_id ${HF_USER}/my_dataset \\\n    --operation.type reencode_videos \\\n    --operation.rgb_encoder.vcodec h264 \\\n    --operation.rgb_encoder.crf 23\n```\n\nFull details in the [video encoding documentation](https://huggingface.co/docs/lerobot/v0.6.0/video_encoding_parameters).\n\n### Depth support, end to end\n\nPlug 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.\n\n[![LeRobot Depth Camera](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/depth2.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/depth2.gif)\n\n### Language annotations at scale\n\nYour 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:\n\n```bash\nlerobot-annotate \\\n    --repo_id=${HF_USER}/my_dataset \\\n    --new_repo_id=${HF_USER}/my_dataset_annotated \\\n    --vlm.model_id=Qwen/Qwen2.5-VL-7B-Instruct \\\n    --push_to_hub=true\n```\n\nA 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](https://huggingface.co/docs/lerobot/v0.6.0/annotation_pipeline) to learn more.\n\n### Up to 2x faster data loading\n\nTraining on video datasets is now up to ~2x faster out of the box: multi-camera frames decode in parallel, dataloader workers ship compact uint8 frames (4x 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.\n\n## Benchmarks: one CLI to evaluate them all\n\nv0.5.0 planted the flag on LeRobot as an evaluation hub for VLAs; v0.6.0 makes it the real deal with six new simulation benchmarks, all runnable through the same `lerobot-eval` CLI, each with a docs page, a Docker image, and a SmolVLA baseline checkpoint smoke-tested in CI:\n\n- [LIBERO-plus](https://huggingface.co/docs/lerobot/v0.6.0/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.\n- [RoboTwin 2.0](https://huggingface.co/docs/lerobot/v0.6.0/robotwin) covers 50 bimanual manipulation tasks on SAPIEN with heavy domain randomization, and comes with [more than 100k ready-to-train trajectories](https://huggingface.co/datasets/lerobot/robotwin_unified) on the Hub.\n- [RoboCasa365](https://huggingface.co/docs/lerobot/v0.6.0/robocasa) spans 365 kitchen tasks in 2,500 procedurally generated kitchens on a mobile manipulator, the largest task surface in our lineup.\n- [RoboCerebra](https://huggingface.co/docs/lerobot/v0.6.0/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.\n- [RoboMME](https://huggingface.co/docs/lerobot/v0.6.0/robomme) is a memory exam: can your policy count repetitions, track hidden objects, and imitate demonstrated procedures? 16 tasks across 4 memory suites.\n- [VLABench](https://huggingface.co/docs/lerobot/v0.6.0/vlabench) tests knowledge and reasoning in manipulation, from physics questions to composite tasks like brewing coffee end to end.\n\n```bash\nlerobot-eval \\\n  --policy.path=lerobot/smolvla_robotwin \\\n  --env.type=robotwin \\\n  --env.task=beat_block_hammer \\\n  --eval.n_episodes=100 --eval.batch_size=1\n```\n\nSimulator 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.\n\nTogether with LIBERO, Meta-World, and NVIDIA IsaacLab-Arena, that makes nine benchmark families under one roof, and a new [Adding a New Benchmark guide](https://huggingface.co/docs/lerobot/v0.6.0/adding_benchmarks) documents exactly how to plug in yours. Evaluation also got faster: parallel eval now defaults to async vectorized environments, benchmarked at up to 2x faster.\n\n[![LeRobot benchmarks](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/benchmarks2.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/benchmarks2.gif)\n\n## Training & inference\n\n### `lerobot-rollout`: deployment gets its own CLI\n\nDeploying 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.\n\nWith 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:\n\n```bash\nlerobot-rollout \\\n    --strategy.type=dagger \\\n    --policy.path=${HF_USER}/my_policy \\\n    --robot.type=so100_follower \\\n    --robot.port=/dev/ttyACM0 \\\n    --teleop.type=so101_leader \\\n    --teleop.port=/dev/ttyACM1 \\\n    --dataset.repo_id=${HF_USER}/dagger_corrections \\\n    --dataset.single_task=\"Grasp the block\"\n```\n\nDeploy, collect corrections, fine-tune, repeat: the robot learning flywheel is now a CLI flag. Read the [deployment docs](https://huggingface.co/docs/lerobot/v0.6.0/inference).\n\n### FSDP: train models bigger than your GPU\n\nRobot 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](https://huggingface.co/docs/lerobot/v0.6.0/multi_gpu_training).\n\n### Cloud training with HF Jobs\n\nNo GPU? No problem. The exact same `lerobot-train` command now runs in the cloud by adding one flag:\n\n```bash\nlerobot-train \\\n  --dataset.repo_id=${HF_USER}/so101_test \\\n  --policy.type=act \\\n  --policy.repo_id=${HF_USER}/my_policy \\\n  --job.target=a10g-small\n```\n\nLeRobot 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 8x H200 with `--job.target` (compute is billed pay-as-you-go). [Check out the documentation](https://huggingface.co/docs/lerobot/v0.6.0/hardware_guide#hugging-face-jobs)\n\n## Codebase: leaner and cleaner\n\n- `pip install lerobot` is 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 ;)**\n- Supported PyTorch moves to 2.7–2.11, with CUDA 12.8 wheels pinned out of the box for Linux `uv` installs. `--policy.dtype=bfloat16` now drives real mixed-precision training through Accelerate.\n- A committed `uv.lock` is the authoritative dependency spec for CI, Docker, and development, and the docs include `uv` install routes for every step, down to picking your CUDA wheel with a single flag.\n- `--display_mode=foxglove` streams teleoperation, recording, and rollouts to [Foxglove](https://foxglove.dev), the visualization tool much of the robotics world already uses. It works with remote setups, and `lerobot-dataset-viz` gets scrubbable dataset playback.\n- Pip-installable `lerobot_env_*` packages now self-register their environments. The plugin system covers all five component types: robots, cameras, teleoperators, policies, and envs.\n- Keyboard controls during recording now work on Wayland, over SSH, on headless rigs, and on macOS without Accessibility permissions.\n\n> Check the [release notes](https://github.com/huggingface/lerobot/releases) for the full list and migration pointers for the breaking changes.\n\n[![LeLab a graphical user interface for LeRobot](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/LeLab.gif)](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/lerobot-blog/release-v0.6.0/gifs/LeLab.gif)\n\n## Community & ecosystem\n\n- 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!](https://github.com/huggingface/leLab)\n- Isaac Teleop lets you teleoperate an SO-101 with a VR controller through [NVIDIA's Isaac Teleop stack](https://github.com/NVIDIA/IsaacTeleop) over CloudXR/OpenXR, the result of a collaboration with the NVIDIA team. See the [documentation](https://huggingface.co/docs/lerobot/v0.6.0/isaac_teleop).\n- The new [compute hardware guide](https://huggingface.co/docs/lerobot/v0.6.0/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 4x H100.\n- The rewritten [Adding a Policy guide](https://huggingface.co/docs/lerobot/v0.6.0/bring_your_own_policies) shows how to ship your own policy, in-tree or as a plugin package with no PR needed.\n\n## Final thoughts\n\nBeyond these 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.\n\nWe 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.\n\nStay tuned for more to come 🤗 Get started [here](https://github.com/huggingface/lerobot)! – The LeRobot team ❤️\n",
  "dateCreated": "2026-10-19T01:26:53.998049939+00:00",
  "date_created": "2026-07-07T00:00:00+00:00",
  "date_modified": "2026-07-07T00:00:00+00:00",
  "date_published": "2026-07-07T00:00:00+00:00",
  "description": "This new release is about closing the robot learning loop: policies that imagine the future before acting, reward models that tell you when your robot succeeds, a deployment CLI that turns failures into training data, and six new…",
  "external_url": "https://huggingface.co/blog/lerobot-release-v060",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/huggingface-co/2026/07/2026-07-07-lerobot-v0-6-0-imagine-evaluate-improve.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/huggingface-co/2026/07/2026-07-07-lerobot-v0-6-0-imagine-evaluate-improve.md"
  },
  "id": "urn:aggr:item:104db3252b5de735a7f1599ec66b1e2cc9f0e0fd",
  "isBasedOn": {
    "@id": "https://huggingface.co/blog/lerobot-release-v060"
  },
  "mainEntity": {
    "@id": "https://huggingface.co/blog/lerobot-release-v060",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/huggingface-co/2026-07-07-lerobot-v0-6-0-imagine-evaluate-improve/#webpage"
    },
    "dateModified": "2026-07-07T00:00:00+00:00",
    "datePublished": "2026-07-07T00:00:00+00:00",
    "headline": "LeRobot v0.6.0: Imagine, Evaluate, Improve",
    "image": {
      "@type": "ImageObject",
      "caption": null,
      "height": 90,
      "url": "https://huggingface.co/blog/assets/lerobot-release-v060/thumbnail.png",
      "width": 160
    },
    "timeRequired": "PT12M",
    "url": "https://huggingface.co/blog/lerobot-release-v060",
    "wordCount": 2583
  },
  "name": "Archived snapshot: LeRobot v0.6.0: Imagine, Evaluate, Improve",
  "preview": {
    "alt": null,
    "color": null,
    "height": 90,
    "placeholder": {
      "data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
      "hash": ""
    },
    "url": "https://huggingface.co/blog/assets/lerobot-release-v060/thumbnail.png",
    "width": 160
  },
  "reading_minutes": 12,
  "replicated_at": null,
  "source": "huggingface-co",
  "source_name": "Hugging Face - Blog",
  "summary": null,
  "tags": [],
  "temporalCoverage": "2026-10-19T01:26:53.998049939+00:00",
  "title": "LeRobot v0.6.0: Imagine, Evaluate, Improve",
  "url": "https://aggr.aymericbeaumet.com/items/huggingface-co/2026-07-07-lerobot-v0-6-0-imagine-evaluate-improve/",
  "word_count": 2583
}