9router

中文文档
0.5.112发布于 2026/10/28MIT近 30 天下载 22.5万

9Router CLI - Start and manage 9Router server

原始使用文档
文档目录13 节
  1. 🤔 Why 9Router?
  2. ⚡ Quick Start
  3. 🚀 CLI Options
  4. 🔌 Connect to a Remote 9Router
  5. Models
  6. Overriding the server's models
  7. Checking the current config
  8. Other options
  9. 🛠️ Supported CLI Tools
  10. 💾 Data Location
  11. 📚 Documentation
  12. 🙏 Acknowledgments
  13. 📄 License

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.

npm Downloads Docker Pulls GHCR License

decolua%2F9router | Trendshift

🌐 Website • 📖 Full Docs


🤔 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


🔌 Connect to a Remote 9Router

Already running 9Router on another machine (e.g. a team server on your LAN)? Point this machine's CLI tools at it — no local server is started:

npx 9router connect http://<server-host>:20128                       # pick tools interactively
npx 9router connect http://<server-host>:20128 --tools claude,codex  # or choose up front
npx 9router connect --reset --tools claude,codex                     # undo

It logs in with the dashboard password (hidden prompt), reuses or creates an API key named cli-<hostname>, and writes each tool's config (backing up the original once as *.bak-9router).

Supported tools: claude, codex, opencode, droid, crush, kilo, cline, pi, omp, or all.

Models

Models come from the server's own CLI-tools configuration, so a client gets whatever the operator already picked on the dashboard. Nothing is hardcoded.

ToolModel taken from (first match wins)
claudetier flag (--opus …) → server's Claude tier → left unset (Claude Code's own default)
others--model → that tool's own model on the server → server's OpenCode model → tool skipped

kilo has no readable model on the server, so it always uses --model or the OpenCode model. omp (Oh My Pi) needs no model: it uses proxy discovery, so every server model appears under 9router in /model. A Claude tier the server doesn't set is removed from your config rather than kept from an earlier run. A skipped tool makes the command exit 1.

Overriding the server's models

# One Claude tier; the other tiers still come from the server
npx 9router connect http://<server-host>:20128 --tools claude --sonnet cc/claude-sonnet-5-5

# Every Claude tier
npx 9router connect http://<server-host>:20128 --tools claude \
  --fable cc/claude-fable-5-1 --opus cc/claude-opus-5-5 \
  --sonnet cc/claude-sonnet-5-5 --haiku cc/claude-haiku-4-5-20251001

# All non-Claude tools at once
npx 9router connect http://<server-host>:20128 --tools codex,opencode,kilo --model ocg/deepseek-flash

# Claude and other tools in one run
npx 9router connect http://<server-host>:20128 --tools claude,codex --opus cc/claude-opus-5-5 --model gpt-6

# A different model per tool: --model covers every non-Claude tool in a run, so run once per tool
npx 9router connect http://<server-host>:20128 --tools codex --model gpt-6
npx 9router connect http://<server-host>:20128 --tools opencode --model ocg/glm-5.3

A model the server doesn't list is still written, with a not listed by server warning. To see the ids it serves: curl http://<server-host>:20128/v1/models -H "Authorization: Bearer <your key>".

Checking the current config

9router show prints what each CLI tool on this machine is currently set to — base URL, masked API key and models. It only reads local files and never contacts a server.

npx 9router show                 # every supported tool
npx 9router show claude          # one tool
npx 9router show claude codex    # several
npx 9router show claude --json   # machine-readable (key still masked)
✅ Claude Code
   File:     ~/.claude/settings.json
   Base URL: http://<server-host>:20128/v1
   API key:  sk-a1b…9f3c
   Models:
     fable   cc/claude-fable-5-1
     opus    cc/claude-opus-5-5
     sonnet  cc/claude-sonnet-5-5

Tools not pointed at 9router are listed as not configured. For Codex, OpenCode and Cline it also warns when a 9router entry exists but another provider is the active one.

Other options

OptionPurpose
--password <pw>Dashboard password (or NINE_ROUTER_PASSWORD); prompted if omitted — preferred, keeps it out of shell history
--saveAfter a successful login, save the password for this server to ~/.9router/connect.env (plain text, mode 600) so later runs skip the prompt. Delete the file to forget it
--api-key <key>Use this key and skip login. The server's models can't be read without a login, so pass model flags
--key-name <name>API key name to reuse/create (default cli-<hostname>)
--print-envAlso print OPENAI_BASE_URL / OPENAI_API_KEY for other CLIs
--resetRemove the 9router settings from the selected tools

See 9router connect --help for the full list.

⚠️ Over plain http:// the password and API key are sent unencrypted — use a trusted LAN/VPN or put HTTPS in front. The API key is stored in each tool's config file.


🛠️ 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/.9router to persist)

📚 Documentation

Full docs, advanced setup, video tutorials & development guide:


🙏 Acknowledgments

📄 License

MIT License - see LICENSE for details.

版本与发布记录

9router 共发布 238 个版本,首次发布于 2026/01/03;过去 12 个月发布了 238 个版本。

版本发布日期距今
0.5.112latest2026/10/288 天前
0.5.1112026/10/2610 天前
0.5.1092026/10/2313 天前
0.5.1042026/10/1521 天前
0.5.992026/10/0828 天前
0.5.952026/10/011 个月前

关于 9router 的常见问题

9router 是什么?

9Router CLI - Start and manage 9Router server

如何安装 9router?

在项目目录运行 npm install 9router,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 9router,可以用 npx 9router 直接运行。

9router 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/9router 是否存在。

9router 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

9router 可以商用吗?

9router 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

9router 的下载量有多少?

根据 npm 官方下载统计,9router 在 2026/10/04 – 2026/11/02 这 30 天内被下载 224,601 次,日均约 7,487 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

9router 还在维护吗?

最新版本 0.5.112 发布于 2026/10/28(8 天前);至今共发布 238 个版本,其中过去 12 个月发布了 238 个;首次发布于 2026/01/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。