ETNA is a CLI for creating experiments, adding workloads, running tests, and managing result data.
etna --helpTop-level commands:
experiment— manage experiments and run/visualize testsworkload— add/remove/list workloads in an experimentconfig— show CLI configurationsetup— initialize global ETNA configcheck— integrity checks and cleanup/restore helpersanalyze— analysis helpersmutation— inspect and control mutation variantsbash— generate bash script from workload config (Unix only)completions— generate shell completions
Most commands operate on an experiment. The experiment is resolved in this order:
- explicit
--name <NAME>flag (where supported); - current directory — if
$PWDis inside a registered experiment, that experiment is used.
If neither resolves and the command requires an experiment, it fails with a message pointing at etna experiment list.
etna experiment --helpCreate a new experiment directory.
Usage: etna experiment new [OPTIONS] <NAME> [PATH]
Options:
-o, --overwrite
Register an existing experiment directory in tracking metadata.
Usage: etna experiment register [NAME] [PATH]
Both arguments are optional: if NAME is omitted it is inferred from the directory, and if PATH is omitted the current directory is used.
Run one or more test files from the experiment's tests/ directory.
Usage: etna experiment run [OPTIONS]
Options:
-n, --name <NAME>
--tests <TESTS>
-s, --short-circuit
-p, --parallel
--params <KEY=VALUE>
--params may be repeated; values passed here override parameters defined in the test JSON files. --parallel requires the tested run to be effect-free — effectful runs in parallel are not guaranteed to produce deterministic results.
Show one experiment by name.
Usage: etna experiment show --name <NAME>
Create a new test file with default values.
Usage: etna experiment create-test [OPTIONS] --language <LANGUAGE> --workload <WORKLOAD>
Options:
-n, --name <NAME>
--language <LANGUAGE>
--workload <WORKLOAD>
--test <TEST> # default: <workload>-<language>
--trials <TRIALS> # default: 10
--timeout <TIMEOUT> # default: 60 (seconds)
--mode <MODE> # default: solve | solve | sample | test | shrink | cross
--mutation <MUTATION> # repeatable
Amend an existing test file by assigning a strategy.
Usage: etna experiment amend-test [OPTIONS] --test <TEST> --strategy <STRATEGY>
Options:
-n, --name <NAME>
--test <TEST>
--strategy <STRATEGY>
--mutation <MUTATION>
--property <PROPERTY>
Behavior:
- if the task has no strategy: set it;
- if the task has a different strategy: duplicate the task with the new strategy;
- if the task already has the same strategy: no-op.
Visualize experiment results.
Usage: etna experiment visualize [OPTIONS] --figure <FIGURE>
Options:
--name <NAME>
--figure <FIGURE>
-t, --tests <TESTS>...
-g, --groupby <GROUPBY>... # default: language workload strategy mode
-a, --aggby <AGGBY>... # default: language workload strategy property mutations mode
-m, --metric <METRIC> # default: time | time | memory | size | coverage
-b, --buckets <BUCKETS>... # default: 0.1 1.0 10.0 60.0
--max <MAX>
-v, --visualization-type <TYPE> # default: bucket | bucket | bar | line
--hatched <IDX,IDX,...> # 0-indexed group indices to render with hatching
Render a bucket chart from a pre-computed JSON file.
Usage: etna experiment visualize-json --input <INPUT> --output <OUTPUT>
Generate an interactive HTML report for the experiment.
Usage: etna experiment report [OPTIONS]
Options:
-n, --name <NAME>
-o, --output <OUTPUT> # default: <experiment_path>/report.html
--publish # publish as a public GitHub Gist via `gh` and print a gisthost.github.io URL
Usage: etna experiment list
etna workload --helpUsage: etna workload add [OPTIONS] <LANGUAGE> <WORKLOAD>
Options:
-e, --experiment <EXPERIMENT>
If docs/workloads/<workload>.json exists, ETNA auto-generates a test file at tests/<workload>-<language>.json (lowercased).
Usage: etna workload remove [OPTIONS] <LANGUAGE> <WORKLOAD>
Options:
-e, --experiment <EXPERIMENT>
Usage: etna workload list [OPTIONS]
Options:
-e, --experiment <EXPERIMENT>
-l, --language <LANGUAGE> # default: all
-k, --kind <KIND> # default: experiment | available | experiment
etna mutation --helpUsage: etna mutation list [OPTIONS]
-p, --path <PATH> # default: .
Usage: etna mutation set [OPTIONS] <VARIANT>
-p, --path <PATH> # default: .
-g, --glob <GLOB>
Usage: etna mutation reset [OPTIONS]
-p, --path <PATH> # default: .
Usage: etna config show
Usage: etna setup [OPTIONS]
-o, --overwrite
Usage: etna check [OPTIONS]
--restore
--remove
Usage: etna analyze bucket [OPTIONS]
-n, --name <NAME>
Usage: etna bash [OPTIONS]
-p, --path <PATH>
Usage: etna completions <SHELL>
<SHELL> is one of the shells supported by clap_complete (bash, zsh, fish, powershell, elvish). Write the output to the shell's completions directory, e.g.:
etna completions zsh > ~/.zfunc/_etnaCLI flags evolve. For exact current behavior, prefer:
etna <command> --helpETNA_HOME— override the default~/.etnadirectory for config, the.etna_cachecheckout, and the experiments index. Used by the integration test harness to isolate runs; handy for experimenting without disturbing your real setup.ETNA_OFFLINE=1— skipgit pullinside.etna_cacheduringworkload addandbash. Lets you run the CLI against a manually-primed cache without network access.ETNA_REMOTE— override the repo URL cloned duringetna setup(defaults to the upstreametna-clirepo).ETNA_LOG— standardtracingfilter. When set, stdout logs are colored with the module/level/file/line decorations; when unset, the CLI emits plain INFO messages to stdout and only decorates WARN/ERROR. Logs are always mirrored toetna.login the current directory.