Athena CLI
The Athena CLI (athena) is generated from the same OpenAPI specification as the
Python and TypeScript SDKs, so every public API operation is available as a
subcommand — no per-endpoint work, and no drift between the three.
Reach for it when you want to explore the API, script an operation, or work from a terminal or CI job without writing code.
Install
macOS / Linux
Windows
From source
The installer picks the right build for your platform, including the static musl build on Alpine and other non-glibc systems, and verifies the download against the release checksums.
The repository is private, so an unauthenticated curl | sh cannot even fetch
the script — raw.githubusercontent.com returns 404. The command above
authenticates both the script fetch and the release-asset downloads.
Authenticate
Store your key in the OS keyring:
Or pass it through the environment — the same ATHENA_API_KEY the SDKs read:
Confirm it works:
Explore
The command tree mirrors the API, so --help is the reference:
Two flags make it agent- and script-friendly:
Call an operation
Request bodies come from --json, a flag per field, or stdin:
Read assets
read-asset exposes the same progressive-disclosure read the agent runtime
uses — anchors, formats, versions, and pagination:
Long assets come back truncated. A large text read returns only the first
50,000 characters, and it does so as a successful response — nothing in the
exit code says the content is partial. The CLI warns on stderr when this
happens. Pass --page-all to follow every window and concatenate them:
Output formats
--format accepts json (default when piped), table (default on a TTY),
yaml, csv, jsonl, raw, and http.
--query takes a JMESPath expression and is applied before formatting, which is
usually shorter than piping through jq.
Environment variables
HTTPS_PROXY / HTTP_PROXY / NO_PROXY / SSL_CERT_FILE are also honored. A
.env file in the working directory is auto-loaded on startup.
Shell completion
bash, fish, and powershell are also supported.
Full reference
Every command, flag, and endpoint is listed in reference.md, regenerated from the spec on every API change.
