A fast, lightweight AI agent for the terminal, built in Rust.
AX is a small, native terminal agent. It starts fast, streams responses, and keeps sessions, memory, credentials and model config on your machine — no service to sign up for, no remote telemetry.
- Rust native — one binary, no runtime, no Node, no Docker.
- Fast startup — providers, skills, MCP servers and memory load on demand.
- Standard skills and focused tools — Agent Skills
SKILL.mdpackages with lazy instructions and optional resources, read-only web search/fetch, LSP through configurable MCP servers, and native image input on supported vision models. - Small binary — a compact workspace of focused crates, not a framework.
- Simple workflow — type, get an answer, switch models, move on.
- Local-first — everything lives in
~/.axand your project's.ax.
No benchmarks are published yet; "fast" here means the startup path does as little as possible by design.
Portable backups: ax export backup.axpack saves sessions and memory; use
--memory or --sessions to select one type. Run
ax import backup.axpack --dry-run to inspect conflicts, then
ax import backup.axpack to merge.
Credentials and caches are excluded. See backup details.
Mac or Linux:
curl -fsSL https://raw.githubusercontent.com/Axium-Labs/AX/main/scripts/install.sh | shWindows:
powershell -ExecutionPolicy Bypass -c "iex ((iwr 'https://raw.githubusercontent.com/Axium-Labs/AX/main/scripts/install.ps1' -UseBasicParsing).Content)"Then simply run:
ax
Your first session:
/login # sign in with a provider (Codex OAuth or an API key)
/model # pick a model
hello # just start typing
That's it. Your session is saved automatically, and the model you pick is remembered for next time.
The installer fetches the latest release from GitHub, verifies the archive
against the release's SHA256SUMS, and installs a single ax / ax.exe
binary:
- macOS / Linux — installs to
~/.local/binby default and prints a PATH hint if that directory is not already on your PATH. - Windows — installs to
%LOCALAPPDATA%\Programs\AX\binby default and adds it to your user PATH (only if it is not there already).
Both installers accept two environment variables:
| Variable | Purpose |
|---|---|
AX_VERSION |
Install a specific release tag instead of latest (e.g. AX_VERSION=v0.1.0) |
AX_INSTALL_DIR |
Override the install directory |
To update the executable you are currently running to the latest GitHub
Release, run ax --update. AX checks the release version, verifies the
download against SHA256SUMS, and replaces only that executable. On Windows,
the verified update is scheduled for replacement after the command exits;
restart AX before using the new version. The command does not change your
~/.ax user data or
any project's .ax directory. If you installed a separate copy using
AX_INSTALL_DIR, run that copy's ax --update to update it. A push to main
alone is not a release; the release workflow runs for v* tags.
AX_VERSION=v0.1.0 curl -fsSL https://raw.githubusercontent.com/Axium-Labs/AX/main/scripts/install.sh | sh
AX_INSTALL_DIR="$HOME/bin" curl -fsSL https://raw.githubusercontent.com/Axium-Labs/AX/main/scripts/install.sh | shpowershell -ExecutionPolicy Bypass -c "$env:AX_VERSION='v0.1.0'; iex ((iwr 'https://raw.githubusercontent.com/Axium-Labs/AX/main/scripts/install.ps1' -UseBasicParsing).Content)"Removing AX is just deleting the binary (and, on Windows, the PATH entry the
installer added). AX keeps its data separately in ~/.ax, which you can delete
too if you want a clean slate.
macOS / Linux
rm -f ~/.local/bin/ax # or wherever AX_INSTALL_DIR pointed
rm -rf ~/.ax # config, sessions, memory, model catalog (optional)Windows
Remove-Item -Force "$env:LOCALAPPDATA\Programs\AX\bin\ax.exe"
# remove the installer's PATH entry (optional but tidy)
$p = [Environment]::GetEnvironmentVariable('Path', 'User')
[Environment]::SetEnvironmentVariable('Path', ($p -split ';' | Where-Object { $_ -notlike '*Programs\AX\bin*' }) -join ';', 'User')
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Programs\AX" # leftover dir (optional)Requires Rust 1.92+.
git clone https://github.com/Axium-Labs/AX.git
cd AX
cargo build --release
# binary at target/release/ax.exe (Windows) or target/release/ax (Unix)AX discovers providers from what is already on your machine — credentials in
~/.ax/auth.json and standard environment variables like DEEPSEEK_API_KEY.
No network call happens during startup.
| Provider | Credential | How to use |
|---|---|---|
| OpenAI Codex | OAuth login | /login → Codex OAuth |
| DeepSeek | API key | /login → API key, or DEEPSEEK_API_KEY |
| OpenAI | API key | /login → API key, or OPENAI_API_KEY |
| OpenAI-compatible vendors (Groq, Mistral, OpenRouter, etc.) | Provider API key | /login → provider, or its API-key environment variable |
Models are discovered dynamically into ~/.ax/models/ (a bundled catalog plus
a per-provider refresh cache). Switch anytime with /model; the last
selection — provider, model and reasoning effort — is persisted to
~/.ax/config.json and restored on the next launch.
To pick a provider explicitly from the command line:
ax --provider deepseek
ax --provider openai-codex --model <model-id>
ax run "explain this repo" --provider deepseekStart the UI (default):
axRun one task and exit (non-interactive):
ax run "summarize the TODOs in ./src"Run independent tasks with bounded concurrency:
ax agents "review pr #12" "write changelog" --concurrency 2Fast. Lightweight. Simple.
AX deliberately does not load everything up front. Skills, MCP servers, providers and memory are all activated only when the task actually needs them — so the things that make an agent powerful never get in the way of starting it or of a normal conversation. The trade-off is intentional: capability is loaded on demand, not at startup.
The internal architecture — agent loop, context management, multi-agent scheduling, SQLite schema, module layout — is documented in docs/README.md. Start with docs/architecture.md.
MIT OR Apache-2.0.