CLI reference
There are no subcommands. Everything the engine does is controlled by the TOML config and driven through the HTTP API. The binary just starts the server.
USAGE:
xerj [OPTIONS]
OPTIONS:
-c, --config <PATH> Path to the TOML config file
[default: ./xerj.toml]
-d, --data-dir <PATH> Override [server] data_dir
-b, --bind <ADDR> Override [server] bind_address
[default: 127.0.0.1 — loopback only]
-k, --insecure Disable TLS and API-key auth (dev only)
-h, --help Print help
-V, --version Print version and build commit
--config / -c
Path to the TOML config. Defaults to ./xerj.toml. The XERJ_CONFIG environment variable is consulted only if this flag is absent.
--data-dir / -d
Convenience override for [server] data_dir. Useful for ephemeral dev runs and for pointing XERJ at a tmpfs when you just want to burn something down after.
--bind / -b
Interface to bind every listener to; overrides [server] bind_address. Env: XERJ_BIND_ADDRESS. The default is 127.0.0.1 — loopback only. Pass 0.0.0.0 (or a specific address) to expose the node; with TLS off that also needs server.allow_insecure_network_bind = true (env XERJ_ALLOW_INSECURE_NETWORK_BIND), because every request, API key included, would cross the network in cleartext. The value must be an IPv4 or IPv6 literal; host names are not resolved, and one is refused at startup before the data directory is created.
--insecure / -k
Disables TLS and API-key auth. Dev only. It does not unlock a network bind: clearing tls.enabled is exactly what makes a non-loopback bind_address refuse to start, so --insecure on 0.0.0.0 exits non-zero unless the exposure is declared.
--help / -h
Prints the synopsis above and exits.
--version / -V
Prints the version, git SHA, and build date. Useful in oncall pages: xerj -V | head -1.
Source · engine/crates/xerj-server/src/main.rs