docs/getting-started/PROVIDERS-GUIDE.md
TL;DR: A provider is a connection to an AI service (like OpenAI, Anthropic, Google). You need at least one provider to use OmniRoute.
Think of a provider like a phone carrier. Just as you need a phone carrier to make calls, you need an AI provider to use AI models. OmniRoute is like a phone that works with all carriers — you can switch between them automatically.
| Type | What It Is | Examples | Cost |
|---|---|---|---|
| Free | No payment required | Kiro, OpenCode Free, Pollinations | $0 |
| API Key | You need an API key | OpenAI, Anthropic, Google | Pay per use |
| OAuth | Login with your account | Claude Code, GitHub Copilot | Subscription |
| Web Cookie | Uses your browser session | ChatGPT Web, Gemini Web | $0 (uses your account) |
The first-run wizard offers an explicit Set up free providers card. It derives the current eligible list from OmniRoute's no-auth provider registry, then lets you review and deselect each provider before confirming. OmniRoute shows the provider's caution notice and a link to its site so you can review third-party terms, privacy, availability, and rate limits first.
This action is optional: finishing the wizard never creates free-provider connections silently. It creates only providers that are still missing, leaves existing customized connections untouched, and reports created, already-configured, and failed providers individually. You can safely retry only the failures after a partial result.
http://localhost:20128http://localhost:20128http://localhost:20128For Apple Silicon Macs with unified memory, OmniRoute supports connecting to local MLX models running via mlx-lm.server as regular OpenAI-compatible local providers.
curl -LsSf https://astral.sh/uv/install.sh | shuv pip install mlx-lmInstall dependencies:
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install mlx-lm
uv pip install mlx-lm
Start MLX servers manually (in separate terminals):
# Terminal 1: Gemma 4 26B A4B IT-QAT (port 11435)
uv run mlx_lm.server --model mlx-community/gemma-4-26B-A4B-it-qat-q4_0-mlx-aligned --port 11435 --host 127.0.0.1
# Terminal 2: Qwen 3.8 27B MLX Mixed (port 11436)
uv run mlx_lm.server --model maglun/Qwen3.8-27B-MLX-Mixed-3.80bpw --port 11436 --host 127.0.0.1
Connect in OmniRoute Dashboard:
Use with OpenCode:
# Configure OpenCode to use OmniRoute
opencode config set api.base_url http://localhost:20128/v1
opencode config set api.key <your-omniroute-api-key>
# Use MLX models
opencode run --model mlx-gemma/gemma-4-26b
opencode run --model mlx-qwen/qwen3.8-27b
Important: With 24GB unified memory, only one large MLX model can run at a time.
You must manage this manually:
OmniRoute does not automatically manage MLX server processes — it only routes requests to the OpenAI-compatible endpoints you configure.
Both models support OpenAI-compatible tool calling. Test with:
curl -X POST http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer <key>" \
-H "Content-Type: application/json" \
-d '{
"model": "mlx-gemma/gemma-4-26b",
"messages": [{"role": "user", "content": "What is 2+2? Use the calculator tool."}],
"tools": [{"type": "function", "function": {"name": "calculator", "description": "Calculate", "parameters": {"type": "object", "properties": {"expression": {"type": "string"}}, "required": ["expression"]}}}]
}'
| Issue | Solution |
|---|---|
| Server won't start | Check uv run mlx_lm.server --help and verify model IDs |
| Out of memory | Ensure only one model runs; close other apps; check Activity Monitor |
| Connection refused | Verify server is running on correct port (11435/11436) |
| Slow responses | First request loads model into memory (~30-60s); subsequent requests are fast |
| Tool calling fails | Ensure model supports tools; check OmniRoute logs for translation errors |
These providers offer free access with no credit card:
| Provider | Free Quota | Models | How to Connect |
|---|---|---|---|
| Kiro AI | 50 credits/month | Claude Sonnet 4.5, Haiku 4.5, Opus 4.6 | No auth needed |
| OpenCode Free | Unlimited | GPT-4o, Claude, Gemini | No auth needed |
| Pollinations | No key needed | GPT-5, Claude, Gemini, DeepSeek, Llama 4 | No auth needed |
| LongCat | 10M one-time | LongCat-2.0 | API key + KYC |
| Cloudflare AI | 10K neurons/day | 50+ models | No auth needed |
| NVIDIA NIM | ~40 RPM | 129 models | API key needed |
| Cerebras | 1M tokens/day | Qwen3 235B, GPT-OSS 120B | API key needed |
| Qwen | Unlimited | Qwen3-coder-plus/flash/next | No auth needed |
| Qoder | Unlimited | Kimi-K2, DeepSeek-R1, Qwen3-coder | No auth needed |
Tip: Connect multiple free providers for unlimited free AI with automatic fallback!
These providers offer high-quality models with API keys:
| Provider | Best Models | Cost | Free Tier |
|---|---|---|---|
| OpenAI | GPT-5, GPT-4o | $2.50-$10/1M tokens | $5 free credits |
| Anthropic | Claude Opus 4.6, Sonnet 4.6 | $3-$15/1M tokens | $5 free credits |
| Gemini 2.5 Pro, Flash | $0.075-$1.25/1M tokens | 1,500 req/day free | |
| DeepSeek | DeepSeek V4 | $0.14-$0.28/1M tokens | 5M free tokens |
| Groq | Llama 4, Mixtral | $0.05-$0.27/1M tokens | 30 RPM free |
| xAI | Grok 3 | $0.30-$0.60/1M tokens | — |
Go to http://localhost:20128 in your browser.
Click Providers in the sidebar.
Click the + Add Provider button.
Browse the list or search for your provider. Click on it.
Click Test Connection to verify it works.
Your provider is now connected. You can use it with model: "auto" or specify the provider directly.
OmniRoute works best with multiple providers. This gives you:
Connect at least 3 providers for the best experience:
Then use model: "auto" and OmniRoute will automatically pick the best one for each request.
No! OmniRoute is free and open-source. You can use free providers (Kiro, OpenCode Free, Pollinations) without paying anything. You only pay if you choose to use paid providers.
Start with Kiro AI — it's free, requires no API key, and gives you access to Claude models. Then add more providers as needed.
Yes! That's the whole point of OmniRoute. Connect multiple providers and use model: "auto" to let OmniRoute pick the best one for each request.
OmniRoute automatically skips failed providers and tries the next one. You don't need to do anything.
Go to Providers → click on the provider → click Disconnect.
Yes! If you already have API keys for OpenAI, Anthropic, Google, etc., you can use them in OmniRoute. Just paste them when connecting the provider.
Cursor plan images use IMAGE_PROVIDERS.cursor (cursor-agent-image). See CURSOR_IMAGE.md.