Metadata-Version: 2.4
Name: axonate-ax
Version: 0.1.0
Summary: ax — the tiny CLI for the Axonate AI gateway. One key, every model.
Author: CloudDrove
License: MIT
Project-URL: Homepage, https://github.com/Axonate/ax
Project-URL: Documentation, https://github.com/Axonate/docs
Project-URL: Source, https://github.com/Axonate/ax
Keywords: ai,llm,cli,openai,gateway,axonate
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

<div align="center">

# ax

### The tiny CLI for [Axonate](https://github.com/Axonate/axonate) — one key, every model.

![python](https://img.shields.io/badge/python-3.8%2B-blue)
![deps](https://img.shields.io/badge/dependencies-zero-brightgreen)
![license](https://img.shields.io/badge/license-MIT-green)

</div>

`ax` talks to your team's Axonate gateway — every model (real provider APIs + free local models)
behind a single OpenAI-compatible endpoint. **Built for small teams who need AI without a
plan-per-person bill:** one gateway, one key, per-user budgets.

## Install

**macOS (Homebrew)**
```bash
brew install Axonate/tap/ax
```

**pip — macOS / Linux / Windows** (zero dependencies, any Python 3.8+)
```bash
pip install axonate-ax            # or: pipx install axonate-ax
```

**Windows** (PowerShell or CMD)
```powershell
py -m pip install axonate-ax
# 'ax' is now on PATH; if not, restart the terminal or add the Scripts dir to PATH
```

**Without installing**
```bash
python -m axonate_cli "hello"
```

## Configure

```bash
mkdir -p ~/.config/axonate
cat > ~/.config/axonate/config <<EOF
AXONATE_URL=https://axonate.yourdomain.com   # or http://127.0.0.1:4100 locally
AXONATE_KEY=sk-your-virtual-key
EOF
```
Or use env vars `AXONATE_URL` / `AXONATE_KEY`.

## Use

```bash
ax "explain this error"                  # smart auto-routing picks the model
ax -m claude "write a haiku"             # force a model
git diff | ax "review this"              # pipe stdin
ax -s work "remember X"                  # session continuity
ax -s work "what did I say?"             #   ...same session recalls it
ax -s work --new "fresh start"           # reset a session
ax --no-stream "..."                     # disable streaming
```

The gateway prints which model handled it (`[route: codex]`) so you always know where your
tokens went.

## Why a gateway (cost angle)

| Without | With Axonate |
|---|---|
| One AI plan per person | One shared gateway, every model, per-user budgets |
| No idea who spent what | Per-user budgets + spend tracking |
| Pick the model manually | `auto` routes cheap tasks to cheap models |

Set up the gateway: **[Axonate/axonate](https://github.com/Axonate/axonate)** · Docs: **[Axonate/docs](https://github.com/Axonate/docs)**

## License
[MIT](LICENSE) © CloudDrove
