Four commands —Documentation Index
Fetch the complete documentation index at: https://docs.almond.bot/llms.txt
Use this file to discover all available pages before exploring further.
teleop, gravity-comp, collect-data, and run-policy — expose their entire configuration through draccus instead of a fixed set of argparse flags. Every field of the underlying config dataclass is reachable from the command line, and the whole config can also be loaded from a file.
The remaining commands (can.*, motor.*, zed.*, tune.*) still use plain argparse flags and are unaffected by anything on this page.
Two ways to set any field
Dotted CLI overrides
Override any nested field with
--dotted.path VALUE, e.g. --axol.left.elbow.kp 60.Whole-config file
Load a complete JSON/YAML config with
--config_path run.json, then layer CLI overrides on top.Dotted overrides
Each command is backed by a config dataclass (for exampleTeleopCmdConfig wraps the full AxolConfig). Nest into it with dots:
--axol.left.elbow.kp leaves every other per-joint gain at its tuned default.
Config files
--config_path file → CLI flags (later wins), so flags always override file values, which override the built-in defaults.
Field-name conventions
| Convention | Form | Example |
|---|---|---|
| Field names use underscores, not dashes | --field_name | --log_level DEBUG, --teleop_hz 120 |
| Nested fields are dot-separated | --a.b.c | --axol.left.gripper.torque_limit 0.7 |
None is written null | --field null | --left_channel null (disable the left arm) |
| Lists use bracket syntax | [a,b,c] | --free_joints [SHOULDER_1,WRIST_3] |
| Booleans take an explicit value | --flag true | --push_to_hub true |
Booleans are value-taking under draccus (
--push_to_hub true, not a bare --push_to_hub). The one exception is teleop’s --sim, which is normalized so a bare --sim works as well as --sim true.Validation
Choice fields (e.g.--log_level, --policy_type, --aggregate_fn) are validated against their allowed values, and missing required fields or type mismatches are reported as a clean usage error rather than a traceback.
axol <command> --help lists only the common fields (top-level options plus stiffness and gripper limits) to keep the output readable — the deeply-nested per-joint gains are hidden but remain fully overridable with their dotted paths (e.g. --axol.left.elbow.kp). This page is the complete reference for the override syntax.