## Features - Add token-saver dashboard page — decolua - Add bulk delete for provider connections — teddytkz - Resolve GitHub Copilot model catalog from upstream — caiqinzhou - Add Venice AI provider — Brokenc0de - Add Kiro external_idp import for Microsoft SSO (CLIProxyAPI) — Stevanus Pangau - Overhaul Blackbox provider catalog + WebUI test support — suryacagur ## Fixes - Provider thinking compatibility (DeepSeek/Gemini) — Mink Nguyen - Stop double-counting streaming usage at source — decolua - Usage logging dedupe to reduce stats churn — Mink Nguyen - Prevent non-JSON SSE lines / duplicate [DONE] from breaking clients (PR #2046) — qianze - Resolve Gemini TTS models from catalog — nguyenha935 - Support Kiro IDC (organization) token import — quanturbo - Preserve forced streaming for JSON clients (#2031) — Joseph Yaksich - Preserve Responses text format (Codex) — tenglong - Support Gemini native TTS generateContent endpoint — nguyenha935 - Add missing zh-CN endpoint key label (i18n) — weimaozhen - CodeBuddy: only send reasoning params when client requests reasoning (#2071) — Rex - Show custom provider models in combo picker — Sapto - Docker: add docker-compose.yml with headroom enabled by default — nitsuahlabs - Clarify token diagnostics vs provider billing (headroom, #1998) — Sutarto Jordan Chrisfivo - Translate openai-responses input through OpenAI for compression (#1998) — Ankit - Kiro: report 1M context window for claude-opus-4.8 — EdisonPVE - Avoid stale redirects after auth changes (#2100) — Emirhan - Mark Claude Opus 4.7 (dashed id) as 1M context — Brokenc0de - Preserve reasoning effort through Codex translations — ntdung6868 - Token-saver: full width card layout — decolua - Antigravity: retry transient upstream failures — Sutarto Jordan Chrisfivo - Param-support: handle strip rules without match/drop (#1960) — Joseph Yaksich - Translator: resolve custom provider prefix in debug endpoint (#1083) — hamsa0x7
9Router - FREE AI Router & Token Saver
Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.
Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.
🤔 Why 9Router?
Stop wasting money, tokens and hitting limits:
- ❌ Subscription quota expires unused every month
- ❌ Rate limits stop you mid-coding
- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast
- ❌ Expensive APIs ($20-50/month per provider)
9Router solves this:
- ✅ RTK Token Saver - Auto-compress tool_result, save 20-40% tokens
- ✅ Maximize subscriptions - Track quota, use every bit before reset
- ✅ Auto fallback - Subscription → Cheap → Free, zero downtime
- ✅ Multi-account - Round-robin between accounts per provider
- ✅ Universal - Works with any OpenAI/Claude-compatible CLI
⚡ Quick Start
Option 1 — npm (recommended for desktop):
npm install -g 9router
9router
# Or run directly with npx
npx 9router
Option 2 — Docker (server/VPS):
docker run -d --name 9router -p 20128:20128 \
-v "$HOME/.9router:/app/data" -e DATA_DIR=/app/data \
decolua/9router:latest
Published images: Docker Hub • GHCR (multi-platform amd64/arm64).
🎉 Dashboard opens at http://localhost:20128
2. Connect a FREE provider (no signup needed):
Dashboard → Providers → Connect Kiro AI (free Claude unlimited) or OpenCode Free (no auth) → Done!
3. Use in your CLI tool:
Claude Code/Codex/OpenClaw/Cursor/Cline Settings:
Endpoint: http://localhost:20128/v1
API Key: [copy from dashboard]
Model: kr/claude-sonnet-4.5
That's it! Start coding with FREE AI models.
🚀 CLI Options
9router # Start 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 all options
Dashboard: http://localhost:20128/dashboard
🛠️ Supported CLI Tools
Claude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider
Any tool supporting OpenAI/Claude-compatible API works.
💾 Data Location
- macOS/Linux:
~/.9router/db/data.sqlite - Windows:
%APPDATA%/9router/db/data.sqlite - Docker:
/app/data/db/data.sqlite(mount$HOME/.9routerto persist)
📚 Documentation
Full docs, advanced setup, video tutorials & development guide:
- GitHub: https://github.com/decolua/9router
- Full README: https://github.com/decolua/9router/blob/main/app/README.md
- Website: https://9router.com
🙏 Acknowledgments
- CLIProxyAPI - Original Go implementation
📄 License
MIT License - see LICENSE for details.