Browse the documentation

AEL 1.0.0

Command-line reference

AEL, the Agent Engineering Language, comes with one command-line tool, ael. It checks, formats, compiles, builds and runs your code, with diagnostics that point at your source, and it manages packages, targets, devices and deployments. This reference describes each command, one page per command.

Commands are shown without a prompt and without their output.

Projects

CommandWhat it does
ael initCreate a ready-to-build project.
ael checkCheck a project, a folder or a file without running anything.
ael fmtFormat source files, or list the files that would change.
ael compileProduce compiled AEL for every component.
ael refmapShow what references what, with unused code and packages.
ael buildBuild a native executable or a firmware image for one target.
ael runCheck, build and run a program in one step.
ael testRun a project's tests.
ael packageBuild a package file from your own project.

Packages

ael pack manages the packages a project uses; ael package, above, builds a package file. Keep the two apart.

CommandWhat it does
ael pack addAdd a new package to a manifest, and install it.
ael pack installInstall exactly what the manifest and lock file already say.
ael pack updateMove a package to another version its requirement allows.
ael pack removeRemove a package, keeping the packages others still need.
ael pack listList declared, installed and used packages.
ael pack whyExplain why a package is in the project.
ael pack verifyVerify installed packages against the lock file.
ael pack lockResolve and write the lock file without installing.
ael pack graphShow the dependency graph the lock file records.
ael pack lock-diffCompare two lock files.
ael pack vendorExport the locked packages for offline builds.
ael pack cache pruneRemove cached packages that nothing uses.
ael pack repairFinish or undo an interrupted package change.

Agents, prompts and configuration

CommandWhat it does
ael evalRun an evaluation suite against a prompt or model change.
ael prompt diffShow how prompts changed against a released version.
ael config explainExplain where each configuration value comes from.

Targets, devices and deployment

CommandWhat it does
ael doctorReport the toolchain, installed targets and anything missing.
ael target installSet up what a target needs.
ael devicesList connected devices.
ael flashWrite a firmware image to one selected device.
ael monitorShow a device's output.
ael deployPlan a staged deployment, then apply the plan you reviewed.

Common options

OptionMeaning
--jsonMachine-readable output instead of text. See Machine-readable output.
--helpThe command's usage.
-o <path>Where to write output, for commands that write a file or a folder.
--target <target>The target to check or build for: an operating system and processor, or a microcontroller board. A board is a target of its own.

--json and --help work with every command. Platforms and deployment lists the targets.

Paths and projects

  • Most commands take an optional path. Without one, a command works on the project in the current folder.
  • A project is a folder with main.ael, pack.ael and metadata.ael at its root. Project layout describes the rest.
  • Installed packages (the .package folders) and the output AEL writes are never read as source.
  • Every source file has to stay within the size limit described in Limits. Commands that write source, such as ael fmt, never push a file past it.

Nothing downloads while you build

Checking, compiling, building and running use only the packages that are already installed and pinned by your lock files. These commands never look for updates, contact a registry or run package code, and a missing package is an error that names the command that installs it. Only the package commands fetch packages. With one manifest and one lock file, builds repeat, even offline.

Further capabilities

  • The command line finds references, renames safely and generates API documentation.
  • You debug at source level in standard native debuggers, with the debugging information that ael build --debug adds.
  • You record control and orchestration runs and replay them to find the first point where behaviour diverged. See Reporting, logs and replay.
  • Changes to the language or project format come with explicit, reviewable migrations.

Reference