CLI reference
EVA exposes one command — eva --config <path.py> [--web-port N] — which loads a config and starts the web console.
Prerequisites
evaonPATH(see Installation).- Run from the project root: example config paths like
configs/01_deploy/...are relative. Otherwise pass an absolute path. - A deploy config (e.g.
openpi_qpos.py) expects the robot, its ROS bridge, and the policy server to already be up. Without hardware, use an open-loop preset (see Config files, not flags) — it needs neither.
Example invocation
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
| Flag | Default | Meaning |
|---|---|---|
--config | required | Path to a .py config, e.g. configs/01_deploy/dual_agilex_AGILEX/openpi_qpos.py. |
--web-port | 8080 | Port the web console binds. |
--mode flag. The operating mode is selected in the console (see below).Operating modes
| Mode | Meaning |
|---|---|
select | Idle; waiting for a mode. |
real | Drive a physical robot. |
sim | Drive a simulated robot. |
manual | Move the robot from console controls. |
step | Single-chunk stepping for inspection. |
collect | Record 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.
- Joint vs end-effector —
openpi_qpos.pyfor joint angles,openpi_eef.pyfor EEF. - Offline replay — an open-loop preset such as
configs/00_openloop/dual_agilex_AGILEX_openloop.py; no ROS, no policy server. - Evaluation — a preset such as
configs/03_evaluation/dual_agilex_AGILEX_eval.py; EVAL and RESULT enable automatically.