For AI agents: the complete documentation index is available at https://aioproxy.dev/llms.txt, the full documentation bundle is available at https://aioproxy.dev/llms-full.txt, and this page is available as Markdown at https://aioproxy.dev/index.md.
  • English
  • Open source · Local-first model gateway

    Every model. Every client.One endpoint.

    AIO Proxy sits between your tools and your model providers. Keep the SDKs and coding agents you already use, plug in API keys or the subscriptions you already pay for, and get routing, failover, and full request traces from one local binary.

    $brew install aio-proxy/tap/aio-proxy
    • Claude Code
      anthropic
    • Codex
      openai-response
    • Cursor
      openai-compatible
    • Gemini SDK
      gemini
    AIO Proxypassthrough
    • Anthropic
    • ChatGPT Pro
    • GitHub Copilot
    • OpenRouter
    • Google Gemini
    inbound API protocols
    7
    built-in subscription plugins
    10
    same-protocol passthrough overhead
    <1 ms
    lines of client code to change
    0

    Protocols

    Your clients keep speaking their language.

    OpenAI, Anthropic, and Gemini clients all hit the same endpoint. When the upstream speaks the same protocol, bytes stream straight through. When it does not, AIO Proxy translates messages, tools, reasoning, and streaming for you.

    Client speaks

    anthropicopenai-response

    Cross-protocol conversion

    Mapped through AI SDK model messages. Tool calls, thinking, multimodal input, and SSE chunks are translated both ways.

    Upstream serves

    Also: Embeddings, Realtime (WebRTC / WebSocket), Images & Audio

    Routing & failover

    Traffic that routes itself — and recovers on its own.

    Ask for a model name. AIO Proxy finds every Provider that serves it, tries higher-priority tiers first, spreads traffic within a tier by weight, and fails over until one answers.

    POST /v1/messagesmodel:claude-sonnet-4-6
    1. 1
      claude-team
      priority 100 · weight 3
    2. 2
      anthropic-key
      priority 100 · weight 1
    3. 3
      openrouter
      priority 0 · weight 1
      standby
    Model-first matching
    Aliases map one name to many upstreams.
    Priority tiers
    Higher tiers first, lower tiers as standby.
    Weighted spread
    Share traffic across keys in the same tier.
    Session affinity
    Long conversations stay on the same Provider.
    ~/.aio-proxy/config.jsonc
    {
      "providers": {
        "claude-team": {
          "kind": "oauth",
          "plugin": "@aio-proxy/plugin-claude-code",
          "capability": "claude",
          "priority": 100, "weight": 3
        },
        "anthropic-key": {
          "kind": "api", "protocol": "anthropic",
          "baseURL": "https://api.anthropic.com/v1",
          "apiKey": "{{env.ANTHROPIC_API_KEY}}",
          "models": ["claude-sonnet-4-6"],
          "priority": 100, "weight": 1
        },
        "openrouter": {
          "kind": "oauth",
          "plugin": "@aio-proxy/plugin-openrouter",
          "capability": "openrouter"
        }
      }
    }

    Providers

    Bring the subscriptions you already pay for.

    Log in once with OAuth and turn ChatGPT, Claude, Copilot, and more into standard API endpoints — shared by every tool on your machine.

    Agents & clients

    One command to wire up your coding agents.

    aiop agent detects installed agents, injects the provider config, and issues a dedicated local token — no copying base URLs between config files.

    Codex, Grok Build, OpenCode, Pi, and OMP configured natively
    Session migration with a rollback journal
    Clean removal that leaves your preferences untouched

    Everything else — Claude Code, Cursor, Cline, Cherry Studio, your own SDK code — just needs a base URL.

    $ aiop agent configure codex
    ✓ Detected Codex CLI 0.42 · profile ~/.codex
    ✓ Injected provider "aio-proxy" into config.toml
    ✓ Issued local agent token (rotates automatically)
    ✓ Migrated 38 sessions · rollback journal saved
    $ aiop agent list
    codex connected opencode connected
    grok connected pi not installed

    Observability

    Know where every request went, and what it cost.

    The built-in Dashboard records every request and every Provider attempt: status, latency, tokens, and cost, with full traces when you need to dig in.

    Requests
    12,480+18%
    Success rate
    99.7%+0.4%
    Tokens
    48.2M+22%
    Cost
    $31.06−9%
    ModelProviderStatusLatencyTokensCost
    claude-sonnet-4-6claude-team2001.8 s14.2k$0.071
    gpt-5chatgpt-pro2002.4 s9.8k$0.000
    claude-sonnet-4-6anthropic-key2000.9 s3.1k$0.016
    gemini-2.5-progoogle2001.2 s6.4k$0.021
    gpt-5-miniopenrouter5020.3 s——
    Trace · claude-sonnet-4-6
    inbound · anthropic
    route · 3 candidates
    claude-team · 429
    anthropic-key · stream
    first token
    Export traces to any OpenTelemetry backend

    Quick start

    Running in under a minute.

    1. 1

      Install

      One binary. Homebrew, Bun, or curl.

      $ brew install aio-proxy/tap/aio-proxy
    2. 2

      Run

      Starts the API and opens the Dashboard.

      $ aiop run --open
    3. 3

      Point your client

      Swap the base URL. Keep the model name.

      $ export OPENAI_BASE_URL=http://127.0.0.1:9317/v1

    Stop juggling keys, endpoints, and SDKs.

    Free and open source. Runs on your machine.