9Router Gateway Skill
Point AI coding tools at a local gateway that unifies 40+ free and low-cost model providers, with auto-fallback and RTK saving 20-40% tokens per request.
The skill itself only reads env vars and makes local HTTP calls; least-privilege, no destructive defaults. However it instructs runtime fetching of SKILL.md files from an unpinned master branch on raw.githubusercontent.com, creating an unpinned supply-chain risk with no integrity check or rollback guidance; publisher is unverified. Deducted for: unpinned remote content, no verification mechanism.
Setup, model discovery, and error codes (401/400/503) are self-consistent with a health-check command; but everything depends on a running local gateway and reachable remote skill files, with no test evidence, no offline fallback, and failure feedback delegated to remote services. Deducted for: key paths not statically reproducible, external availability dependencies.
Trigger conditions are clear (mentions of 9Router, NINEROUTER_URL, or boilerplate-free AI access); scenarios and error handling are explicit; but the hard prerequisite of a running 9Router instance is not declared as a non-fit boundary, and Chinese-language support is absent in the skill itself (README has i18n). Deducted for: undeclared prerequisite boundary, insufficient evidence of mainland-China reachability (GitHub raw + overseas free providers).
Good layered docs (index skill + capability sub-skills), sample responses, error table, MIT license, repo versioning (0.5.69) and CI; but sub-skills are referenced via master-branch URLs without pinning, the skill has no changelog, and maintenance ownership is only implicit. Deducted for: unpinned references, missing change records.
If the gateway is configured, the skill genuinely reduces integration boilerplate and enables multi-provider routing; but static review cannot verify end-to-end output, and the value premise requires substantial prior work (install, provider connections, keys). Deducted for: core value unverifiable statically, high setup cost.
API shapes, endpoints, and error codes are partially cross-corroborated by repository source (e.g. ping.js); README offers npm/Docker badges and third-party videos, but these are largely marketing evidence; no committed test suite covers the skill's key paths. Deducted for: lack of independently reproducible execution evidence.
- The skill fetches sub-skill files at runtime from an unpinned master branch; content can change silently with no integrity check — review before use or pin versions yourself.
- A running 9Router gateway with connected providers is a hard prerequisite; the skill does not explicitly declare this boundary.
- Core function depends on GitHub raw access and overseas AI providers; mainland-China reachability is uncertain, and the skill has no Chinese-language support.
- Marketing figures (RTK 20-40% token savings, 'FREE unlimited') are not independently verified.
- Static review only; no commands were executed. All conclusions derive from source reading; confidence is low.
What does this skill do, and when should you use it?
The 9Router skill is the entry-point document for the 9Router AI gateway — a local or remote service exposing an OpenAI-compatible REST API covering chat, image generation, TTS, speech-to-text, embeddings, web search and web fetch across 40+ providers and 100+ models. The skill itself only handles setup (NINEROUTER_URL and NINEROUTER_KEY) and model discovery, then directs the agent to fetch the relevant capability sub-skill on demand. It suits developers who run — or plan to run — a 9Router gateway and want coding agents to tap free model quotas without provider boilerplate. Licensed MIT, it ships in a monorepo bundling nine skills total.
Instructs how to set NINEROUTER_URL and NINEROUTER_KEY and verify /api/health; discovers models and combos via /v1/models and its kind-specific sub-endpoints (/v1/models/image, tts, embedding, web, stt, image-to-text); shows OpenAI-compatible REST calls with Authorization Bearer headers; fetches the matching capability SKILL.md from raw GitHub URLs when needed (7 sub-skills: chat, image, TTS, STT, embeddings, web search, web fetch); provides a troubleshooting table for 401, 400 and 503 errors.
- Developers already running 9Router locally who want Claude Code, Codex, Cursor or Cline to call free models without writing provider boilerplate
- Users whose subscription quotas expire unused, wanting automatic subscription→cheap→free three-tier fallback to avoid interruptions
- Users aiming for zero-cost daily coding via Kiro, OpenCode Free, or Vertex AI free credits
- Engineers who need to swap between OpenAI, Anthropic, Gemini, DeepSeek, Qwen and others behind one stable API for model comparison
- Users needing image generation, TTS or embeddings through a single OpenAI-compatible interface
What are this skill's strengths and limitations?
- One OpenAI-compatible REST surface covering 40+ providers and 100+ models
- Capability-sorted model discovery (chat/image/TTS/STT/embeddings/web) is clean and predictable
- Explicit error-code troubleshooting table (401/400/503) makes failure modes foreseeable
- Entry-skill design loads sub-skills on demand, keeping context overhead low
- Hard dependency on a running 9Router gateway — without one the skill is unusable
- It is only an index; actual capability details live in 7 separate sub-skills that must be fetched over the network
- Free-tier claims are time-sensitive (README notes iFlow, Qwen and Gemini CLI free tiers discontinued in 2026) and need verification
- No test suite is shown for the skill; reliability rests on the gateway itself
How do you install this skill?
The skill lives at skills/9router/SKILL.md in the decolua/9router repo, distributed with the full nine-skill collection under an MIT license. Prerequisite: install and run the 9Router gateway itself — the README recommends npm install -g 9router && 9router, with the dashboard at http://localhost:20128; source and Docker options are described in the repo README (not repeated in the skill). Place the skills/9router folder into your Agent Skills directory; the exact install location is undocumented in the source.
How do you use this skill?
1) Export NINEROUTER_URL="http://localhost:20128" and, if auth is enabled, NINEROUTER_KEY="sk-..." (key from Dashboard → Keys); 2) Verify with curl $NINEROUTER_URL/api/health — expect {"ok":true}; 3) List models with curl $NINEROUTER_URL/v1/models (or the image/tts/embedding/web/stt/image-to-text variants) and use data[].id as the model field; 4) Send standard requests to ${NINEROUTER_URL}/v1/... with a Bearer header (omit if auth disabled); 5) For a specific capability, fetch the listed sub-skill SKILL.md. Trigger: when the user mentions 9Router, NINEROUTER_URL, or wants AI without provider boilerplate.
How does this skill compare with similar options?
The README credits CLIProxyAPI (the original Go implementation) as inspiration and names OmniRoute, a TypeScript fork adding 36+ providers and four-tier fallback. If you want a lightweight router without a dashboard or token-saving features, a CLIProxyAPI-style solution is an alternative.