Airigs command-line client
  • Python 99.9%
  • Makefile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
fedes1to 453c5bfd6b Describe airigs-cli as the fixed public client
Production registers the public device-flow client with the fixed id
airigs-cli, so zero-config login needs no override. The old comment
claimed AIRigs generates a deployment-specific aic_... id, which
contradicts the verified flow; AIRIGS_CLIENT_ID is documented as an
escape hatch for non-standard deployments instead.
2026-10-24 20:04:30 +02:00
airigs Describe airigs-cli as the fixed public client 2026-10-24 20:04:30 +02:00
docs Describe airigs-cli as the fixed public client 2026-10-24 20:04:30 +02:00
tests Default to the public AIRigs and Recipes deployment 2026-10-24 20:01:10 +02:00
.gitignore Bound dependencies and ignore local env files 2026-10-24 16:46:35 +02:00
AGENTS.md Default to the public AIRigs and Recipes deployment 2026-10-24 20:01:10 +02:00
LICENSE Initial commit: airigs command-line client 2026-10-24 15:33:57 +02:00
Makefile Initial commit: airigs command-line client 2026-10-24 15:33:57 +02:00
pyproject.toml Default to the public AIRigs and Recipes deployment 2026-10-24 20:01:10 +02:00
README.md Default to the public AIRigs and Recipes deployment 2026-10-24 20:01:10 +02:00

airigs

The AIRigs CLI: sign in, benchmark a machine, submit a rig, and publish reproducible recipes. It talks to AIRigs (identity, rigs, benchmarks) and the Recipes platform (recipes, benchmarks, scripts), and uploads only when you submit or publish.

Install (Python 3.11+, Linux/WSL2 or macOS)

git clone https://git.fedesito.me/fedes1to/airigs-cli.git
cd airigs-cli && pipx install .

pipx install '.[gpu]' adds PyTorch for TFLOPS, GPU memory bandwidth and P2P; without it those fields are null and a rig upload is refused with the exact missing measurements.

Log in

Run airigs login. The OAuth device flow (RFC 8628) prints a URL and a short code, opens your browser, and stores the token once approved. On a headless host use --no-browser, or pipe a token on stdin (argv leaks through ps):

printf '%s' "$AIRIGS_TOKEN" | airigs login --token -

An install from this repository talks to the public deployment out of the box: https://airigs.net (AIRigs) and https://recipes.airigs.net (Recipes). No environment variables are needed. Only for a local instance set both URLs (env or --airigs-url/--recipes-url) and log in again — tokens are bound to their issuer origin, so a new host always needs a fresh login:

export AIRIGS_URL=http://localhost:4567
export RECIPES_URL=http://localhost:4568
airigs login

Benchmark the machine

airigs bench --output bench.json
airigs bench --quick          # fewer iterations for a smoke test

CPU, RAM, GPUs, PCIe, interconnect and power are measured; a missing sensor or optional library yields null plus a note, never a made-up number. --json prints the Benchmark v1 payload.

Submit a rig

airigs rig submit --name "workstation"

This requests a single-use challenge, measures, uploads, and fails unless the server returns verified: true. Reuse a saved run with --benchmark bench.json. Also: rig list, rig show <id|name>, rig delete <id> --yes.

Work with recipes

airigs recipe init --name "70B on 2x4090"   # then edit recipe.json
airigs recipe validate
airigs recipe submit --publish

Benchmark an already-running OpenAI-compatible endpoint, then publish:

airigs recipe bench my-recipe \
  --endpoint http://localhost:8000/v1 \
  --engine vllm --model meta-llama/Llama-3.1-8B \
  --context 8192 --concurrency 4 --requests 16 --publish

The launch script is always shown first; run needs --yes (or AIRIGS_YES=1) when stdin is not a TTY.

airigs recipe script my-recipe --out run.sh
airigs recipe run my-recipe --yes -- --port 8000

Troubleshooting

airigs doctor is a read-only checklist: Python, libraries, NVIDIA/AMD tools, config permissions, token state, and service reachability. airigs --self-check reports whether this host can produce an uploadable rig.

Docs

  • docs/installing.md — install, login, config, env vars, logout.
  • docs/benchmark-v1.md — the frozen Benchmark v1 contract.
  • Recipes deployments publish this walkthrough at /docs/cli.
  • AGENTS.md — layout and conventions for coding agents.

Every command accepts --json; exit codes: 0 ok, 1 general, 3 auth, 4 not found/conflict, 5 validation, 6 rate limit.