aivo claude
# or codex, gemini, opencode, pi, amp, grok
Bring your own keys
Add API keys from any provider you trust. Keys are encrypted and stored locally, so you can manage them and switch anytime.
# OpenRouter, Vercel AI Gateway,# OpenCode Go, DeepSeek, Cloudflare,# Google AI Studio, Kilo Gateway,# Amazon Bedrock,# OAuth: Codex, SuperGrok, GitHub Copilot, Cursor# Local: Ollama, LM Studio, llama.cpp# more...aivo keys add
Export & import
Move keys between machines through a single password-encrypted file.
# prompts for a passwordaivo keys export ~/keys.aivo
# same password on the other machine, or pass a URLaivo keys import ~/keys.aivo
aivo keys import https://example.com/keys.aivo
# non-interactive (CI / scripts)aivo keys export ~/keys.aivo --password-stdin<<<"my secret"
Other commands
# list all saved keysaivo keys
# quickly add a key with optionsaivo keys add --base-url https://openrouter.ai/api --key sk-xxx
# activate a key to useaivo keys use
aivo keys use mykey
# print saved data of a keyaivo keys cat
# edit a saved keyaivo keys edit
# health-checkaivo keys ping
# OAuth re-login / rotate a keyaivo keys reauth
# for more optionsaivo keys --help
Run a coding agent
Launch a coding agent with any provider or model you want. All extra arguments are passed through to the underlying tool.
Claude CodeAnthropic's official terminal coding agent.
aivo claude
Use a saved API key with -k, or omit the value to open the key picker. Pass -k alone with -m to pick both at once.
aivo claude -k openrouter
aivo claude -k copilot
aivo claude -k
Pin a model with -m, or omit the value to open the model picker. Once a model is applied, aivo claude remembers it for the next run.
aivo claude -m moonshotai/kimi-k2.5
aivo claude -m
Per-slot models Claude Code runs multiple models in a single session, haiku/sonnet/opus slots plus reasoning and subagent overrides. Pin each slot to a different model, or pass a slot flag without a value to open the picker for that slot.
aivo claude --sonnet-model deepseek-v4-pro --haiku-model deepseek-v4-flash
aivo claude --reasoning-model gpt-5.4 --subagent-model claude-haiku-4-5
# open the picker for one slotaivo claude --opus-model
CodexOpenAI's official Codex CLI.
aivo codex
Use a saved API key with -k, or omit the value to open the picker.
aivo codex -k vercel
aivo codex -k
Pin a model with -m, or omit the value to open the model picker.
aivo codex -m xiaomi/mimo-v2-pro
aivo codex -m
Codex desktop app (macOS only) Launch the native Codex with the same backend. The app's in-app model picker only shows names starting with gpt- or claude-; other models still work, but won't appear there.
aivo codex-app
aivo codex-app -k
Gemini CLIGoogle's official Gemini CLI.
aivo gemini
Use a saved API key with -k, or omit the value to open the picker.
aivo gemini -k google
aivo gemini -k
Pin a model with -m, or omit the value to open the model picker.
aivo gemini -m gemini-2.5-pro
aivo gemini -m
OpenCodeAn open-source coding agent.
aivo opencode
Use a saved API key with -k, or omit the value to open the picker.
aivo opencode -k openrouter
aivo opencode -k
Pin a model with -m, or omit the value to open the model picker.
aivo opencode -m z-ai/glm-4.7
aivo opencode -m
AmpSourcegraph's coding agent.
Install the plugin first Amp support ships as a separate plugin. Install it once, then run it like any other agent.
Use a saved API key with -k, or omit the value to open the picker.
aivo amp -k openrouter
aivo amp -k
Pin a model with -m, or omit the value to open the model picker.
aivo amp -m gpt-5.4
aivo amp -m
Per-mode models Amp routes between rush, smart, deep, and large modes. Pin each mode to a different model, or pass a mode flag without a value to open the picker for that mode.
aivo amp --smart-model claude-sonnet-4.6 --rush-model claude-haiku-4-5
aivo amp --deep-model gpt-5.4-thinking --large-model deepseek-v4-pro
# pin the starting mode, or omit the value to open the mode pickeraivo amp --mode deep
aivo amp --mode
PiA terminal coding agent from the pi-mono toolkit.
aivo pi
Use a saved API key with -k, or omit the value to open the picker.
aivo pi -k cursor
aivo pi -k
Pin a model with -m, or omit the value to open the model picker.
aivo pi -m composer-2.5
aivo pi -m
Transparent mode Because Pi supports multiple upstream protocols, by default aivo puts its local router in the middle and normalizes the stream. Use --transparent to hand Pi the URL and the right API type so it talks to the provider directly.
aivo pi --transparent-k openrouter
Oh My PiA terminal coding agent built on pi-mono.
Install the plugin first omp support ships as a separate plugin. Install it once, then run it like any other agent.
Use a saved API key with -k, or omit the value to open the picker.
aivo grok -k openrouter
aivo grok -k
Pin a model with -m, or omit the value to open the model picker.
aivo grok -m gpt-5.4
aivo grok -m
Quick start
Without a tool name, aivo run opens an interactive picker of agents and plugins, with your last choice selected by default.
aivo run
Launch aliases
Pin a coding agent and its usual flags under one name, then launch the whole thing with aivo <name> (or the long form, aivo run <name>). Inline flags at run time override the saved ones, handy for locking in the per-slot model setups you'd otherwise retype every session.
# Claude Code with separate models per slotaivo alias work claude -k openrouter \--opus-model deepseek/deepseek-v4-pro \--sonnet-model deepseek/deepseek-v4-flash \--haiku-model deepseek/deepseek-v4-flash \# Amp with separate models per mode, pinned to deep modeaivo alias task amp -k openrouter \--smart-model openai/gpt-5.5 \--deep-model anthropic/claude-opus-4.7 \--rush-model openai/gpt-5.4 \--large-model deepseek/deepseek-v4-pro
# run themaivo work
aivo task
Aivo Code
aivo code is the built-in coding agent in your terminal. It works with any model you've added, from a frontier API to a local GGUF, and extends with skills, MCP servers, and subagents.
Any model
Frontier APIs to local GGUFs, with key and model pickers.
Session tools
/plan, /goal, /review, /rewind, /config, and more.
Skills
Install from GitHub or a path; project or user scope.
MCP servers
Stdio or remote HTTP; import from Claude, Cursor, Gemini, Copilot, Amp.
Subagents
Named specialists — ask in chat to create one, or manage with /agents.
Live share
Share a session to a viewer URL with --share or /share.
Shell pipelines
Pipe stdin into a prompt for commit messages, log triage, and more.
aivo code
# open the key pickeraivo code -k# resume a saved sessionaivo code --resumeaivo code --resume last
# live-share the session to a viewer URLaivo code --share
Attach files
Queue text files or images for the agent to read. Pass --attach as many times as you need, or paste an image straight from the clipboard with Ctrl+V in the session.
Send one prompt and exit with a plain reply — no tools. The shortcut is a bare quoted string: aivo "..." rewrites to aivo code -p "...". Use -p/--prompt when you also want flags.
aivo"pro tips for git"aivo-p"pro tips for git"-m gpt-5.4
# type interactively, Ctrl-D to sendaivo-p
Shell pipelines
Pipe anything into aivo. It reads stdin, adds your prompt, and sends it to the model.
git diff |aivo-p"Write a commit message"cat error.log |aivo-p"Find the root cause"cat error.log |aivo-p
Models
Once you add a provider and set up the key, you can use the models command to see the available models the provider offers. Most providers provide the model list through API, so aivo fetches it on demand and caches it for later use.
# active key's models, or pick oneaivo models
aivo models -k openrouter
# filter by nameaivo models -s free
aivo models -k openrouter -s claude
# force refresh the cached listaivo models --refresh
JSON output
--json prints the raw upstream model list for scripts. The shape depends on the provider, pipe to jq to explore and filter.
If a model name is too long, you can give it a short alias. Model aliases are accepted anywhere -m/--model works.
aivo alias fast=claude-haiku-4-5
aivo alias mimo xiaomi/mimo-v2-pro
# use itaivo claude -m fast
aivo code -k vercel -m mimo
# list and removeaivo alias
aivo alias rm fast
Hugging Face
Run any open-weight GGUF directly from a Hugging Face repo. The first time you reference a model, aivo downloads the file to ~/.config/aivo/cache/huggingface and serves it through a bundled llama-server. Subsequent runs reuse the cached file.
The hf: prefix and full https://huggingface.co/… URLs are accepted anywhere a model name works, in aivo code, a coding agent's -m, the bare aivo shortcut, etc.
GGUF repos usually publish several quantizations. Append :<quant> (e.g. Q5_K_M, Q4_K_M) to pick a specific file; if you don't, aivo prompts you to choose the first time it downloads.
aivo code hf:bartowski/Llama-3.2-3B-Instruct-GGUF:Q5_K_M
aivo claude -m hf:bartowski/Llama-3.2-3B-Instruct-GGUF:Q4_K_M
Use in a coding agent
Pass hf: wherever -m/--model is accepted. Combine with the per-slot flags for Claude Code and Amp to mix local and remote models in the same session.
aivo claude -m hf:Qwen/Qwen2.5-0.5B-Instruct-GGUF
aivo pi -m hf:Qwen/Qwen2.5-0.5B-Instruct-GGUF
# mix: remote opus, local sonnetaivo claude \--opus-model claude-opus-4.7 \--sonnet-model hf:Qwen/Qwen2.5-0.5B-Instruct-GGUF
Re-open a cached model
A bare hf: opens a picker over the local cache, useful once you've pulled a few models and don't want to retype the repo path.
aivo code hf:
aivo claude hf:
Manage the local cache
aivo hf lists the cached repos; --verbose expands each repo to show every downloaded quant. The rest are housekeeping commands.
# list cached reposaivo hf
# pre-pull a model (handy before going offline)aivo hf pull hf:Qwen/Qwen2.5-0.5B-Instruct-GGUF
# delete one quant or a whole repoaivo hf rm <repo>--quantQ5_K_Maivo hf rm <repo>--all-y# wipe the whole cacheaivo hf clean -y
Serve
Expose your active provider as a local OpenAI-compatible endpoint. Any tool that speaks the OpenAI API can use it, VS Code extensions, Python scripts, anything.
One feed across aivo's own events (code, run, serve), native CLI sessions (claude, codex, gemini, pi, opencode), and amp threads, read from each tool's on-disk session files and aivo's local SQLite. Scoped to the current project by default.
View logs
# recent activity in the current projectaivo logs
# every project on this machineaivo logs --all
Filter and search
Narrow by source, model, key, time, or text. --errors shows only failures.
Publish a session via a tunneled viewer URL, useful for showing a teammate a bug repro, an agent transcript, or an interesting model run.
The server is just a bridge, it forwards viewer requests to your machine over the tunnel and keeps no copy of the session.
# pick a session in the current projectaivo logs share
# share a specific row by id prefixaivo logs share 1335c631
# pick from every project on this machineaivo logs share --all# follow updates and open in the browseraivo logs share --open# skip redaction (be sure)aivo logs share --no-redact
Usage stats
Aggregates token counts from aivo code, Claude Code, Codex, Gemini, OpenCode, Amp, and Pi by reading each tool's native data files.
aivo stats
aivo stats claude
aivo stats code
Filter and format
# raw numbers for scriptsaivo stats -n# filter by provideraivo stats -s openrouter
# last N units (m, h, d, w)aivo stats --since 7d
aivo stats claude --since 24h
# show all modelsaivo stats -a# bypass cacheaivo stats -r
Try aivo without setting up a provider first. aivo-starter bundles a couple of models for learning and testing, enough to feel how aivo works before you bring your own key.
aivo/starterDeepSeek V4 Flash · official APIA general-purpose default for everyday tasks.
poolside/laguna-s-2.1Laguna S 2.1 · PoolsidePoolside's second-generation coding agent model in the S size class.
Try it
Once aivo is installed, you can use it straight away.
aivo"tell me a short story"aivo code
Login
Link your device to an account for higher daily limits on the starter pool.
aivo account login
aivo account usage
Limits
The starter pool has a finite daily budget, intended for interactive coding-agent sessions. For regular or automated use, please add your own API key.
Not forautomated scriptsbatch jobsbenchmarksthird-party clientsOpenClaw
Update
aivo update detects whether you installed via Homebrew or the install script and updates accordingly. Failed updates are rolled back automatically; a manual rollback is available if a new version misbehaves.
aivo update
# force update even if installed via a package manageraivo update --force# restore the previous version from the last backupaivo update --rollback
Sync model data
Model limits come from models.dev and ship baked into each release. --sync-model-data refreshes that snapshot between releases without touching the binary.