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/1project (main.ael,pack.ael,metadata.ael) or anael.project.jsonproject, with the same promotion and lowering ascompile, 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(defaultlinux-x86_64),--library <name>,--dependency <name>=<path.aelir>,--cache <dir>,--json,--no-metrics. - ael compile <project-directory> --pairs <output-directory>
- Writes per-owner
.aelir/.metadatapairs for asource/1project. - 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_64is refused.--optaccepts onlynone. - 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.
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
--tier core because it is
i64-only.
Projects
- ael init NAME --profile ael-project-init-filesystem-candidate/1
-
Scaffolds
main.ael,pack.aelandmetadata.aeland 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/1owners in place — main, global, reuse, config, node, edge, agent,pack.aelandmetadata.ael— and nothing else. Run on an arbitrary.aelfile it returnsFMT_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.aelanswers “native execution is unavailable for this command or target…” and exits 2. A program is produced bycompilefollowed bybuild, 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 fmtover arbitrary source; see the profile limits above. - No
ael build --target windows-x86_64; it is refused with the same sentence asael run, exit 2.