
SRouter
Local-first AI Gateway: Connect Claude Code, Cursor, Windsurf, & Cline to Antigravity, OpenAI, Claude, & Gemini. One endpoint, OAuth auto-refresh, quota pool…
Install with your AI
Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.
Install and set up SRouter (git-clone project) into my current project. Found on https://claudeers.com/srouter Repo: https://github.com/seaavey/SRouter Homepage/docs: https://www.npmjs.com/package/@srouter/cli Detected install method: git-clone → git clone https://github.com/seaavey/SRouter Category: rag. Platforms: cli, api, web. Read the repo's README for exact setup and env vars, then install it and wire it into my project. Claudeers Health Verdict: active; community-verified: false. Confirm the source before running anything.
git clone https://github.com/seaavey/SRouter
// compatibility
| Platforms | cli, api, web |
|---|---|
| Operating systems | — |
| AI compatibility | claude |
| License | MIT |
| Pricing | open-source |
| Language | TypeScript |
⚡ SRouter
Local-first AI gateway & LLM proxy for OpenAI, Anthropic, and custom models.
Keep a single stable endpoint while SRouter routes requests, refreshes OAuth tokens, enforces quotas, and monitors live telemetry.
Quick Start • Providers • Coding Tools • Integrations • API • Docker
⚡ Quick Start
Get SRouter running locally in under a minute.
Option A: Docker (Recommended)
docker run -d \
--name srouter \
--restart unless-stopped \
-p 3000:3000 \
-p 1455:1455 \
-v $HOME/.srouter:/root/.srouter \
ghcr.io/seaavey/srouter:latest
Data is persisted on the host at
~/.srouter($HOME/.srouter). Using a named volume likesrouter_data:/root/.srouterwill store data inside Docker at/var/lib/docker/volumes/srouter_data/_datainstead of on the host.
Option B: Local Node.js
git clone https://github.com/seaavey/SRouter.git
cd SRouter
pnpm install
pnpm build
pnpm start
Open http://localhost:3000 to access the dashboard. Configure your provider accounts under Providers, generate a virtual key in API Keys, and test endpoints immediately in Playground.
🔌 Connect Coding Tools
Use @srouter/cli to configure AI developer tools with one command:
# Interactive setup wizard
npx @srouter/cli setup
# Check status & link tools
npx @srouter/cli doctor
npx @srouter/cli link claude --model claude-3-7-sonnet
npx @srouter/cli link opencode --model antigravity/gemini-3.7-flash-high
# Run tools directly wrapped in SRouter environment
npx @srouter/cli run claude
Manual Configuration (Cursor / Windsurf / Cline / Continue)
Point your editor or extension to your local SRouter instance:
- Base URL:
http://localhost:3000/v1 - API Key:
sr-live-your_key(or your master admin key) - Model: Any model from
http://localhost:3000/v1/models(e.g.antigravity/gemini-3.7-flash-high,openai_codex/gpt-4o)
🌐 Supported Providers
SRouter normalizes authentication and protocol differences across all major model providers:
| Provider | Model Prefix | Auth Method | Streaming | Live Quota |
|---|---|---|---|---|
| Google Antigravity | antigravity/* | OAuth 2.0 PKCE | ✅ | ✅ |
| OpenAI Codex / ChatGPT | openai_codex/* | OAuth 2.0 PKCE | ✅ | ✅ |
| Anthropic Claude | anthropic/* | API Key / OAuth | ✅ | ✅ |
| OpenCode Zen | opencode_zen/* | Free / Access Token | ✅ | ✅ |
| Amazon Q / Kiro | kiro/* | SigV4 / API Key | ✅ | ✅ |
| Qoder | qoder/* | OAuth / Device Token | ✅ | ✅ |
| GoRouter | gorouter/* | API Key | ✅ | ✅ |
| BluesMinds | bluesminds/* | API Key | ✅ | ✅ |
| SeekAI / TabiToken | seekai/*, tabitoken/* | API Key | ✅ | ✅ |
| Custom Endpoints | custom/* | Custom Headers | ✅ | Configurable |
💻 Integrate
SRouter exposes standard OpenAI and Anthropic compatible interfaces.
OpenAI SDK (Python)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:3000/v1",
api_key="sr-live-your_virtual_key"
)
stream = client.chat.completions.create(
model="antigravity/gemini-3.7-flash-high",
messages=[{"role": "user", "content": "Explain vector embeddings in one sentence."}],
stream=True
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
Anthropic SDK (TypeScript)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "http://localhost:3000/v1",
apiKey: "sr-live-your_virtual_key"
});
const message = await client.messages.create({
model: "anthropic/claude-3-7-sonnet",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello from SRouter!" }]
});
console.log(message.content[0].text);
cURL
curl -N http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sr-live-your_virtual_key" \
-d '{
"model": "antigravity/gemini-3.7-flash-high",
"messages": [{"role": "user", "content": "Ping!"}],
"stream": true
}'
🎯 Core Features
- Unified Protocol Translation: Translate between OpenAI
chat/completionsand Anthropicmessagesformats dynamically. - Automated OAuth Refresh: Background daemon automatically keeps short-lived OAuth sessions refreshed without downtime.
- Failover & Smart Combo Routing: Define cascade fallback chains to automatically recover from rate limits (
429) or provider outages. - Token Saver Engine: System-level prompt compression and concise coding rules to cut inference cost.
- Virtual API Keys: Issue scoped keys (
sr-live-*) with individual rate limits, token quotas, and expiration windows. - Built-in Cloudflare Tunnel: Expose your local gateway securely to the internet with zero open ports directly from the UI.
- Embedded Observability: Track exact token usage, cache efficiency, and estimated costs locally in SQLite WAL mode.
📡 API Endpoints
All gateway endpoints are served under /v1:
Inference & Models
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/chat/completions | OpenAI chat completion (streaming supported) |
POST | /v1/messages | Anthropic messages endpoint |
GET | /v1/models | List all discovered & connected models |
GET | /v1/models/:model | Retrieve specific model schema & capabilities |
Management & Metrics
| Method | Endpoint | Description |
|---|---|---|
GET | /health | Server health check |
GET | /v1/quota | Real-time provider balance & reset countdowns |
GET / POST | /v1/providers | Read or connect provider accounts |
GET / POST | /v1/keys | Manage virtual API keys |
GET | /v1/logs | Query request audit logs and token telemetry |
GET / POST | /v1/tunnel/* | Manage Cloudflare Tunnel daemon state |
🐳 Docker Compose
services:
srouter:
image: ghcr.io/seaavey/srouter:latest
container_name: srouter
restart: unless-stopped
ports:
- "3000:3000"
- "1455:1455"
volumes:
- ${HOME}/.srouter:/root/.srouter
environment:
- PORT=3000
- NODE_ENV=production
🛠️ Development
# Install dependencies
pnpm install
# Start local dev server (API + Dashboard with HMR)
pnpm dev
# Quality checks
pnpm lint
pnpm test
pnpm build
💬 Community & Updates
For the latest news, updates, and community discussions, follow our official WhatsApp Channel:
👉 Follow SRouter WhatsApp Channel
📄 License
Distributed under the MIT License.
// faq
What is SRouter?
Local-first AI Gateway: Connect Claude Code, Cursor, Windsurf, & Cline to Antigravity, OpenAI, Claude, & Gemini. One endpoint, OAuth auto-refresh, quota pooling & failover.. It is open-source on GitHub.
Is SRouter free to use?
SRouter is open-source under the MIT license, so it is free to use.
What category does SRouter belong to?
SRouter is listed under rag in the Claudeers registry of Claude-compatible tools.
// embed badge
[](https://claudeers.com/srouter)
// retro hit counter
[](https://claudeers.com/srouter)
// reviews
// guestbook
// related in RAG & Knowledge
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant contex…
✨ Light and Fast AI Assistant. Support: Web | iOS | MacOS | Android | Linux | Windows
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
A light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.