# Command-line interface Atom-HiFi installs a single `atom-hifi` console script ({py:func}`atom_hifi.cli.main`). ```bash atom-hifi init [config.yaml] # write a commented starter config atom-hifi run config.yaml # run the full L/R selection workflow ``` `atom-hifi run` merges the given config under the template defaults and calls {py:func}`atom_hifi.runner.run`, which returns a summary dict (metrics + output paths). The tutorial wrapper (`hifi_workflow_tutorial.py`) and the tests use the same single orchestration path. ## Entry points ```{eval-rst} .. autofunction:: atom_hifi.cli.main :no-index: .. autofunction:: atom_hifi.cli.build_parser :no-index: ``` ## Workflow stages The runner executes, in order: library load → descriptor compute → optional ε_noise calibration → optional active-learning loop or piecing → final L/R scan → optional NSGA-II c-factor optimisation → final fit and representative-set selection. The Python API also supports expert-only ND grid scan and patient/OOD controls that are intentionally absent from YAML. See {py:func}`atom_hifi.runner.run` for the full control flow. ```{eval-rst} .. autofunction:: atom_hifi.runner.run :no-index: ```