Command line

The ael command

One binary is the whole toolchain: front end, native backend and linker. This page lists the commands that exist at compiler commit 6f9c44a, and the ones that do not.

ael --version prints ael 0.1.0-dev. That is the authoritative version string, and it says dev. There is no released build to install; see the status page.


The tier default, before anything else

With no --tier flag, ael check uses the bootstrap tier, which accepts only fn declarations and only i64 and bool annotations. A program with a struct, an array, a Vec or a Str needs --tier core or it fails with P003/P002 errors that look like language errors and are not.

ael compile has no --tier flag — it uses the core tier automatically. ael check on a project directory also needs no --tier. The flag only matters when checking a single .ael file.


The pipeline commands

ael check <source.ael> [--tier bootstrap|core] [--json]
Type-checks one file. Defaults to the bootstrap tier — see above.
ael check <project-directory> [--target <target>] [--json]
Checks a source/1 project (main.ael, pack.ael, metadata.ael) or an ael.project.json project, with the same promotion and lowering as compile, publishing nothing.
ael compile <source.ael|project-directory> -o out.aelir
The front end, producing binary AEL IR. Flags: --target linux-x86_64|macos-aarch64|windows-x86_64 (default linux-x86_64), --library <name>, --dependency <name>=<path.aelir>, --cache <dir>, --json, --no-metrics.
ael compile <project-directory> --pairs <output-directory>
Writes per-owner .aelir/.metadata pairs for a source/1 project.
ael inspect <input.aelir>
Prints the IR: target, producer, module count and the full program structure. Reads IR 1.0, 1.1, 1.2 and 1.3.
ael build <input.aelir>… -o <output>
The native backend and first-party linker. Flags: --target linux-x86_64|macos-aarch64, --entry package::module::main, --profile linux-x86_64-scalar-v1|macos-arm64-scalar-v1, --opt none, --cache <dir>, --json, --no-metrics. --target windows-x86_64 is refused. --opt accepts only none.
ael build --pairs <directory> -o <output>
Links a published pair directory, source-free.
ael build … --debug --sources <directory> [--source-map <file.aelmap>]
Appends first-party DWARF 5 line tables for the verified source snapshots in the given directory. linux-x86_64 only.
ael doctor
Prints the capability and limitation report and exits 2. It names the qualified baseline — “Native artifact build, qualified 0.1 Host baseline: linux-x86_64” — and the unavailable surfaces, including convenience run, project execution and the Windows native target.
The whole pipeline, as run
ael check fibonacci.ael
ael compile fibonacci.ael -o fibonacci.aelir --target linux-x86_64 --no-metrics
ael build fibonacci.aelir -o fibonacci --target linux-x86_64 --profile linux-x86_64-scalar-v1 --no-metrics
./fibonacci
The transcript with its real output is on the homepage. This particular program needs no --tier core because it is i64-only.

Projects

ael init NAME --profile ael-project-init-filesystem-candidate/1
Scaffolds main.ael, pack.ael and metadata.ael and prints a plan digest. Options: --parent PATH, --directory BASENAME, --package, --description TEXT, --json. The generated files and a full run are on the language page.
ael new <directory>
Creates a project directory.
ael lock <project-directory>
Produces the project lock.
ael check-bodies <project-directory> --profile ael-component-project-bodies-cli-candidate/1
A candidate profile that checks component bodies.
ael fmt <source.ael|project-directory> --profile ael-source-format-cli-candidate/1 [--check] [--json]
Not a general formatter. It formats admitted source/1 owners in place — main, global, reuse, config, node, edge, agent, pack.ael and metadata.ael — and nothing else. Run on an arbitrary .ael file it returns FMT_UNSUPPORTED.

Packages

Every package command below works against a local offline catalog directory. Network acquisition is unavailable: the compiler answers “network acquisition is unavailable; supply every missing archive in the offline catalog”. There is no registry to install from — see the ecosystem page.

ael pack install PROJECT [--scope DIR] --catalog DIR [--archive PACKAGE_ID=PATH] [--json]
Installs from the local catalog, behind a synchronized crash journal.
ael pack remove PROJECT PACKAGE …
Removes packages, recovering the journal if needed.
ael pack repair PROJECT [--scope DIR]
Recovers an interrupted install or remove from the journal.
ael pack lock-diff BEFORE AFTER --profile ael-pack-lock-diff-cli-candidate/1
Read-only difference between two locks.
ael pack graph MANIFEST CONTEXT ADMISSION LOCK --profile ael-pack-lock-graph-cli-candidate/1
Read-only resolution graph.
ael pack why … PACKAGE_ID …
Read-only explanation of why a package is in the lock.

The agent commands

These two commands read a file and print what is in it. They are not an agent runtime, they execute nothing, and their source contains no reference to HTTP, sockets or any model provider. agent as a language declaration refuses to compile.

ael agent describe DESCRIPTOR.json [--json]
Read-only description of a candidate agent-descriptor JSON file: authority, capability grants, declared tools. Offline.
ael agent resolve-prompt DESCRIPTOR.json --sources DIR [--json]
Offline, ordered resolution of prompt sources. Contacts no model and no network.

Commands that do not exist

  • No ael run. ael run fibonacci.ael answers “native execution is unavailable for this command or target…” and exits 2. A program is produced by compile followed by build, and is then launched by the operating system, never by the compiler.
  • No ael test, and no project test execution.
  • No package publish and no registry client.
  • No installer command, and no command that downloads anything.
  • No general ael fmt over arbitrary source; see the profile limits above.
  • No ael build --target windows-x86_64; it is refused with the same sentence as ael run, exit 2.