Open-source AI gateway · 14 providers · 3 API formats

One endpoint.
Every model.

Point Claude Code, Codex, Cursor or any SDK at one URL. Omnigate routes every request, falls back when a provider fails, and tracks every token.

LIVE Router activity

Watch every request find its way.

Each call goes to the best available target. When one fails, the next one answers, and you see exactly what happened.

14provider presets
3API formats
0external databases
omnigate — routerLIVE
Requests0
Fallbacks saved0
Success100%

Every provider speaks a different API, enforces different limits and has its own bad days. Omnigate turns all of them into one endpoint your tools can trust, and shows you everything it does.

01 How it works

One base URL. Every request routed, translated and metered.

Your tools talk to Omnigate instead of each provider. Omnigate picks the target, falls back when one fails, and records every token.

ClientsGatewayProviders
Request inRouted outControl plane
02 Inside a request

Five things happen in the milliseconds after you hit enter.

01 · AUTHENTICATE

Know who's calling.

Every request carries an og- key. Omnigate checks it, applies that key's daily and monthly limits, and loads the right account's providers.

  • hashed keys
  • per-key quotas
  • multi-user
02 · RESOLVE

Turn a name into a plan.

The model name becomes an ordered list of targets: a combo, a provider/model pair, a bare model name, or your global fallback.

  • combos
  • bare names
  • global fallback
03 · TRANSLATE

Speak every dialect.

Anthropic Messages, Chat Completions or the Responses API come in. Whatever the provider speaks goes out. Streaming, tools and images survive the trip.

  • SSE both ways
  • tool calls
  • reasoning
04 · FALL BACK

Never drop a request.

A 429 or a 5xx? The next target answers in the same request, and the failing one cools down so the next call skips it.

  • retry-after aware
  • cooldown
  • same request
05 · METER

Count everything.

Tokens, latency, status and the target that served it land in the request log and count toward quotas, instantly.

  • request log
  • usage charts
  • error details
01 POST /v1/messages · key og-7f3a… · within quota ✓
03 Translation

Three API formats in. Any provider out.

Omnigate speaks Anthropic Messages, OpenAI Chat Completions and the OpenAI Responses API, and converts between them on the fly.

  • Claude Code on any modelRun it on GPT, Gemini, Mistral, Llama or a local Ollama model.
  • Codex CLI on any modelShell, apply_patch and every other Codex tool become regular function calls.
  • Nothing lost in translationTool calls, image inputs and reasoning summaries survive every hop.
Inbound formatUpstream
combo: codingSIMULATED
→ openai/gpt-4.1 429 rate limited · cooldown 30s
↻ falling back to target 2
✓ anthropic/claude-sonnet 200 · streamed in 812 ms
04 Fallback

Rate limited? Your agent never notices.

Group models into combos. When a target errors or returns 429, Omnigate retries the next one in the same request, then cools the failing target down.

  • CombosVirtual model names made of ordered targets across any providers.
  • Smart cooldownRespects retry-after and moves hot targets to the back of the line.
  • Global fallbackUnknown model names, like the ones agents send, land on a combo you choose.
05 Why Omnigate

Ten things other routers leave out.

01 / 10 · scroll →
06 Built for coding agents

Works with the tools you already use.

Set a base URL and a key. That's the whole integration.

Claude Code

Messages API with streaming, tool use and thinking blocks, on any model you route to.

export ANTHROPIC_BASE_URL="http://127.0.0.1:20130"
export ANTHROPIC_AUTH_TOKEN="og-your-key"
export ANTHROPIC_MODEL="coding"
claude
› fix the failing test in src/api.ts
  served by anthropic/claude-sonnet · 1.2 s

Codex CLI

Full Responses API: reasoning summaries, custom tools like apply_patch, and shell calls.

[model_providers.omnigate]
base_url = "http://127.0.0.1:20130/v1"
wire_api = "responses"

Cursor

Override the OpenAI base URL and add your combo as a model.

OpenAI-compatible

Cline & Continue

Pick "OpenAI Compatible", paste the URL. Done.

VS Code & JetBrains

Any SDK, any language

OpenAI and Anthropic SDKs in Python, JavaScript, Go and more. Change one line.

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:20130/v1")
07 Observability

See every request, token and fallback.

A built-in dashboard shows traffic, latency, errors and which target actually served each call. Give every teammate or app its own key with limits.

  • Inbox-style request logStatus, latency, tokens and the full error for anything that failed.
  • Per-key quotasCap spend per person, per project or per CI job.
  • Keyboard-firstj / k to move, / to search. Feels like your mail client.
localhost:20130 · Activity
Requests0
Tokens0
Success0
Avg latency0
Requests · last 14 days■ served  ■ via fallback
API key quotas · this month
team-backend
6.4M/10M
ci-pipeline
880/1k
design-bot
1.5M/5M
14provider presets with one-click model sync
3API formats, translated both ways
3ways to run: CLI, desktop, cloud
1SQLite file holds everything
0external services required
08 Run it your way

Terminal, desktop or cloud. Same engine.

Start on your laptop, then move to a shared server when your team joins.

$ npm start
Omnigate v0.3.0 · local mode
✓ dashboard  http://127.0.0.1:20130
✓ openai     /v1/chat/completions
✓ responses  /v1/responses
✓ anthropic  /v1/messages
$ 
CLI

For developers

One command, one port, zero config files.

Omnigate●
Open dashboard
Copy base URL
Start at login✓
Quit
Desktop

For everyone

Windows, macOS and Linux app that lives in your tray and starts with your computer.

Cloud

For teams

Multi-user accounts, admin controls and isolated data per user. One docker compose up.

09 Security

Your keys stay sealed. Your network stays closed.

Provider keys are encrypted with AES-256-GCM before they touch the disk. In cloud mode, Omnigate refuses to call private or internal addresses.

  • Hardened sign-inscrypt password hashing, signed sessions and lockout after repeated failures.
  • Hashed client keysAPI keys are stored as SHA-256 hashes and shown only once.
  • Isolated tenantsEvery account has its own providers, combos, keys and logs.
Key at restSSRF guard
You pastesk-••••8f2a
SealAES-256-GCM
Storedenc:v1:Qm9x…
https://api.openai.com/v1ALLOWED
http://169.254.169.254/latestBLOCKED
http://10.0.0.12:8080BLOCKED
https://api.anthropic.comALLOWED
10 Compare

Everything a router should have. Nothing to bolt on.

CapabilityOmnigateTypical AI router
Anthropic + OpenAI formats, both directions✓✓
OpenAI Responses API for Codex CLI✓—
Combos with automatic fallback and cooldown✓✓
Native desktop app with tray & auto-start✓—
Multi-user cloud mode with admin controls✓—
Provider keys encrypted at rest✓—
SSRF protection for hosted deployments✓—
Per-key daily request & monthly token limits✓Partial
Single file storage, no external database✓Varies
11 Connect

Point your tool at Omnigate in under a minute.

12 Get started

Three steps to your first routed request.

1

Install

Grab the desktop app, or run the server from source.

npm install && npm run build
npm start
2

Add providers

Pick from 14 presets, paste a key, sync models in one click.

New → Provider → OpenAI
✓ 87 models synced
3

Connect a tool

Copy the ready-made snippet for your tool from the dashboard.

base_url = "http://127.0.0.1:20130/v1"
model    = "coding"

Stop babysitting rate limits.

Download Omnigate, add your providers, and let every agent you run share one reliable endpoint.

Windows 10/11 · 64-bit·macOS & Linux: build from source