Command line
The project exposes a small command-line interface for common developer tasks:
- Run the CLI with:
python -m simulusion.cli <command>; after installing the package an installed entrypoint is available assimulusion <command>. Tests and plugin integrations may invoke the top-level Click app (simulusion.cli.app) or the console-script callable (simulusion.cli.run). - The CLI uses Click directly and lazy imports to keep startup fast; some commands require optional dependencies (listed below).
Commands
-
version- Print the installedsimulusionpackage version (or "unknown" if the package cannot be imported). -
envs list- List built-in environment backends and example environment ids. This reads the environment catalog fromsimulusion.catalogif available. -
datasets list [PATH]- List dataset entries underPATH. IfPATHis not provided the command usesSIMULUSION_HOMEor defaults to~/.simulusion. -
datasets convert <src> [--dest-format video] [--out-dir DIR]- Convert a simple dataset file into another format. The initial implementation supports converting HDF5 (.h5) or NumPy (.npz/.npy) datasets into MP4 video files (one file per episode) when--dest-format videois used. Output files are written to the specified--out-diror./converted_datasetsby default. -
collect --env <ENV_ID> [--steps N] [--out PATH] [--random-policy]- Run a (random) policy for a number of environment steps and save interactions to a compressed.npzwith keysobservations,actions,rewards,dones. -
datasets import lerobot <source> <out_dir>- Convert a local LeRobot dataset folder into an episode folder, the format every training task reads. Options:--camera,--all-cameras,--episodes 0-9. See Episodes and datasets. -
datasets info <path>- Summarise an episode folder: episodes, frames, action space, cameras, observations, source. -
train [task] [--config FILE] [--print-config] [key=value ...]- Train on the shared Trainer from a run config.taskis any registered training task (simulusion train --help-taskslists them), optional when the config names one;--configtakes a YAML file or the name of a shipped config insimulusion/configs/runs/; every field can be overridden with dottedkey=valuepairs. See One Trainer for Every Model. -
train <model> --legacy [extra args...] [--inproc]- Launch a family's own, older training entrypoint (python -m simulusion.training.train_<name>), forwarding the extra args;--inproccalls itsmain()in-process instead of spawning a subprocess. Commands written for those entrypoints (a--configfile withouttask:, or flat overrides such astotal_epochs=100) are recognised and still run there. -
eval --model <NAME> --checkpoint <PATH> [options]- Evaluate a trained world model. Generative models (diamond) are scored with FID, FVD, LPIPS, and PSNR, comparing real trajectories (collected from the environment) against generated ones.jepahas no rollout to score, so it runs the paper's frozen-encoder linear probe instead and takes--root-pathrather than--game; options that belong to the other model are rejected rather than ignored. See Evaluation and benchmarks for details and interpretation.Key options:
--model,-m— model type (currentlydiamond)--checkpoint,-c— path to checkpoint--game,-g— environment name--num-videos— number of trajectories (default 256)--metrics— comma-separated metrics, e.g.fid,fvd,lpips,psnr--record PATH— save real and generated videos--output,-o— save results JSON
-
play --model <NAME> --checkpoint <PATH> [options]- Interactively play inside a trained world model. Two modes toggled byTAB: REAL (env stepping) and DREAM (model imagination). Press arrow keys / WASD to override the agent's actions. Withdiamond, pressSin DREAM mode to save the last dream frames asdream_<timestamp>.mp4in the current directory, with the actions and predicted rewards indream_<timestamp>.json.Key options:
--model,-m— model type (currentlydiamond)--checkpoint,-c— path to checkpoint--game,-g— environment name--deterministic/--stochastic— action selection (default deterministic)--record PATH— save gameplay video--record-fps— video framerate (default 20)--dream-buffer N— dream framesSsaves (diamondonly; default 50, 0 turns it off)
-
models list- Print the known training entrypoints and (when available) exported model names fromsimulusion.models.
Environment / optional dependencies
-
SIMULUSION_HOME - Directory used by
datasets listwhen no path is provided. -
The following commands require optional packages which may not be installed in all environments:
collect: requiresgym/gymnasiumandnumpy.datasets convert: requiresh5py,numpyand video helpers used by the repository.
Notes and examples
- Example: show version
simulusion version- Example: list environments
simulusion envs list- Example: list datasets in default location
simulusion datasets list- Example: convert a local HDF5 dataset to MP4 files
simulusion datasets convert data/my_dataset.h5 --out-dir /tmp/videos- Example: collect 1000 steps from Pong and save as
pong.npz
simulusion collect --env ALE/Pong-v5 --steps 1000 --out pong.npz- Example: train Genie on a folder of clips with the shared Trainer, in bf16
simulusion train genie data.path=data/clips trainer.precision=bf16 trainer.max_steps=20000- Example: repeat a finished run exactly
simulusion train --config runs/genie_20261020-120000/config.yaml- Example: import a LeRobot dataset and train Dreamer's world model on it
simulusion datasets import lerobot datasets/pusht data/pusht
simulusion train --config dreamer-wm data.path=data/pusht- Example: run IRIS training with a library YAML config and a dot-list override
simulusion train iris --config simulusion/configs/experiments/iris.yaml total_epochs=100- Example: inspect a composed JEPA config without starting training
simulusion train jepa --config simulusion/configs/experiments/jepa.yaml optimization.epochs=50 --print-config- Example: launch a DIAMOND preset from the unified training CLI
simulusion train diamond --config simulusion/configs/experiments/diamond.yaml preset=small seed=3- Example: evaluate a DIAMOND checkpoint
simulusion eval --model diamond --checkpoint checkpoints/diamond/checkpoint.pt --game Breakout-v5- Example: linear-probe an I-JEPA checkpoint
simulusion eval --model jepa --checkpoint results/jepa/jepa_run-latest.pth.tar \
--root-path /data/imagenet --model-name vit_base --output probe.json- Example: interactively play inside a DIAMOND world model
simulusion play --model diamond --checkpoint checkpoints/diamond/checkpoint.pt --game Breakout-v5 --record gameplay.mp4Maintaining this page
If you add or rename CLI commands in simulusion.cli, update this page with the
new usage, examples, and any additional optional dependencies.
Updated Oct 31, 2026