README
LeRobot Annotate
A lightweight web UI for annotating LeRobot datasets with subtask segments and high-level dialogue. It works with any LeRobot dataset (local or Hugging Face Hub) and exports updated parquet files ready for training.
What it produces
meta/subtasks.parquetwith unique subtasks.meta/tasks_high_level.parquetwith high-level prompts/responses.- Updated
data/chunk-*/file-*.parquetfiles with:subtask_indextask_index_high_level
- Annotation state saved to
meta/lerobot_annotations.jsonfor easy resume.
Local usage
cd /admin/home/jade_choghari/lerobot-annotate
python -m venv .venv
source .venv/bin/activate
pip install -r backend/requirements.txt
uvicorn backend.app:app --reload --port 7860
Open http://localhost:7860 in your browser.
Workflow
- Connect dataset
- For HF datasets: enter repo ID (e.g.
lerobot/your-dataset). - For local datasets: enter the dataset root path.
- For HF datasets: enter repo ID (e.g.
- Select an episode from the left list to open its video.
- Add subtask segments with start/end timestamps and labels.
- Add high-level segments with user prompt + robot response (optional skill/scenario/response tags).
- Save episode to persist annotations.
- Export to write parquet updates and dataset metadata.
Hugging Face Spaces (Docker)
- Create a new Space and select Docker.
- Point it to this repository.
- The Space will build the provided
Dockerfileand runuvicornon port7860.
Optional environment variables:
LEROBOT_ANNOTATE_CACHE: where HF datasets are downloaded (default/tmp/lerobot_annotate_cache).LEROBOT_ANNOTATE_EXPORT: where exports are written (default/tmp/lerobot_annotate_exports).
Notes
- The tool only downloads
meta/for Hub datasets on load. Video files are fetched on demand when you open an episode. - Exports copy
meta/anddata/into a new output directory. Videos are symlinked by default (toggle “Copy videos” to duplicate them).