Use the axl CLI
axl is the command-line half of the platform. Everything the HTTP API exposes it can reach,
and a few things it cannot: signing a config bundle, ingesting a document corpus, minting the
very first credential a deployment has.
It is one binary. What it talks to - which server, with which credential, against which Redis and which config bundle - is decided by a profile, so the commands themselves stay short.
Get the binary
There are three ways, in ascending order of how often you will run it:
# From a checkout, without installing
cargo run -p axl-cli --bin axl -- agents list
# The binary a build already produced
./target/debug/axl agents list
# Installed on PATH
cargo install --path crates/axl-cli
axl agents listThe -- in the first form matters: it separates cargo's arguments from the CLI's.
First run
A fresh machine needs a credential before the server will answer. That is two commands:
axl key generate-jwt # an RS256 keypair
axl config init --jwt-private-key ~/.axl/keys/jwt_private.pem \
--user-id you@example.com --role adminThe server must be running with the matching public key in JWT_PUBLIC_KEY. See
Get a credential for what the roles and scopes mean, and what to do when
the server's key is not yours to mint against.
Then check it:
axl config show # what resolved, and where each value came from
axl agents list # the first call that needs the serverWhat people actually use it for
| I want to… | Command |
|---|---|
| Get a credential, so anything else works | axl config init |
| Point it at a different deployment | axl config use |
| See what agents exist, and talk to one | , |
| Find which tools I can grant or call | |
| Put my documents behind an agent | |
| Sign content so a deployment can trust it | |
| Compile and submit a workflow | |
| Watch a live deployment | , |
Every command takes -o json and writes the payload to stdout while status lines go to
stderr, so any of them can be piped into jq without --quiet.