[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-169":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":16,"starSnapshotCount":16,"syncStatus":48,"lastSyncTime":49,"discoverSource":50},169,"9router","decolua\u002F9router","decolua","Unlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude\u002FGPT\u002FGemini via 40+ providers. Auto-fallback, RTK -40% tokens, never hit limits.",null,"https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router","JavaScript",17261,2632,65,369,0,98,980,8824,535,45,false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"claude-code","cursor","ai-agents","ai-gateway","anthropic","chatgpt","claude","cline","codex","copilot","deepseek","free-ai","gemini","gemini-cli","llm","llm-gateway","openai","openai-proxy","qwen","token-saver","2026-06-12 02:00:09","\u003Cdiv align=\"center\">\n  \u003Cimg src=\".\u002Fimages\u002F9router.png?1\" alt=\"9Router Dashboard\" width=\"800\"\u002F>\n  \n  # 9Router - FREE AI Router & Token Saver\n  \n  **Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**\n  \n  **Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**\n  \n  [![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F9router.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F9router)\n  [![Downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002F9router.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F9router)\n  [![License](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002F9router.svg)](https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router\u002Fblob\u002Fmain\u002FLICENSE)\n\n  \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F22628\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F22628\" alt=\"decolua%2F9router | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n  \n  [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Setup](#-setup-guide) • [🌐 Website](https:\u002F\u002F9router.com)\n\n  [🇻🇳 Tiếng Việt](.\u002Fi18n\u002FREADME.vi.md) • [🇨🇳 中文](.\u002Fi18n\u002FREADME.zh-CN.md) • [🇯🇵 日本語](.\u002Fi18n\u002FREADME.ja-JP.md)\n\u003C\u002Fdiv>\n\n---\n\n## 🤔 Why 9Router?\n\n**Stop wasting money, tokens and hitting limits:**\n\n- ❌ Subscription quota expires unused every month\n- ❌ Rate limits stop you mid-coding\n- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast\n- ❌ Expensive APIs ($20-50\u002Fmonth per provider)\n- ❌ Manual switching between providers\n\n**9Router solves this:**\n\n- ✅ **RTK Token Saver** - Auto-compress tool_result content, save 20-40% tokens per request\n- ✅ **Maximize subscriptions** - Track quota, use every bit before reset\n- ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime\n- ✅ **Multi-account** - Round-robin between accounts per provider\n- ✅ **Universal** - Works with Claude Code, Codex, Cursor, Cline, any CLI tool\n\n---\n\n## 🔄 How It Works\n\n```\n┌─────────────┐\n│  Your CLI   │  (Claude Code, Codex, OpenClaw, Cursor, Cline...)\n│   Tool      │\n└──────┬──────┘\n       │ http:\u002F\u002Flocalhost:20128\u002Fv1\n       ↓\n┌─────────────────────────────────────────────┐\n│           9Router (Smart Router)            │\n│  • RTK Token Saver (cut tool_result tokens) │\n│  • Format translation (OpenAI ↔ Claude)     │\n│  • Quota tracking                           │\n│  • Auto token refresh                       │\n└──────┬──────────────────────────────────────┘\n       │\n       ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, GitHub Copilot\n       │   ↓ quota exhausted\n       ├─→ [Tier 2: CHEAP] GLM ($0.6\u002F1M), MiniMax ($0.2\u002F1M)\n       │   ↓ budget limit\n       └─→ [Tier 3: FREE] Kiro, OpenCode Free, Vertex ($300 credits)\n\nResult: Never stop coding, minimal cost + 20-40% token savings via RTK\n```\n\n---\n\n## ⚡ Quick Start\n\n**1. Install globally:**\n\n```bash\nnpm install -g 9router\n9router\n```\n\n🎉 Dashboard opens at `http:\u002F\u002Flocalhost:20128`\n\n**2. Connect a FREE provider (no signup needed):**\n\nDashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done!\n\n**3. Use in your CLI tool:**\n\n```\nClaude Code\u002FCodex\u002FOpenClaw\u002FCursor\u002FCline Settings:\n  Endpoint: http:\u002F\u002Flocalhost:20128\u002Fv1\n  API Key: [copy from dashboard]\n  Model: kr\u002Fclaude-sonnet-4.5\n```\n\n**That's it!** Start coding with FREE AI models.\n\n**Alternative: run from source (this repository):**\n\nThis repository package is private (`9router-app`), so source\u002FDocker execution is the expected local development path.\n\n```bash\ncp .env.example .env\nnpm install\nPORT=20128 NEXT_PUBLIC_BASE_URL=http:\u002F\u002Flocalhost:20128 npm run dev\n```\n\nProduction mode:\n\n```bash\nnpm run build\nPORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http:\u002F\u002Flocalhost:20128 npm run start\n```\n\nDefault URLs:\n- Dashboard: `http:\u002F\u002Flocalhost:20128\u002Fdashboard`\n- OpenAI-compatible API: `http:\u002F\u002Flocalhost:20128\u002Fv1`\n\n---\n\n## Video Guides\n\n\u003Cdiv align=\"center\">\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"320\">\n      \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=raEyZPg5xE0\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FraEyZPg5xE0\u002Fmaxresdefault.jpg\" alt=\"9Router Setup Tutorial\" width=\"300\"\u002F>\n      \u003C\u002Fa>\u003Cbr\u002F>\n      \u003Cb>🇺🇸 English\u003C\u002Fb>\u003Cbr\u002F>\n      \u003Csub>9Router + Claude Code FREE Setup\u003Cbr\u002F>by \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@BuildAIWithHamid\">Build AI With Hamid\u003C\u002Fa>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"320\">\n      \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=X69n5Lm06Yw\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FX69n5Lm06Yw\u002Fmaxresdefault.jpg\" alt=\"Tiết kiệm chi phí LLM với 9Router\" width=\"300\"\u002F>\n      \u003C\u002Fa>\u003Cbr\u002F>\n      \u003Cb>🇻🇳 Tiếng Việt\u003C\u002Fb>\u003Cbr\u002F>\n      \u003Csub>Tiết kiệm chi phí LLM cho OpenClaw với 9Router\u003Cbr\u002F>by \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fc\u002FM%C3%ACAIblog\">Mì AI\u003C\u002Fa>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"320\">\n      \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=o3qYCyjrFYg\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002Fo3qYCyjrFYg\u002Fmaxresdefault.jpg\" alt=\"Claude Code FREE Forever\" width=\"300\"\u002F>\n      \u003C\u002Fa>\u003Cbr\u002F>\n      \u003Cb>🇺🇸 English\u003C\u002Fb>\u003Cbr\u002F>\n      \u003Csub>Claude Code FREE Forever — Unlimited Models\u003Cbr\u002F>by \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@BuildAIWithHamid\">Build AI With Hamid\u003C\u002Fa>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"320\">\n      \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Ttpc26m39Dw\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FTtpc26m39Dw\u002Fmaxresdefault.jpg\" alt=\"Claude CLI Free Setup\" width=\"300\"\u002F>\n      \u003C\u002Fa>\u003Cbr\u002F>\n      \u003Cb>🇺🇸 English\u003C\u002Fb>\u003Cbr\u002F>\n      \u003Csub>Claude CLI Free Setup with 9Router 🚀\u003Cbr\u002F>by \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@CodeVerseSoban\">CodeVerse Soban\u003C\u002Fa>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"320\">\n      \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=G-5A_D5Pm6Y\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FG-5A_D5Pm6Y\u002Fmaxresdefault.jpg\" alt=\"Cài đặt OpenClaw Free A-Z\" width=\"300\"\u002F>\n      \u003C\u002Fa>\u003Cbr\u002F>\n      \u003Cb>🇻🇳 Tiếng Việt\u003C\u002Fb>\u003Cbr\u002F>\n      \u003Csub>Cài Đặt OpenClaw Free Từ A-Z + 9Router\u003Cbr\u002F>by \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@maigia\">Mai Gia\u003C\u002Fa>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"320\">\n      \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JXmg8_gccgE\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FJXmg8_gccgE\u002Fmaxresdefault.jpg\" alt=\"FREE OpenClaw with Claude Opus\" width=\"300\"\u002F>\n      \u003C\u002Fa>\u003Cbr\u002F>\n      \u003Cb>🇺🇸 English\u003C\u002Fb>\u003Cbr\u002F>\n      \u003Csub>FREE OpenClaw + Claude Opus 4.6\u003Cbr\u002F>by \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@BuildAIWithHamid\">Build AI With Hamid\u003C\u002Fa>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003C\u002Fdiv>\n\n> 🎬 **Made a video about 9Router?** Submit a [Pull Request](https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router\u002Fpulls) adding your video to this section — we'll merge it!\n\n---\n\n## 🛠️ Supported CLI Tools\n\n9Router works seamlessly with all major AI coding tools:\n\n\u003Cdiv align=\"center\">\n  \u003Ctable>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fclaude.png\" width=\"60\" alt=\"Claude Code\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Claude-Code\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fopenclaw.png\" width=\"60\" alt=\"OpenClaw\"\u002F>\u003Cbr\u002F>\n        \u003Cb>OpenClaw\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcodex.png\" width=\"60\" alt=\"Codex\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Codex\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fopencode.png\" width=\"60\" alt=\"OpenCode\"\u002F>\u003Cbr\u002F>\n        \u003Cb>OpenCode\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcursor.png\" width=\"60\" alt=\"Cursor\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Cursor\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fantigravity.png\" width=\"60\" alt=\"Antigravity\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Antigravity\u003C\u002Fb>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcline.png\" width=\"60\" alt=\"Cline\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Cline\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcontinue.png\" width=\"60\" alt=\"Continue\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Continue\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fdroid.png\" width=\"60\" alt=\"Droid\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Droid\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Froo.png\" width=\"60\" alt=\"Roo\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Roo\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcopilot.png\" width=\"60\" alt=\"Copilot\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Copilot\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fkilocode.png\" width=\"60\" alt=\"Kilo Code\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Kilo Code\u003C\u002Fb>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n---\n\n## 🌐 Supported Providers\n\n### 🔐 OAuth Providers\n\n\u003Cdiv align=\"center\">\n  \u003Ctable>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fclaude.png\" width=\"60\" alt=\"Claude Code\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Claude-Code\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fantigravity.png\" width=\"60\" alt=\"Antigravity\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Antigravity\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcodex.png\" width=\"60\" alt=\"Codex\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Codex\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fgithub.png\" width=\"60\" alt=\"GitHub\"\u002F>\u003Cbr\u002F>\n        \u003Cb>GitHub\u003C\u002Fb>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"120\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcursor.png\" width=\"60\" alt=\"Cursor\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Cursor\u003C\u002Fb>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n### 🆓 Free Providers\n\n\u003Cdiv align=\"center\">\n  \u003Ctable>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"150\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fkiro.png\" width=\"70\" alt=\"Kiro\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Kiro AI\u003C\u002Fb>\u003Cbr\u002F>\n        \u003Csub>Claude 4.5 + GLM-5 + MiniMax\u003Cbr\u002F>Unlimited FREE\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"150\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fopencode.png\" width=\"70\" alt=\"OpenCode Free\"\u002F>\u003Cbr\u002F>\n        \u003Cb>OpenCode Free\u003C\u002Fb>\u003Cbr\u002F>\n        \u003Csub>No auth • Auto-fetch models\u003Cbr\u002F>Unlimited FREE\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"150\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fgemini.png\" width=\"70\" alt=\"Vertex AI\"\u002F>\u003Cbr\u002F>\n        \u003Cb>Vertex AI\u003C\u002Fb>\u003Cbr\u002F>\n        \u003Csub>Gemini 3 Pro + GLM-5 + DeepSeek\u003Cbr\u002F>$300 credits free\u003C\u002Fsub>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n> **Note:** iFlow, Qwen and Gemini CLI free tiers were discontinued in 2026. Use Kiro \u002F OpenCode Free \u002F Vertex instead.\n\n### 🔑 API Key Providers (40+)\n\n\u003Cdiv align=\"center\">\n  \u003Ctable>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fopenrouter.png\" width=\"50\" alt=\"OpenRouter\"\u002F>\u003Cbr\u002F>\n        \u003Csub>OpenRouter\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fglm.png\" width=\"50\" alt=\"GLM\"\u002F>\u003Cbr\u002F>\n        \u003Csub>GLM\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fkimi.png\" width=\"50\" alt=\"Kimi\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Kimi\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fminimax.png\" width=\"50\" alt=\"MiniMax\"\u002F>\u003Cbr\u002F>\n        \u003Csub>MiniMax\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fopenai.png\" width=\"50\" alt=\"OpenAI\"\u002F>\u003Cbr\u002F>\n        \u003Csub>OpenAI\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fanthropic.png\" width=\"50\" alt=\"Anthropic\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Anthropic\u003C\u002Fsub>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fgemini.png\" width=\"50\" alt=\"Gemini\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Gemini\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fdeepseek.png\" width=\"50\" alt=\"DeepSeek\"\u002F>\u003Cbr\u002F>\n        \u003Csub>DeepSeek\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fgroq.png\" width=\"50\" alt=\"Groq\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Groq\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fxai.png\" width=\"50\" alt=\"xAI\"\u002F>\u003Cbr\u002F>\n        \u003Csub>xAI\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fmistral.png\" width=\"50\" alt=\"Mistral\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Mistral\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fperplexity.png\" width=\"50\" alt=\"Perplexity\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Perplexity\u003C\u002Fsub>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Ftogether.png\" width=\"50\" alt=\"Together\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Together AI\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Ffireworks.png\" width=\"50\" alt=\"Fireworks\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Fireworks\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcerebras.png\" width=\"50\" alt=\"Cerebras\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Cerebras\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fcohere.png\" width=\"50\" alt=\"Cohere\"\u002F>\u003Cbr\u002F>\n        \u003Csub>Cohere\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fnvidia.png\" width=\"50\" alt=\"NVIDIA\"\u002F>\u003Cbr\u002F>\n        \u003Csub>NVIDIA\u003C\u002Fsub>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"100\">\n        \u003Cimg src=\".\u002Fpublic\u002Fproviders\u002Fsiliconflow.png\" width=\"50\" alt=\"SiliconFlow\"\u002F>\u003Cbr\u002F>\n        \u003Csub>SiliconFlow\u003C\u002Fsub>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp>\u003Ci>...and 20+ more providers including Nebius, Chutes, Hyperbolic, and custom OpenAI\u002FAnthropic compatible endpoints\u003C\u002Fi>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n---\n\n## 💡 Key Features\n\n| Feature | What It Does | Why It Matters |\n|---------|--------------|----------------|\n| 🚀 **RTK Token Saver** ([RTK](https:\u002F\u002Fgithub.com\u002Frtk-ai\u002Frtk) ⭐40K) | Compress tool outputs (`git diff`, `grep`, `ls`, `tree`...) before sending to LLM | Save **20-40% input tokens** per request |\n| 🪨 **Caveman Mode** ([Caveman](https:\u002F\u002Fgithub.com\u002FJuliusBrussee\u002Fcaveman) ⭐52K) | Inject caveman-speak prompt → LLM replies terse, technical substance preserved | Save **up to 65% output tokens** |\n| 🎯 **Smart 3-Tier Fallback** | Auto-route: Subscription → Cheap → Free | Never stop coding, zero downtime |\n| 📊 **Real-Time Quota Tracking** | Live token count + reset countdown | Maximize subscription value |\n| 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro ↔ Vertex | Works with any CLI tool |\n| 👥 **Multi-Account Support** | Multiple accounts per provider | Load balancing + redundancy |\n| 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically | No manual re-login needed |\n| 🎨 **Custom Combos** | Create unlimited model combinations | Tailor fallback to your needs |\n| 📝 **Request Logging** | Debug mode with full request\u002Fresponse logs | Troubleshoot issues easily |\n| 💾 **Cloud Sync** | Sync config across devices | Same setup everywhere |\n| 📊 **Usage Analytics** | Track tokens, cost, trends over time | Optimize spending |\n| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers | Flexible deployment options |\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>📖 Feature Details\u003C\u002Fb>\u003C\u002Fsummary>\n\n### 🚀 RTK Token Saver\n\nTool outputs (`git diff`, `grep`, `find`, `ls`, `tree`, log dumps...) often eat 30-50% of your prompt budget. RTK detects them and applies smart, lossless compression **before** the request hits the LLM:\n\n- **Filters:** `git-diff`, `git-status`, `grep`, `find`, `ls`, `tree`, `dedup-log`, `smart-truncate`, `read-numbered`, `search-list`\n- **Auto-detect:** No config needed — RTK peeks the first 1KB of each `tool_result` and picks the right filter.\n- **Safe by design:** If a filter fails, throws, or makes output bigger, RTK silently keeps the original text. Errors never break your request.\n- **Universal:** Works across all formats (OpenAI, Claude, Gemini, Cursor, Kiro, OpenAI Responses) because it runs **before** any format translation.\n- **Default ON:** Toggle anytime in Dashboard → Endpoint settings.\n\n```\nWithout RTK: 47K tokens sent to LLM\nWith RTK:    28K tokens sent to LLM   (40% saved · same context · same answer)\n```\n\n### 🎯 Smart 3-Tier Fallback\n\nCreate combos with automatic fallback:\n\n```\nCombo: \"my-coding-stack\"\n  1. cc\u002Fclaude-opus-4-6        (your subscription)\n  2. glm\u002Fglm-4.7               (cheap backup, $0.6\u002F1M)\n  3. if\u002Fkimi-k2-thinking       (free fallback)\n\n→ Auto switches when quota runs out or errors occur\n```\n\n### 📊 Real-Time Quota Tracking\n\n- Token consumption per provider\n- Reset countdown (5-hour, daily, weekly)\n- Cost estimation for paid tiers\n- Monthly spending reports\n\n### 🔄 Format Translation\n\nSeamless translation between formats:\n- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **Cursor** ↔ **Kiro** ↔ **Vertex** ↔ **Antigravity** ↔ **Ollama** ↔ **OpenAI Responses**\n- Your CLI tool sends OpenAI format → 9Router translates → Provider receives native format\n- Works with any tool that supports custom OpenAI endpoints\n\n### 👥 Multi-Account Support\n\n- Add multiple accounts per provider\n- Auto round-robin or priority-based routing\n- Fallback to next account when one hits quota\n\n### 🔄 Auto Token Refresh\n\n- OAuth tokens automatically refresh before expiration\n- No manual re-authentication needed\n- Seamless experience across all providers\n\n### 🎨 Custom Combos\n\n- Create unlimited model combinations\n- Mix subscription, cheap, and free tiers\n- Name your combos for easy access\n- Share combos across devices with Cloud Sync\n\n### 📝 Request Logging\n\n- Enable debug mode for full request\u002Fresponse logs\n- Track API calls, headers, and payloads\n- Troubleshoot integration issues\n- Export logs for analysis\n\n### 💾 Cloud Sync\n\n- Sync providers, combos, and settings across devices\n- Automatic background sync\n- Secure encrypted storage\n- Access your setup from anywhere\n\n#### Cloud Runtime Notes\n\n- Prefer server-side cloud variables in production:\n  - `BASE_URL` (internal callback URL used by sync scheduler)\n  - `CLOUD_URL` (cloud sync endpoint base)\n- `NEXT_PUBLIC_BASE_URL` and `NEXT_PUBLIC_CLOUD_URL` are still supported for compatibility\u002FUI, but server runtime now prioritizes `BASE_URL`\u002F`CLOUD_URL`.\n- Cloud sync requests now use timeout + fail-fast behavior to avoid UI hanging when cloud DNS\u002Fnetwork is unavailable.\n\n### 📊 Usage Analytics\n\n- Track token usage per provider and model\n- Cost estimation and spending trends\n- Monthly reports and insights\n- Optimize your AI spending\n\n> **💡 IMPORTANT - Understanding Dashboard Costs:**\n> \n> The \"cost\" displayed in Usage Analytics is **for tracking and comparison purposes only**. \n> 9Router itself **never charges** you anything. You only pay providers directly (if using paid services).\n> \n> **Example:** If your dashboard shows \"$290 total cost\" while using iFlow models, this represents \n> what you would have paid using paid APIs directly. Your actual cost = **$0** (iFlow is free unlimited).\n> \n> Think of it as a \"savings tracker\" showing how much you're saving by using free models or \n> routing through 9Router!\n\n### 🌐 Deploy Anywhere\n\n- 💻 **Localhost** - Default, works offline\n- ☁️ **VPS\u002FCloud** - Share across devices\n- 🐳 **Docker** - One-command deployment\n- 🚀 **Cloudflare Workers** - Global edge network\n\n\u003C\u002Fdetails>\n\n---\n\n## 💰 Pricing at a Glance\n\n| Tier | Provider | Cost | Quota Reset | Best For |\n|------|----------|------|-------------|----------|\n| **🚀 TOKEN SAVER** | **RTK (built-in)** | **FREE** | Always on | **Save 20-40% tokens on EVERY request** |\n| **💳 SUBSCRIPTION** | Claude Code (Pro\u002FMax) | $20-200\u002Fmo | 5h + weekly | Already subscribed |\n| | Codex (Plus\u002FPro) | $20-200\u002Fmo | 5h + weekly | OpenAI users |\n| | GitHub Copilot | $10-19\u002Fmo | Monthly | GitHub users |\n| | Cursor IDE | $20\u002Fmo | Monthly | Cursor users |\n| **💰 CHEAP** | GLM-5.1 \u002F GLM-4.7 | $0.6\u002F1M | Daily 10AM | Budget backup |\n| | MiniMax M2.7 | $0.2\u002F1M | 5-hour rolling | Cheapest option |\n| | Kimi K2.5 | $9\u002Fmo flat | 10M tokens\u002Fmo | Predictable cost |\n| **🆓 FREE** | Kiro AI | $0 | Unlimited | Claude 4.5 + GLM-5 + MiniMax free |\n| | OpenCode Free | $0 | Unlimited | No auth, auto-fetch models |\n| | Vertex AI | $300 credits | New GCP accounts | Gemini 3 Pro + DeepSeek + GLM-5 |\n\n**💡 Pro Tip:** RTK + Kiro AI + OpenCode Free combo = **$0 cost + 20-40% token savings**!\n\n---\n\n### 📊 Understanding 9Router Costs & Billing\n\n**9Router Billing Reality:**\n\n✅ **9Router software = FREE forever** (open source, never charges)  \n✅ **Dashboard \"costs\" = Display\u002Ftracking only** (not actual bills)  \n✅ **You pay providers directly** (subscriptions or API fees)  \n✅ **FREE providers stay FREE** (iFlow, Kiro, Qwen = $0 unlimited)  \n❌ **9Router never sends invoices** or charges your card\n\n**How Cost Display Works:**\n\nThe dashboard shows **estimated costs** as if you were using paid APIs directly. This is **not billing** - it's a comparison tool to show your savings.\n\n**Example Scenario:**\n```\nDashboard Display:\n• Total Requests: 1,662\n• Total Tokens: 47M\n• Display Cost: $290\n\nReality Check:\n• Provider: iFlow (FREE unlimited)\n• Actual Payment: $0.00\n• What $290 Means: Amount you SAVED by using free models!\n```\n\n**Payment Rules:**\n- **Subscription providers** (Claude Code, Codex): Pay them directly via their websites\n- **Cheap providers** (GLM, MiniMax): Pay them directly, 9Router just routes\n- **FREE providers** (iFlow, Kiro, Qwen): Genuinely free forever, no hidden charges\n- **9Router**: Never charges anything, ever\n\n---\n\n## 🎯 Use Cases\n\n### Case 1: \"I have Claude Pro subscription\"\n\n**Problem:** Quota expires unused, rate limits during heavy coding\n\n**Solution:**\n```\nCombo: \"maximize-claude\"\n  1. cc\u002Fclaude-opus-4-7        (use subscription fully)\n  2. glm\u002Fglm-5.1               (cheap backup when quota out)\n  3. kr\u002Fclaude-sonnet-4.5      (free emergency fallback)\n\nMonthly cost: $20 (subscription) + ~$5 (backup) = $25 total\nvs. $20 + hitting limits = frustration\n```\n\n### Case 2: \"I want zero cost\"\n\n**Problem:** Can't afford subscriptions, need reliable AI coding\n\n**Solution:**\n```\nCombo: \"free-forever\"\n  1. kr\u002Fclaude-sonnet-4.5      (Claude 4.5 free unlimited)\n  2. kr\u002Fglm-5                  (GLM-5 free via Kiro)\n  3. oc\u002F\u003Cauto>                 (OpenCode Free, no auth)\n\nMonthly cost: $0\nQuality: Production-ready models + RTK saves 20-40% tokens\n```\n\n### Case 3: \"I need 24\u002F7 coding, no interruptions\"\n\n**Problem:** Deadlines, can't afford downtime\n\n**Solution:**\n```\nCombo: \"always-on\"\n  1. cc\u002Fclaude-opus-4-7        (best quality)\n  2. cx\u002Fgpt-5.5                (second subscription)\n  3. glm\u002Fglm-5.1               (cheap, resets daily)\n  4. minimax\u002FMiniMax-M2.7      (cheapest, 5h reset)\n  5. kr\u002Fclaude-sonnet-4.5      (free unlimited)\n\nResult: 5 layers of fallback = zero downtime\nMonthly cost: $20-200 (subscriptions) + $10-20 (backup)\n```\n\n### Case 4: \"I want FREE AI in OpenClaw\"\n\n**Problem:** Need AI assistant in messaging apps (WhatsApp, Telegram, Slack...), completely free\n\n**Solution:**\n```\nCombo: \"openclaw-free\"\n  1. kr\u002Fclaude-sonnet-4.5      (Claude 4.5 free)\n  2. kr\u002Fglm-5                  (GLM-5 free)\n  3. kr\u002FMiniMax-M2.5           (MiniMax free)\n\nMonthly cost: $0\nAccess via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...\n```\n\n---\n\n## ❓ Frequently Asked Questions\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>📊 Why does my dashboard show high costs?\u003C\u002Fb>\u003C\u002Fsummary>\n\nThe dashboard tracks your token usage and displays **estimated costs** as if you were using paid APIs directly. This is **not actual billing** - it's a reference to show how much you're saving by using free models or existing subscriptions through 9Router.\n\n**Example:**\n- **Dashboard shows:** \"$290 total cost\"\n- **Reality:** You're using iFlow (FREE unlimited)\n- **Your actual cost:** **$0.00**\n- **What $290 means:** Amount you **saved** by using free models instead of paid APIs!\n\nThe cost display is a \"savings tracker\" to help you understand your usage patterns and optimization opportunities.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>💳 Will I be charged by 9Router?\u003C\u002Fb>\u003C\u002Fsummary>\n\n**No.** 9Router is free, open-source software that runs on your own computer. It never charges you anything.\n\n**You only pay:**\n- ✅ **Subscription providers** (Claude Code $20\u002Fmo, Codex $20-200\u002Fmo) → Pay them directly on their websites\n- ✅ **Cheap providers** (GLM, MiniMax) → Pay them directly, 9Router just routes your requests\n- ❌ **9Router itself** → **Never charges anything, ever**\n\n9Router is a local proxy\u002Frouter. It doesn't have your credit card, can't send invoices, and has no billing system. It's completely free software.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🆓 Are FREE providers really unlimited?\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Yes!** The current FREE providers (Kiro, OpenCode Free, Vertex) are genuinely free with **no hidden charges**.\n\nThese are free services offered by those respective companies:\n- **Kiro AI**: Free unlimited Claude 4.5 + GLM-5 + MiniMax via AWS Builder ID \u002F Google \u002F GitHub OAuth\n- **OpenCode Free**: No-auth passthrough proxy, models auto-fetched from `opencode.ai\u002Fzen\u002Fv1\u002Fmodels`\n- **Vertex AI**: $300 free credits for new Google Cloud accounts (90 days)\n\n9Router just routes your requests to them - there's no \"catch\" or future billing. They're truly free services, and 9Router makes them easy to use with fallback support.\n\n**Discontinued free tiers (no longer recommended):**\n- ❌ **iFlow**: Was free unlimited, now changed to paid (2026)\n- ❌ **Qwen Code**: Free OAuth tier discontinued by Alibaba on 2026-04-15\n- ❌ **Gemini CLI**: Still works, but using it with non-CLI tools (Claude, Codex, Cursor...) may result in account bans — only use if you stick to Gemini CLI itself\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>💰 How do I minimize my actual AI costs?\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Free-First Strategy:**\n\n1. **Start with 100% free combo:**\n   ```\n   1. gc\u002Fgemini-3-flash (180K\u002Fmonth free from Google)\n   2. if\u002Fkimi-k2-thinking (unlimited free from iFlow)\n   3. qw\u002Fqwen3-coder-plus (unlimited free from Qwen)\n   ```\n   **Cost: $0\u002Fmonth**\n\n2. **Add cheap backup** only if you need it:\n   ```\n   4. glm\u002Fglm-4.7 ($0.6\u002F1M tokens)\n   ```\n   **Additional cost: Only pay for what you actually use**\n\n3. **Use subscription providers last:**\n   - Only if you already have them\n   - 9Router helps maximize their value through quota tracking\n\n**Result:** Most users can operate at $0\u002Fmonth using only free tiers!\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>📈 What if my usage suddenly spikes?\u003C\u002Fb>\u003C\u002Fsummary>\n\n9Router's smart fallback prevents surprise charges:\n\n**Scenario:** You're on a coding sprint and blow through your quotas\n\n**Without 9Router:**\n- ❌ Hit rate limit → Work stops → Frustration\n- ❌ Or: Accidentally rack up huge API bills\n\n**With 9Router:**\n- ✅ Subscription hits limit → Auto-fallback to cheap tier\n- ✅ Cheap tier gets expensive → Auto-fallback to free tier\n- ✅ Never stop coding → Predictable costs\n\n**You're in control:** Set spending limits per provider in dashboard, and 9Router respects them.\n\n\u003C\u002Fdetails>\n\n---\n\n## 📖 Setup Guide\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔐 Subscription Providers (Maximize Value)\u003C\u002Fb>\u003C\u002Fsummary>\n\n### Claude Code (Pro\u002FMax)\n\n```bash\nDashboard → Providers → Connect Claude Code\n→ OAuth login → Auto token refresh\n→ 5-hour + weekly quota tracking\n\nModels:\n  cc\u002Fclaude-opus-4-7\n  cc\u002Fclaude-opus-4-6\n  cc\u002Fclaude-sonnet-4-6\n  cc\u002Fclaude-haiku-4-5-20251001\n```\n\n**Pro Tip:** Use Opus for complex tasks, Sonnet for speed. 9Router tracks quota per model!\n\n### OpenAI Codex (Plus\u002FPro)\n\n```bash\nDashboard → Providers → Connect Codex\n→ OAuth login (port 1455)\n→ 5-hour + weekly reset\n\nModels:\n  cx\u002Fgpt-5.5\n  cx\u002Fgpt-5.4\n  cx\u002Fgpt-5.3-codex\n  cx\u002Fgpt-5.2-codex\n```\n\n### GitHub Copilot\n\n```bash\nDashboard → Providers → Connect GitHub\n→ OAuth via GitHub\n→ Monthly reset (1st of month)\n\nModels:\n  gh\u002Fgpt-5.4\n  gh\u002Fclaude-opus-4.7\n  gh\u002Fclaude-sonnet-4.6\n  gh\u002Fgemini-3.1-pro-preview\n  gh\u002Fgrok-code-fast-1\n```\n\n### Cursor IDE\n\n```bash\nDashboard → Providers → Connect Cursor\n→ OAuth login\n→ Monthly subscription\n\nModels:\n  cu\u002Fclaude-4.6-opus-max\n  cu\u002Fclaude-4.5-sonnet-thinking\n  cu\u002Fgpt-5.3-codex\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>💰 Cheap Providers (Backup)\u003C\u002Fb>\u003C\u002Fsummary>\n\n### GLM-5.1 \u002F GLM-4.7 (Daily reset, $0.6\u002F1M)\n\n1. Sign up: [Zhipu AI](https:\u002F\u002Fopen.bigmodel.cn\u002F)\n2. Get API key from Coding Plan\n3. Dashboard → Add API Key:\n   - Provider: `glm`\n   - API Key: `your-key`\n\n**Use:** `glm\u002Fglm-5.1`, `glm\u002Fglm-5`, `glm\u002Fglm-4.7`\n\n**Pro Tip:** Coding Plan offers 3× quota at 1\u002F7 cost! Reset daily 10:00 AM.\n\n### MiniMax M2.7 (5h reset, $0.20\u002F1M)\n\n1. Sign up: [MiniMax](https:\u002F\u002Fwww.minimax.io\u002F)\n2. Get API key\n3. Dashboard → Add API Key\n\n**Use:** `minimax\u002FMiniMax-M2.7`, `minimax\u002FMiniMax-M2.5`\n\n**Pro Tip:** Cheapest option for long context (1M tokens)!\n\n### Kimi K2.5 ($9\u002Fmonth flat)\n\n1. Subscribe: [Moonshot AI](https:\u002F\u002Fplatform.moonshot.ai\u002F)\n2. Get API key\n3. Dashboard → Add API Key\n\n**Use:** `kimi\u002Fkimi-k2.5`, `kimi\u002Fkimi-k2.5-thinking`\n\n**Pro Tip:** Fixed $9\u002Fmonth for 10M tokens = $0.90\u002F1M effective cost!\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🆓 FREE Providers (Recommended)\u003C\u002Fb>\u003C\u002Fsummary>\n\n### Kiro AI (Claude 4.5 + GLM-5 + MiniMax FREE)\n\n```bash\nDashboard → Connect Kiro\n→ AWS Builder ID, AWS IAM Identity Center, Google, or GitHub\n→ Unlimited usage\n\nModels:\n  kr\u002Fclaude-sonnet-4.5\n  kr\u002Fclaude-haiku-4.5\n  kr\u002Fglm-5\n  kr\u002FMiniMax-M2.5\n  kr\u002Fqwen3-coder-next\n  kr\u002Fdeepseek-3.2\n```\n\n**Pro Tip:** Best free option for Claude. No API key, no payment, fully unlimited.\n\n### OpenCode Free (No auth, auto-fetch models)\n\n```bash\nDashboard → Connect OpenCode Free\n→ No login required (passthrough proxy)\n→ Models auto-fetched from opencode.ai\u002Fzen\u002Fv1\u002Fmodels\n```\n\n**Pro Tip:** Fastest setup. Just connect and start coding.\n\n### Vertex AI ($300 free credits for new GCP accounts)\n\n```bash\nDashboard → Connect Vertex AI\n→ Upload Google Cloud Service Account JSON\n→ Enable Vertex AI API in your GCP project\n\nModels:\n  vertex\u002Fgemini-3.1-pro-preview\n  vertex\u002Fgemini-3-flash-preview\n  vertex\u002Fgemini-2.5-flash\n\nVertex Partner (Anthropic \u002F DeepSeek \u002F GLM \u002F Qwen via Vertex):\n  vertex-partner\u002Fglm-5-maas\n  vertex-partner\u002Fdeepseek-v3.2-maas\n  vertex-partner\u002Fqwen3-next-80b-a3b-thinking-maas\n```\n\n**Pro Tip:** New Google Cloud accounts get $300 credits free for 90 days. Plenty for daily coding.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🎨 Create Combos\u003C\u002Fb>\u003C\u002Fsummary>\n\n### Example 1: Maximize Subscription → Cheap Backup\n\n```\nDashboard → Combos → Create New\n\nName: premium-coding\nModels:\n  1. cc\u002Fclaude-opus-4-7 (Subscription primary)\n  2. glm\u002Fglm-5.1 (Cheap backup, $0.6\u002F1M)\n  3. minimax\u002FMiniMax-M2.7 (Cheapest fallback, $0.20\u002F1M)\n\nUse in CLI: premium-coding\n\nMonthly cost example (100M tokens):\n  80M via Claude (subscription): $0 extra\n  15M via GLM: $9\n  5M via MiniMax: $1\n  Total: $10 + your subscription\n```\n\n### Example 2: Free-Only (Zero Cost)\n\n```\nName: free-combo\nModels:\n  1. kr\u002Fclaude-sonnet-4.5 (Claude 4.5 free unlimited)\n  2. kr\u002Fglm-5 (GLM-5 free via Kiro)\n  3. vertex\u002Fgemini-3.1-pro-preview ($300 free credits)\n\nCost: $0 forever (+ 20-40% token savings via RTK)!\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔧 CLI Integration\u003C\u002Fb>\u003C\u002Fsummary>\n\n### Cursor IDE\n\n```\nSettings → Models → Advanced:\n  OpenAI API Base URL: http:\u002F\u002Flocalhost:20128\u002Fv1\n  OpenAI API Key: [from 9router dashboard]\n  Model: cc\u002Fclaude-opus-4-7\n```\n\nOr use combo: `premium-coding`\n\n### Claude Code\n\nEdit `~\u002F.claude\u002Fconfig.json`:\n\n```json\n{\n  \"anthropic_api_base\": \"http:\u002F\u002Flocalhost:20128\u002Fv1\",\n  \"anthropic_api_key\": \"your-9router-api-key\"\n}\n```\n\n### Codex CLI\n\n```bash\nexport OPENAI_BASE_URL=\"http:\u002F\u002Flocalhost:20128\"\nexport OPENAI_API_KEY=\"your-9router-api-key\"\n\ncodex \"your prompt\"\n```\n\n### OpenClaw\n\n**Option 1 — Dashboard (recommended):**\n\n```\nDashboard → CLI Tools → OpenClaw → Select Model → Apply\n```\n\n**Option 2 — Manual:** Edit `~\u002F.openclaw\u002Fopenclaw.json`:\n\n```json\n{\n  \"agents\": {\n    \"defaults\": {\n      \"model\": {\n        \"primary\": \"9router\u002Fkr\u002Fclaude-sonnet-4.5\"\n      }\n    }\n  },\n  \"models\": {\n    \"providers\": {\n      \"9router\": {\n        \"baseUrl\": \"http:\u002F\u002F127.0.0.1:20128\u002Fv1\",\n        \"apiKey\": \"sk_9router\",\n        \"api\": \"openai-completions\",\n        \"models\": [\n          {\n            \"id\": \"kr\u002Fclaude-sonnet-4.5\",\n            \"name\": \"Claude Sonnet 4.5 (Kiro Free)\"\n          }\n        ]\n      }\n    }\n  }\n}\n```\n\n> **Note:** OpenClaw only works with local 9Router. Use `127.0.0.1` instead of `localhost` to avoid IPv6 resolution issues.\n\n### Cline \u002F Continue \u002F RooCode\n\n```\nProvider: OpenAI Compatible\nBase URL: http:\u002F\u002Flocalhost:20128\u002Fv1\nAPI Key: [from dashboard]\nModel: cc\u002Fclaude-opus-4-7\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🚀 Deployment\u003C\u002Fb>\u003C\u002Fsummary>\n\n### VPS Deployment\n\n```bash\n# Clone and install\ngit clone https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router.git\ncd 9router\nnpm install\nnpm run build\n\n# Configure\nexport JWT_SECRET=\"your-secure-secret-change-this\"\nexport INITIAL_PASSWORD=\"your-password\"\nexport DATA_DIR=\"\u002Fvar\u002Flib\u002F9router\"\nexport PORT=\"20128\"\nexport HOSTNAME=\"0.0.0.0\"\nexport NODE_ENV=\"production\"\nexport NEXT_PUBLIC_BASE_URL=\"http:\u002F\u002Flocalhost:20128\"\nexport NEXT_PUBLIC_CLOUD_URL=\"https:\u002F\u002F9router.com\"\nexport API_KEY_SECRET=\"endpoint-proxy-api-key-secret\"\nexport MACHINE_ID_SALT=\"endpoint-proxy-salt\"\n\n# Start\nnpm run start\n\n# Or use PM2\nnpm install -g pm2\npm2 start npm --name 9router -- start\npm2 save\npm2 startup\n```\n\n### Docker\n\n```bash\n# Build image (from repository root)\ndocker build -t 9router .\n\n# Run container (command used in current setup)\ndocker run -d \\\n  --name 9router \\\n  -p 20128:20128 \\\n  --env-file \u002Froot\u002Fdev\u002F9router\u002F.env \\\n  -v 9router-data:\u002Fapp\u002Fdata \\\n  -v 9router-usage:\u002Froot\u002F.9router \\\n  9router\n```\n\nPortable command (if you are already at repository root):\n\n```bash\ndocker run -d \\\n  --name 9router \\\n  -p 20128:20128 \\\n  --env-file .\u002F.env \\\n  -v 9router-data:\u002Fapp\u002Fdata \\\n  -v 9router-usage:\u002Froot\u002F.9router \\\n  9router\n```\n\nContainer defaults:\n- `PORT=20128`\n- `HOSTNAME=0.0.0.0`\n\nUseful commands:\n\n```bash\ndocker logs -f 9router\ndocker restart 9router\ndocker stop 9router && docker rm 9router\n```\n\n### Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `JWT_SECRET` | `9router-default-secret-change-me` | JWT signing secret for dashboard auth cookie (**change in production**) |\n| `INITIAL_PASSWORD` | `123456` | First login password when no saved hash exists |\n| `DATA_DIR` | `~\u002F.9router` | Main app database location (`db.json`) |\n| `PORT` | framework default | Service port (`20128` in examples) |\n| `HOSTNAME` | framework default | Bind host (Docker defaults to `0.0.0.0`) |\n| `NODE_ENV` | runtime default | Set `production` for deploy |\n| `BASE_URL` | `http:\u002F\u002Flocalhost:20128` | Server-side internal base URL used by cloud sync jobs |\n| `CLOUD_URL` | `https:\u002F\u002F9router.com` | Server-side cloud sync endpoint base URL |\n| `NEXT_PUBLIC_BASE_URL` | `http:\u002F\u002Flocalhost:3000` | Backward-compatible\u002Fpublic base URL (prefer `BASE_URL` for server runtime) |\n| `NEXT_PUBLIC_CLOUD_URL` | `https:\u002F\u002F9router.com` | Backward-compatible\u002Fpublic cloud URL (prefer `CLOUD_URL` for server runtime) |\n| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | HMAC secret for generated API keys |\n| `MACHINE_ID_SALT` | `endpoint-proxy-salt` | Salt for stable machine ID hashing |\n| `ENABLE_REQUEST_LOGS` | `false` | Enables request\u002Fresponse logs under `logs\u002F` |\n| `AUTH_COOKIE_SECURE` | `false` | Force `Secure` auth cookie (set `true` behind HTTPS reverse proxy) |\n| `REQUIRE_API_KEY` | `false` | Enforce Bearer API key on `\u002Fv1\u002F*` routes (recommended for internet-exposed deploys) |\n| `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, `NO_PROXY` | empty | Optional outbound proxy for upstream provider calls |\n\nNotes:\n- Lowercase proxy variables are also supported: `http_proxy`, `https_proxy`, `all_proxy`, `no_proxy`.\n- `.env` is not baked into Docker image (`.dockerignore`); inject runtime config with `--env-file` or `-e`.\n- On Windows, `APPDATA` can be used for local storage path resolution.\n- `INSTANCE_NAME` appears in older docs\u002Fenv templates, but is currently not used at runtime.\n\n### Runtime Files and Storage\n\n- Main app state: `${DATA_DIR}\u002Fdb.json` (providers, combos, aliases, keys, settings), managed by `src\u002Flib\u002FlocalDb.js`.\n- Usage history and logs: `${DATA_DIR}\u002Fusage.json` and `${DATA_DIR}\u002Flog.txt`, managed by `src\u002Flib\u002FusageDb.js`.\n- Optional request\u002Ftranslator logs: `\u003Crepo>\u002Flogs\u002F...` when `ENABLE_REQUEST_LOGS=true`.\n- Both `${DATA_DIR}` and `~\u002F.9router` resolve to the same location in a Docker container — the symlink `\u002Froot\u002F.9router -> \u002Fapp\u002Fdata` is created at build time.\n\n\u003C\u002Fdetails>\n\n---\n\n## 📊 Available Models\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>View all available models\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Claude Code (`cc\u002F`)** - Pro\u002FMax:\n- `cc\u002Fclaude-opus-4-7`\n- `cc\u002Fclaude-opus-4-6`\n- `cc\u002Fclaude-sonnet-4-6`\n- `cc\u002Fclaude-sonnet-4-5-20250929`\n- `cc\u002Fclaude-haiku-4-5-20251001`\n\n**Codex (`cx\u002F`)** - Plus\u002FPro:\n- `cx\u002Fgpt-5.5`\n- `cx\u002Fgpt-5.4`\n- `cx\u002Fgpt-5.3-codex`\n- `cx\u002Fgpt-5.2-codex`\n- `cx\u002Fgpt-5.1-codex-max`\n\n**GitHub Copilot (`gh\u002F`)**:\n- `gh\u002Fgpt-5.4`\n- `gh\u002Fclaude-opus-4.7`\n- `gh\u002Fclaude-sonnet-4.6`\n- `gh\u002Fgemini-3.1-pro-preview`\n- `gh\u002Fgrok-code-fast-1`\n\n**Cursor (`cu\u002F`)** - Subscription:\n- `cu\u002Fclaude-4.6-opus-max`\n- `cu\u002Fclaude-4.5-sonnet-thinking`\n- `cu\u002Fgpt-5.3-codex`\n- `cu\u002Fkimi-k2.5`\n\n**GLM (`glm\u002F`)** - $0.6\u002F1M:\n- `glm\u002Fglm-5.1`\n- `glm\u002Fglm-5`\n- `glm\u002Fglm-4.7`\n\n**MiniMax (`minimax\u002F`)** - $0.2\u002F1M:\n- `minimax\u002FMiniMax-M2.7`\n- `minimax\u002FMiniMax-M2.5`\n\n**Kimi (`kimi\u002F`)** - $9\u002Fmo flat:\n- `kimi\u002Fkimi-k2.5`\n- `kimi\u002Fkimi-k2.5-thinking`\n\n**Kiro (`kr\u002F`)** - FREE unlimited:\n- `kr\u002Fclaude-sonnet-4.5`\n- `kr\u002Fclaude-haiku-4.5`\n- `kr\u002Fglm-5`\n- `kr\u002FMiniMax-M2.5`\n- `kr\u002Fqwen3-coder-next`\n- `kr\u002Fdeepseek-3.2`\n\n**OpenCode Free (`oc\u002F`)** - FREE no-auth:\n- Auto-fetched from `opencode.ai\u002Fzen\u002Fv1\u002Fmodels`\n\n**Vertex AI (`vertex\u002F`)** - $300 free credits:\n- `vertex\u002Fgemini-3.1-pro-preview`\n- `vertex\u002Fgemini-3-flash-preview`\n- `vertex\u002Fgemini-2.5-flash`\n- `vertex-partner\u002Fglm-5-maas`\n- `vertex-partner\u002Fdeepseek-v3.2-maas`\n\n\u003C\u002Fdetails>\n\n---\n\n## 🐛 Troubleshooting\n\n**\"Language model did not provide messages\"**\n- Provider quota exhausted → Check dashboard quota tracker\n- Solution: Use combo fallback or switch to cheaper tier\n\n**Rate limiting**\n- Subscription quota out → Fallback to GLM\u002FMiniMax\n- Add combo: `cc\u002Fclaude-opus-4-7 → glm\u002Fglm-5.1 → kr\u002Fclaude-sonnet-4.5`\n\n**OAuth token expired**\n- Auto-refreshed by 9Router\n- If issues persist: Dashboard → Provider → Reconnect\n\n**High costs**\n- Enable RTK in Dashboard → Endpoint settings (default ON, saves 20-40% tokens)\n- Check usage stats in Dashboard\n- Switch primary model to GLM\u002FMiniMax\n- Use free tier (Kiro, OpenCode Free, Vertex) for non-critical tasks\n\n**Dashboard opens on wrong port**\n- Set `PORT=20128` and `NEXT_PUBLIC_BASE_URL=http:\u002F\u002Flocalhost:20128`\n\n**First login not working**\n- Check `INITIAL_PASSWORD` in `.env`\n- If unset, fallback password is `123456`\n\n**No request logs under `logs\u002F`**\n- Set `ENABLE_REQUEST_LOGS=true`\n\n---\n\n## 🛠️ Tech Stack\n\n- **Runtime**: Node.js 20+\n- **Framework**: Next.js 16\n- **UI**: React 19 + Tailwind CSS 4\n- **Database**: LowDB (JSON file-based)\n- **Streaming**: Server-Sent Events (SSE)\n- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys\n\n---\n\n## 📝 API Reference\n\n### Chat Completions\n\n```bash\nPOST http:\u002F\u002Flocalhost:20128\u002Fv1\u002Fchat\u002Fcompletions\nAuthorization: Bearer your-api-key\nContent-Type: application\u002Fjson\n\n{\n  \"model\": \"cc\u002Fclaude-opus-4-6\",\n  \"messages\": [\n    {\"role\": \"user\", \"content\": \"Write a function to...\"}\n  ],\n  \"stream\": true\n}\n```\n\n### List Models\n\n```bash\nGET http:\u002F\u002Flocalhost:20128\u002Fv1\u002Fmodels\nAuthorization: Bearer your-api-key\n\n→ Returns all models + combos in OpenAI format\n```\n\n## 📧 Support\n\n- **Website**: [9router.com](https:\u002F\u002F9router.com)\n- **GitHub**: [github.com\u002Fdecolua\u002F9router](https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router)\n- **Issues**: [github.com\u002Fdecolua\u002F9router\u002Fissues](https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router\u002Fissues)\n\n---\n\n## 👥 Contributors\n\nThanks to all contributors who helped make 9Router better!\n\n[![Contributors](https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=decolua\u002F9router&max=150&columns=15&anon=1&v=20260309)](https:\u002F\u002Fgithub.com\u002Fdecolua\u002F9router\u002Fgraphs\u002Fcontributors)\n\n---\n\n## 📊 Star Chart\n\n[![Star Chart](https:\u002F\u002Fstarchart.cc\u002Fdecolua\u002F9router.svg?variant=adaptive)](https:\u002F\u002Fstarchart.cc\u002Fdecolua\u002F9router)\n\n\n\n## 🔀 Forks\n\n**[OmniRoute](https:\u002F\u002Fgithub.com\u002Fdiegosouzapw\u002FOmniRoute)** — A full-featured TypeScript fork of 9Router. Adds 36+ providers, 4-tier auto-fallback, multi-modal APIs (images, embeddings, audio, TTS), circuit breaker, semantic cache, LLM evaluations, and a polished dashboard. 368+ unit tests. Available via npm and Docker.\n\n---\n\n## 🙏 Acknowledgments\n\nBuilt on the shoulders of giants:\n\n- **CLIProxyAPI** — original Go implementation that inspired this JavaScript port.\n- **[RTK](https:\u002F\u002Fgithub.com\u002Frtk-ai\u002Frtk)** ![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Frtk-ai\u002Frtk?style=flat&color=yellow) — Rust token-saver. 9Router ports its compression pipeline to JS → **−20-40% input tokens** on every request.\n- **[Caveman](https:\u002F\u002Fgithub.com\u002FJuliusBrussee\u002Fcaveman)** ![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FJuliusBrussee\u002Fcaveman?style=flat&color=yellow) by **[@JuliusBrussee](https:\u002F\u002Fgithub.com\u002FJuliusBrussee)** — viral *\"why use many token when few token do trick\"*. 9Router adapts its prompt → **−65% output tokens**.\n\nHuge thanks to these authors — without their work, 9Router's token-saving features wouldn't exist. ⭐ them on GitHub!\n\n---\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n\u003Cdiv align=\"center\">\n  \u003Csub>Built with ❤️ for developers who code 24\u002F7\u003C\u002Fsub>\n\u003C\u002Fdiv>\n","9Router 是一个免费的AI编码路由工具，能够连接Claude Code、Codex、Cursor等40多个AI提供商和100多种模型。其核心功能包括RTK Token Saver技术，可自动压缩工具输出内容，节省20-40%的令牌使用；自动回退机制确保在订阅、廉价和免费服务之间无缝切换，避免因配额耗尽或预算限制而中断工作。此外，9Router还支持多账户轮询使用，帮助用户最大化利用订阅额度，并提供统一的接口格式转换。适用于需要频繁使用AI辅助编码但又希望控制成本的开发者和个人用户。",2,"2026-06-11 02:31:14","trending"]