Skip to content
heliaAOT
API Reference
HELIA HUB

Command line

Conversion options are generated from the same configuration model the reference documents. Root options control the helia-aot command itself.

Command What it does
helia-aot convert Convert a model to standalone C inference module.
helia-aot list-targets Deprecated alias of platforms list, removed in 2.0.
helia-aot platforms Inspect registered platform profiles and planning limits.
helia-aot platforms list List registered platform profiles.
helia-aot platforms show Show a registered platform’s capabilities and planning limits.
helia-aot target-info Deprecated alias of platforms show NAME, removed in 2.0.
helia-aot version Display the version of the heliaAOT library.

For a complete conversion, start with the walkthrough. Use YAML for nested lists and mappings; see configuration precedence.

A conversion exits nonzero on failure; Exit codes lists each code. Capture both stdout and stderr when investigating it: conversion progress and error diagnostics go to stderr, while the final Results output goes to stdout, and some input failures retain Python tracebacks. Verbosity controls logging detail, not whether the conversion succeeded. See troubleshooting and the error reference.

heliaAOT command line interface.

Terminal window
helia-aot [OPTIONS] COMMAND [ARGS]...
Option Type Default Description
--version boolean false Display the version and exit.
-h / --help boolean false Show this message and exit.

Convert a model to standalone C inference module.

Terminal window
helia-aot convert [OPTIONS]
Option Type Default Description
--path str — Path to yaml configuration
--transforms str (repeatable) [] Transforms configuration
--operators str (repeatable) [] Operator attributes and optimization knob overrides
--verbose int 1 Verbosity level: 0 errors only, 1 stage milestones, 2 debug details, 3 debug details with each AIR operator’s tensors and options (default: 1)
--force / --no-force boolean false Force conversion even if output exists (default: False)
--keep-work-dir / --no-keep-work-dir boolean false Keep the temporary work directory and log its path (default: False)
--log-file str — Optional log file path
Option Type Default Description
--model.path str model.tflite Path to target model file (default: model.tflite)
--model.subgraph int 0 Subgraph index (default: 0)
--model.type tflite | litert — Model file format: tflite or litert; without it, the file extension decides
--model.name str model Model name (default: model)
--model.description str — Description of the model
--model.version str — Model version; without it, the LiteRT schema version the model file records
Option Type Default Description
--module.path str output.zip Output path for the generated module. Use a directory for an unpacked module, a ‘.zip’ suffix for a generic zip archive, or a ‘.pack’ suffix for an Open-CMSIS-Pack archive (requires module.type=cmsis_pack). (default: output.zip)
--module.type zephyr | cmake | nsx | cmsis_pack cmake Module type: cmake, zephyr, nsx or cmsis_pack (cmsis_pack is experimental) (default: cmake)
--module.name str helia_aot_nn Module name (default: helia_aot_nn)
--module.prefix str aot Prefix added to sources for unique namespace (default: aot)
--module.schedule table | static table Operator dispatch shape in the generated model: ‘table’ (default) keeps the runtime function-pointer table and per-node callback seam; ‘static’ emits straight-line direct calls (no table, no loop, no indirect dispatch). (default: table)
Option Type Default Description
--test.enabled / --no-test.enabled boolean false Include test case (default: False)
--test.tolerance float 1 Test tolerance (default: 1.0)
--test.skip-verification / --no-test.skip-verification boolean false Skip runtime output verification (default: False)
--test.golden-data str — Golden input/output npz file
--test.num-iterations int 1 Number of times to run the same stimulus through the model (default: 1)
--test.state-feedback str (repeatable) [] (output_index, input_index) pairs copied back between iterations for streaming recurrent-state carry
Option Type Default Description
--memory.planner greedy | greedy_by_size | hill_climb hill_climb Memory planner strategy (greedy_by_size is experimental) (default: hill_climb)
--memory.planner-options str {} Planner tunables as JSON, validated against the selected planner’s option schema (hill_climb: iterations, seed, max_stall_iterations)
--memory.constraints str (repeatable) — Memory constraints (ordered by preference)
--memory.tensors str (repeatable) [] Tensor attributes
--memory.allocate-arenas / --no-memory.allocate-arenas boolean true If true, the module will use internal, statically allocated arenas. If false, the caller must bind every region via <prefix>_bind_arena() / <prefix>_bind_arenas() before model_init. (default: True)
--memory.dump-residency-json / --no-memory.dump-residency-json boolean false If true, write a machine-readable residency report (<prefix>_residency.json) alongside the emitted module. Mirrors the verbose log summary as JSON for tooling that needs to introspect arena layout, staged-vs-cold residency, and per-tensor placement post-planning. (default: False)
Option Type Default Description
--platform.name str apollo510_evb Target platform name (default: apollo510_evb)
--platform.cpu str — CPU core type (e.g., cortex-m55)
--platform.speeds str (repeatable) [] Declared clock speeds in MHz (deprecated since 0.32.0: remove it; no conversion reads it.)
--platform.memories str {} Memory sizes in bytes
--platform.capabilities str (repeatable) [] List of SoC capabilities
--platform.preferred-memory-order str (repeatable) [] Preferred memory order for allocations
--platform.min-alignment int — Minimum alignment requirement in bytes
Option Type Default Description
--documentation.html / --no-documentation.html boolean false Generate an offline HTML documentation site (experimental) (default: False)
Option Type Default Description
--optimization.goal latency | balanced | size | accuracy balanced What auto knob values favor: latency, balanced (today’s defaults), size or accuracy (default: balanced)
--optimization.allow-approximate / --no-optimization.allow-approximate boolean false Allow auto knob values that change numerics relative to the knob’s default (e.g. fast accumulation) (default: False)
--optimization.accumulation auto | precise | fast auto FP16 fully connected and depthwise accumulation: precise (four-tap FP32 folding on eligible packed fully connected layers, otherwise standard; the default depthwise entry), fast (legacy fully connected routing; the FP16-lane depthwise entry; approximate where alternatives apply) or auto; FP16 convolution packs at every setting (default: auto)
--optimization.kernel auto | specialized | generic auto Int8 convolution, depthwise, fully connected and bilinear resize entry: specialized (shape-specialized ns-cmsis-nn direct entries where they apply), generic (the general entries, fewer kernels linked) or auto; both are exact (default: auto)
Option Type Default Description
-h / --help boolean false Show this message and exit.
Quick start:
helia-aot convert --model.path model.tflite --module.path ./out
helia-aot convert --path my-model.yaml --verbose 2
helia-aot convert --model.path model.tflite --module.type zephyr --test.enabled

Deprecated alias of platforms list, removed in 2.0.

Terminal window
helia-aot list-targets [OPTIONS]
Option Type Default Description
-h / --help boolean false Show this message and exit.

Inspect registered platform profiles and planning limits.

Terminal window
helia-aot platforms [OPTIONS] COMMAND [ARGS]...
Option Type Default Description
-h / --help boolean false Show this message and exit.

List registered platform profiles.

Terminal window
helia-aot platforms list [OPTIONS]
Option Type Default Description
--json boolean false Print versioned JSON.
-h / --help boolean false Show this message and exit.

Show a registered platform’s capabilities and planning limits.

Terminal window
helia-aot platforms show [OPTIONS] NAME
Argument Type Required Description
NAME str yes Registered platform name; case-insensitive.
Option Type Default Description
--json boolean false Print versioned JSON.
-h / --help boolean false Show this message and exit.

Deprecated alias of platforms show NAME, removed in 2.0.

Terminal window
helia-aot target-info [OPTIONS]
Option Type Default Description
--name str required Registered platform name, as reported by platforms list.
-h / --help boolean false Show this message and exit.

Display the version of the heliaAOT library.

Terminal window
helia-aot version [OPTIONS]
Option Type Default Description
-h / --help boolean false Show this message and exit.
Code Name Meaning
0 SUCCESS The command succeeded.
1 FAILURE A valid request failed while converting, with a typed error, or an unexpected exception was raised with its traceback.
2 USAGE The input was rejected: the command line, the configuration, a file it names (the model, the golden data, the output location), the model type or format, or the target, whether before or during conversion.
130 INTERRUPTED The command was interrupted.

The code depends on what failed, not on when. Rejected input exits 2: the command line, the configuration, a file it names (the model, the golden data, the output location) and the target, even when the check runs after conversion has started, as for golden data, test.state_feedback pairs or an out-of-range model.subgraph, all checked against the loaded model. A valid request that fails while converting, such as a model construct heliaAOT cannot lower or memory that does not fit, exits 1. Each error class declares its code; the Errors page lists them. An unexpected exception is a defect and keeps its traceback.

An interrupt during conversion, or before it starts, exits 130. An interrupt while heliaAOT is still loading ends the process on the signal itself, which a shell reports as 130.