See it in action
Here is one real demonstration — a bimanual toast-plating task — re-rendered by Augment from a single instruction. Every camera of the episode is transformed together, and the robot’s motion and joint trajectories are preserved unchanged. Only the scene changes.Prompt”Replace the white tabletop with warm walnut wood, keep the same lighting and objects.”
- Left
- Right
- Left wrist
- Right wrist
Original
Augmented
Original teleoperation capture versus the Augment render — same frame, same motion, new environment. One prompt produced all four camera views, each with matching joint trajectories ready to train on.
Create a run
One call starts a run. Give it the source dataset, your instructions, the episode count, and where the results should go.Request body
string
required
The Hugging Face LeRobot dataset to augment, e.g.
lerobot/pusht.string
required
Plain-language description of the visual change to apply to every episode.
integer
required
Number of augmented episodes to generate. Must be between
1 and 50.string
required
Where results are delivered.
download keeps them on Kite for you to fetch; huggingface pushes the finished dataset to your account.string
Required when
output.type is huggingface — the destination repo, e.g. your-org/pusht-marble.id, immediately:
Response — 202 Accepted
400 parameter_invalid— a malformed field, named inparam400 episode_limit_exceeded—episode_countabove 50402 insufficient_tokens— not enough credits400 huggingface_not_connected— forhuggingfaceoutput, when you haven’t linked a Hugging Face token in the dashboard
Idempotency
Pass a uniqueIdempotency-Key header to make retries safe. A repeated request with the same key returns the original run instead of starting a duplicate — so a dropped connection or a CI retry never double-charges you.
Reusing a key with a different payload returns
409 Conflict — the key is bound to the first request body it saw.Track progress
Episodes are generated and saved incrementally. Poll the run to watch it move through its lifecycle, with a liveprogress value and a human-readable status_message.
status field moves through:
Get your dataset
Whenstatus is succeeded, a download run exposes its files under output.files. Fetch each one, preserving its path, to reconstruct a standard LeRobot Parquet dataset on disk.
Response — output.files
kite augment download CLI command does this for you — see the CLI docs. If you chose huggingface output instead, output.url links the dataset pushed to your account.
Each
url is either a short-lived signed storage URL or an authenticated /v1/augmentations/:id/files/:path proxy path. Send your Authorization header when fetching and handle both — the proxy path needs the key; the signed URL ignores it.The result is a standard LeRobot v3.0 dataset: Parquet tables for states and actions plus MP4 camera video. It’s the same format Kite training accepts, so you can train on it with no conversion. No proprietary output format, no lock-in.