aperium (and its short alias ap) is a native terminal chat client for Aperium. It’s a
thin, chat-centric frontend that talks to the deployed /api surface over REST and
Server-Sent Events — the same backend the web UI and mobile shells use. It is a client,
not a build tool; for local development use the dev CLI instead.
It’s written in Rust (Clap for the command surface, Ratatui for the TUI) and ships as a
single binary under two interchangeable names, aperium and ap.
What it does
- A chat TUI: streaming transcript, tool-call badges, approval/question prompts, a
/command palette, model/agent/theme/environment pickers, session and artifact browsers, and input history. - Tiered artifact rendering: datatables as aligned tables and dashboards walked into native charts, with an open-in-browser escape hatch for full fidelity.
- One-shot commands (
ask,sessions,agents,auth,config) with output that degrades to plain text when piped or whenNO_COLORis set.
Install
The release archives are private GitHub assets, so installation requires a token with
read access to the Aperium repository. This is an internal tool — access is gated.
Homebrew (no Rust required)
brew upgrade aperium-cli keeps working. Two steps
are easy to miss: the tap is a private repo (clone over SSH, or run gh auth setup-git
for HTTPS), and brew trust hillspire/tap is required because the formula carries custom
Ruby. Supported platforms: macOS (arm64 + x86_64) and Linux x86_64.
From source
which aperium and aperium --version.
Configure and authenticate
Settings live in a config file (aperium config path; aperium config edit opens it) and
can be grouped into named environment profiles (local / staging / prod), each with its
own base_url, token, and OIDC block:
APERIUM_TOKEN, the active
profile’s stored token, or — for local stacks with header-fallback auth — a dev-fixtures
identity. --profile <name> (or APERIUM_PROFILE) overrides per invocation.