Real web bridges for Qwen, GLM 5.3, DeepSeek and Gemini — plus the free OpenCode Zen provider. All behind one endpoint: OAuth connection with zero key copy-paste, automatic failover and token compression. One binary, no dependencies.
The built-in oc provider connects to OpenCode’s Zen gateway — exactly what 9router does. Its free models only need a random session ID, which OmniRouter generates for you. No sign-up, no keys.
Free zen IDs rotate over time — OmniRouter refreshes the list every 60 seconds; whatever shows up lands in your catalog and dashboard instantly.
Output from tools like git diff, grep and long logs typically burns 30–50% of an agentic prompt budget. OmniRouter’s built-in Token Saver — inspired by RTK in 9router — compresses them before they reach the model: automatic detection, zero configuration, safe by design.
Huge hunks are dropped; the file list and a +/− stat per file stay behind. A 50k-char diff shrinks to a few hundred bytes.
Duplicate lines are deduped, per-file caps applied and repeats collapsed as ×N — output shrinks by orders of magnitude.
Long path listings compress into file and folder counts plus a sample of top paths — the model keeps a correct picture of your project.
Huge generic text? The head and tail of what matters are kept; the middle is replaced with a removal marker.
If a filter errors or grows the payload, the original text passes through silently — compression can never break a request.
Output modes: short, technical replies with Caveman; YAGNI coding styles in Lite / Full / Ultra with Ponytail — both ride on RTK.
Like 9router, build named combos: expensive first, then cheap, then free. When a step fails or runs out of quota, the next answers silently. The auto model runs this smart chain by itself.
Every 9router capability that makes sense on a web-bridge architecture — plus things only OmniRouter has: real DeepSeek PoW, live Google model discovery and automatic tool detection.
429, 401 or 5xx? The next candidate steps in before the first streamed byte, while failing providers cool down briefly and healthy traffic keeps flowing.
/v1/chat/completions and /v1/messages — full OpenAI and Anthropic translation with thinking blocks and tool-calling on both sides.
Real tokens per request (usage extracted from JSON and SSE tails), 48 hourly buckets per provider/model/key, and a 500-entry ring log.
sk- keys with request quotas and model allowlists like qwen/*, fully managed from the dashboard — web tokens never reach a client.
Map any name to any upstream model. Point "glm" at glm-5.3; clients stay untouched and switching models is one click.
Plug any OpenAI-compatible API: Gemini AI Studio, OpenRouter, Groq, Ollama, LM Studio — with ready presets and automatic model fetch.
/v1/messages/count_tokens answers without an upstream round-trip — for client context budgeting.
An overview with the 48-hour chart, providers, Token Saver, combos, keys, a streaming playground with thinking output and a live log — all local.
A single dependency-free Go binary for Windows, Linux and macOS (amd64 + arm64); start.sh, start.bat and docker-compose included.
No Node, no Python, no Docker. Grab the binary, run it, take a key from the dashboard — done.
Grab a release or build it yourself:
Open localhost:8080 (password: ADMIN_PASSWORD). An sk- key is ready; drop your web tokens into .env.
Set the endpoint, pick a model — or just use auto:
If a tool speaks OpenAI or Anthropic, it speaks OmniRouter. Copy the snippet, set endpoint and key — done.
In ~/.config/opencode/opencode.json — oc/* models need no external key:
Cline → API Provider settings:
For Cline’s Anthropic mode, the same Base URL with the /v1/messages route and your sk- key works.
Claude Code connects via the Anthropic protocol:
In ~/.codex/config.toml:
Cursor → Settings → Models → OpenAI API Key → Override Base URL:
Hermes speaks OpenAI with full tool-calling — live-tested with the R1→R2 cycle:
Like 9router: your tool announces itself, you approve one code. Every client gets its own virtual key that you can revoke from the dashboard at any moment.
POST /oauth/device/start with a client name returns an 8-character code like K7QW-2XRT — the same standard Copilot and Cline use./oauth/authorize page, check the client and code, hit “Approve & connect” — or approve or deny it from the dashboard.sk-omni-… key via POST /oauth/device/poll; its usage is tracked separately and revocation is instant.OmniRouter takes the 9router pattern seriously — every capability that makes sense on our web-bridge architecture is implemented.
Our own live tests on this very router — coding, tool-calling and guest-mode stability.
Strongest for coding and tool-calling — the full R1→R2 cycle proven live. needs token
Z.AI’s fresh flagship — live in the catalog. The fast GLM 5.3-flash variant covers chat and light agents.
The most stable tokenless mode — Google guest and the first fallback in every combo; real vision too.
Strong reasoning with automatic PoW — the official DeepSeek wasm inside the binary, no external service.
zen’s free tier for a zero-to-hero start; with nemotron-3-ultra-free and mimo-v2.5-free.
Add a custom provider — AI Studio, OpenRouter, Groq, Ollama — the rest of the path is identical.
One binary, five providers, free keyless models — and a chain that never stops.