Skip to content

CLI Commands

The CLI binary is kino. The gRPC server binary is kino-serve.

Terminal window
kino <COMMAND>

Generate synthetic .kdb files for smoke tests and benchmarks.

Terminal window
kino create-test [PATH] \
-n <NUM_EPISODES> \
--frames <FRAMES> \
--images \
--compress <QUALITY>
OptionDefaultDescription
PATHtest.kdbOutput path
-n, --num-episodes10Number of episodes
--frames50Frames per episode
--imagesfalseAdd fake 64x64 RGB camera frames
--compressnoneJPEG quality 1-100

Convert external datasets into .kdb.

Terminal window
kino ingest <SRC> \
--output output.kdb \
--format hdf5 \
--embodiment franka \
--task "open drawer" \
--fps 20.0 \
--max-episodes 100 \
--compress 85
OptionDefaultDescription
SRCrequiredSource file or directory
-o, --outputoutput.kdbOutput .kdb path
-F, --formathdf5hdf5, lerobot, rlds, or tfrecord
-e, --embodimentunknownRobot embodiment
-t, --taskinferred when possibleTask description
--fps10.0Control frequency
--max-episodesnoneLimit ingest
--compressnoneJPEG compression quality

Print a database summary.

Terminal window
kino info data.kdb
kino info data.kdb --episodes
OptionDescription
--episodesInclude per-episode table

Print structural information, including file version, index offset, field dimensions, cameras, and byte budget.

Terminal window
kino schema data.kdb

Use this when you need to answer “what is inside this file?” before training.

Check file consistency and decode every episode.

Terminal window
kino validate data.kdb
kino validate data.kdb --verbose

Validation checks include:

  • header/index episode count consistency,
  • total frame count consistency,
  • metadata decode,
  • full episode decode,
  • action/state dimensions,
  • NaN/Inf warnings,
  • image shape consistency,
  • terminal-frame warning.

Run a KQL filter.

Terminal window
kino query data.kdb "success = true AND num_frames > 50"
kino query data.kdb "task CONTAINS 'pick'" --limit 20
OptionDescription
--limitMaximum results to print

Inspect weighted virtual mixtures.

Terminal window
kino mix --source bridge.kdb:0.4 --source aloha.kdb:0.6
kino mix --source bridge.kdb:0.4 --source aloha.kdb:0.6 --sample 1000
OptionDefaultDescription
-s, --sourcerequiredpath:weight, repeatable
--seed42Sampling seed
--samplenoneSample N episodes and print distribution

Write multiple .kdb inputs into one output.

Terminal window
kino merge lift.kdb pusht.kdb --output combined.kdb
kino merge lift.kdb pusht.kdb --output successful.kdb --filter "success = true"
OptionDefaultDescription
inputsrequiredInput .kdb files
-o, --outputmerged.kdbOutput path
-F, --filternoneOptional KQL filter

Export a .kdb file back to simple interchange formats.

Terminal window
kino export data.kdb --output export/ --format numpy
kino export data.kdb --output metadata/ --format json
FormatOutput
numpyEpisode directories with actions.bin, states.bin, rewards.bin, camera .bin files, and JSON metadata
jsonMetadata-only JSON

Run a synthetic benchmark for write, open, sequential read, random read, metadata read, and KQL.

Terminal window
kino bench -n 500 --frames 50
kino bench -n 100 --frames 20 --images

The benchmark writes to /tmp/kinodb_bench.kdb and removes it at the end.

Start a gRPC server.

Terminal window
kino-serve data.kdb --port 50051
kino-serve \
--source bridge.kdb:0.4 \
--source aloha.kdb:0.6 \
--port 50051
OptionDefaultDescription
filenoneSingle .kdb file
-s, --sourcenoneWeighted source, repeatable
-p, --port50051Listen port
--bind0.0.0.0Bind address
--seed42Mixture sampling seed