Skip to main content
LeRobot uses dataclass-based configuration with the draccus library for type-safe, hierarchical configs.

Overview

Configuration in LeRobot:
  • Type-safe dataclass configurations
  • Command-line argument parsing
  • YAML file support
  • Hierarchical config composition
  • Validation and defaults

Configuration Classes

TrainPipelineConfig

Main configuration for training pipelines.
Location: src/lerobot/configs/train.py
PolicyConfig
required
Policy configuration (ACTConfig, DiffusionConfig, etc.).
DatasetConfig
required
Dataset configuration.
int
default:"100000"
Number of training steps.
int
default:"32"
Batch size per device.
OptimizerConfig
Optimizer configuration.
LRSchedulerConfig
Learning rate scheduler configuration.
WandBConfig
Weights & Biases logging configuration.
int
default:"10000"
Evaluation frequency in steps.
int
default:"10000"
Checkpoint save frequency in steps.

EvalPipelineConfig

Configuration for evaluation pipelines.
Location: src/lerobot/configs/eval.py

PolicyConfig

Base class for policy configurations.
All policy configs inherit from this base.

DatasetConfig

Dataset loading configuration.

OptimizerConfig

Optimizer configuration.

Command-Line Interface

LeRobot uses draccus for automatic CLI generation:
Run with:

YAML Configuration Files

Create reusable configuration files:
Load with:
Or override specific values:

Programmatic Usage

Create Config Programmatically

Load Config from YAML

Save Config to YAML

Validate Config

Convert Config to Dict

Environment Variables

LeRobot respects these environment variables:
str
default:"~/.cache/huggingface/lerobot"
Root directory for LeRobot data (datasets, calibrations).
str
GPU devices to use (e.g., 0,1,2,3).
str
Weights & Biases API key.
str
Hugging Face API token for private datasets/models.

Configuration Best Practices

  1. Use YAML for Experiments: Store configs in version control
  2. Type Safety: Leverage dataclass type checking
  3. Defaults: Provide sensible defaults
  4. Validation: Implement custom validation in __post_init__
  5. Modularity: Compose configs from smaller pieces

Example Custom Config

See Also