CLI reference

EVA exposes one command — eva --config <path.py> [--web-port N] — which loads a config and starts the web console.

Prerequisites

Example invocation

bash
eva --config configs/01_deploy/dual_agilex_AGILEX/openpi_qpos.py --web-port 8080
#            └─ preset under configs/                                  └─ any free port

Swap dual_agilex_AGILEX for your robot's folder. On success the log prints Console web server started on port 8080; open http://localhost:8080 and continue in the Web console.

Joint vs end-effector control is selected by config file (openpi_qpos.py vs openpi_eef.py) — see Action spaces.

Flags

FlagDefaultMeaning
--configrequiredPath to a .py config, e.g. configs/01_deploy/dual_agilex_AGILEX/openpi_qpos.py.
--web-port8080Port the web console binds.
There is no --mode flag. The operating mode is selected in the console (see below).

Operating modes

ModeMeaning
selectIdle; waiting for a mode.
realDrive a physical robot.
simDrive a simulated robot.
manualMove the robot from console controls.
stepSingle-chunk stepping for inspection.
collectRecord episodes — see Recording.

Config files, not flags

Behaviour is selected by config file, not by command-line switches. Configs are Python files under configs/, grouped by purpose: 01_deploy/ (real-robot), 00_openloop/ (offline replay), 03_evaluation/ (scored runs).

Configs share defaults via a top-level _base_ line (start from a parent, override a few values). configs/00_base/defaults.py holds the common defaults; presets only state diffs. Copy a nearby preset rather than editing defaults.py. See Configuration.

Edit a config only when adapting EVA to a new robot — see Add a Robot.