CLI¶
Installed as et.
et serve¶
Start the native development build's read-only local Web viewer:
--root is required and sets the directory picker's starting location, not an
access sandbox. The browser restores previously added runs on reload, but no
recursive experiment discovery occurs. Use Add run to select a directory containing one run's
logs, and add further directories individually for comparison. The picker can
access any server-readable directory; each page keeps its own added runs.
The default listener is 0.0.0.0:9110. Each start prints the saved access
key, generated randomly on first use. Enter it once in the viewer's login form;
login persists for 30 days across reloads and server restarts. --auth-file
overrides the private per-port state file in the user state directory.
Experiment APIs require a session
cookie, or HTTP Basic (et plus the key) for scripted clients. The login shell
is public. HTTP is unencrypted;
use a trusted network, HTTPS reverse proxy, or --host 127.0.0.1 with SSH.
See the viewer guide for run comparison, live refresh, rotation,
data representation, and remote access through SSH.
et history¶
Print a run's recorded history.
et history tracker/jsonl/demo/run-1
et history tracker/jsonl/demo/run-1 -n 50 --metrics loss,lr
et history tracker/jsonl/demo/run-1 --step-range 100:200 --format json
et history tracker/jsonl/demo/run-1 -n -1 --format csv > run.csv
et history runs/llm/sft-1 --stream data
| Option | Default | Meaning |
|---|---|---|
-n |
20 | number of steps, -1 for all |
--metrics |
all | comma-separated names |
--step-range |
— | start:end, end exclusive; either side may be empty |
--stream |
the unnamed producer | which stream to read |
--format |
table |
table, json or csv |
The argument is a run directory or a metrics.jsonl file.
et trace¶
Export recorded spans as a Chrome Trace, for
Perfetto or chrome://tracing.
et trace runs/llm/sft-1 # every stream -> trace.json
et trace runs/llm/sft-1 -o pipeline.json
et trace runs/llm/sft-1 --stream data # one stream
et trace runs/llm/sft-1 --stream default,data # several
et trace runs/llm/sft-1 --step-range 100:200 # a slice of the run
| Option | Default | Meaning |
|---|---|---|
-o, --output |
trace.json |
where to write |
--stream |
every stream | comma separated; default is the unnamed one |
--step-range |
all | start:end, end exclusive |
et rules explain¶
Show how an expression parses, and what it references. Useful when precedence is in question:
The rendered condition is fully parenthesised, so there is nothing left to misread.
et rules test¶
Replay a rule over recorded history to tune a threshold before trusting it:
-n limits the replay to the last N steps.
et alert¶
Send a one-off alert through the configured channels:
et alert "training finished" --title Done --level info
et alert "node 3 is on fire" --level critical --channel oncall
Channels come from the same configuration the library uses: ET_ALERT_CONFIG or the
ET_LARK_WEBHOOK_URL environment variable. See Alerts.
et alert automatically loads .env from the directory where you invoke it,
before resolving alert configuration. Existing environment variables take
precedence, including empty values. It does not search parent directories; a
missing .env is fine. Use --no-dotenv to disable loading.
Quoted values, comments, and ${VAR} expansion are supported; shell commands are
not executed. Keep secrets out of version control. This loading applies only to
et alert, not other CLI commands or the Python API.