Universal AI Proxy for Claude Code, Codex, Cursor | OpenAI, Claude, Gemini, Copilot
🌐 Website: 9router.com
A JavaScript port of CLIProxyAPI with web dashboard.
9Router is a powerful AI API proxy server that provides unified access to multiple AI providers through a single endpoint. It features automatic format translation, intelligent fallback routing, OAuth authentication, and a modern web dashboard for easy management.
Key Highlights:
- JavaScript Port: Converted from CLIProxyAPI (Go) to JavaScript/Node.js.
- Universal CLI Support: Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, AmpCode, and other CLI tools
- Cross-Platform: Runs on Windows, Linux, and macOS
- Easy Deployment: Simple installation via npx, or deploy to VPS
- 🔄 Multi-Provider Support: Unified endpoint for 15+ AI providers (Claude, OpenAI, Gemini, GitHub Copilot, Qwen, iFlow, DeepSeek, Kimi, MiniMax, GLM, etc.)
- 🔐 OAuth & API Key Authentication: Supports both OAuth2 flow and API key authentication
- 🎯 Format Translation: Automatic request/response translation between OpenAI, Claude, Gemini, Codex, and Ollama formats
- 🌐 Web Dashboard: Beautiful React-based dashboard for managing providers, combos, API keys, and settings
- 📊 Usage Tracking: Real-time monitoring and analytics for all API requests
- 🎲 Combo System: Create model combos with automatic fallback support
- ♻️ Intelligent Fallback: Automatic account rotation when rate limits or errors occur
- ⚡ Response Caching: Optimized caching for Claude Code (1-hour cache vs default 5 minutes)
- 🔧 Model Aliases: Create custom model aliases for easier management
- ☁️ Cloud Deployment: Deploy to Cloud for Cursor IDE integration with global edge performance
- OpenAI Format: Standard OpenAI Chat Completions API
- Claude Format: Anthropic Messages API
- Gemini Format: Google Generative AI API
- OpenAI Responses API: Codex CLI format
- Ollama Format: Compatible with Ollama-based tools
- Works with: Cursor, Claude Code, OpenAI Codex, Cline, RooCode, AmpCode, and more
- Seamless integration with popular AI coding assistants
# Install globally
npm install -g 9router
9router
# Run directly with npx
npx 9router9router # Start server with default settings
9router --port 8080 # Custom port
9router --no-browser # Don't open browser
9router --skip-update # Skip auto-update check
9router --help # Show helpDashboard: http://localhost:20128/dashboard
User data stored at:
- macOS/Linux:
~/.9router/db.json - Windows:
%APPDATA%/9router/db.json
# Clone repository
git clone https://github.com/yourusername/9router.git
cd 9router
# Install dependencies
npm install
# Start development server
npm run dev9router/
├── src/
│ ├── app/ # Next.js app (dashboard & API routes)
│ ├── lib/ # Core libraries (DB, OAuth, etc.)
│ ├── shared/ # Shared components & utilities
│ └── sse/ # SSE streaming handlers
├── open-sse/ # Core proxy engine (translator, handlers)
│ ├── translator/ # Format translators
│ ├── handlers/ # Request handlers
│ ├── services/ # Core services
│ └── config/ # Provider configurations
└── public/ # Static assets
| Layer | Technology |
|---|---|
| Runtime | Node.js 20+ / Bun |
| Framework | Next.js 15 |
| Dashboard | React 19 + Tailwind CSS 4 |
| Database | LowDB (JSON file-based) |
| CLI | Node.js CLI with auto-update |
| Streaming | Server-Sent Events (SSE) |
| Auth | OAuth 2.0 (PKCE) + API Keys |
| Deployment | Standalone / VPS |
| State Management | Zustand |
- lowdb: Lightweight JSON database
- undici: High-performance HTTP client
- uuid: Unique identifier generation
- open: Cross-platform browser launcher
Special thanks to:
- CLIProxyAPI: The original Go implementation that inspired this project. 9Router is a JavaScript port with some features and web dashboard.
MIT License - see LICENSE for details.
