Entry point for ExtremeRouter — local/remote AI gateway with OpenAI-compatible REST for chat, image, TTS, embeddings, web search, web fetch. Use when the user mentions ExtremeRouter, NINEROUTER_URL, or wants AI without writing provider boilerplate. This skill covers setup + indexes capability skills; fetch the relevant capability SKILL.md from the URLs below when needed.
Scanned 8/31/2026
Install to Claude Code
npx -y skills add rsalmn/ExtremeRouter --skill extremerouter --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Extremerouter?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/rsalmn-extremerouter)More formats (shields.io, HTML) on the badges page.
---
name: extremerouter
description: Entry point for ExtremeRouter — local/remote AI gateway with OpenAI-compatible REST for chat, image, TTS, embeddings, web search, web fetch. Use when the user mentions ExtremeRouter, NINEROUTER_URL, or wants AI without writing provider boilerplate. This skill covers setup + indexes capability skills; fetch the relevant capability SKILL.md from the URLs below when needed.
---
# ExtremeRouter
Local/remote AI gateway exposing OpenAI-compatible REST. One key, many providers, auto-fallback.
## Setup
```bash
export NINEROUTER_URL="http://localhost:20128" # or VPS / tunnel URL
export NINEROUTER_KEY="sk-..." # from Dashboard → Keys (only if requireApiKey=true)
```
All requests: `${NINEROUTER_URL}/v1/...` with header `Authorization: Bearer ${NINEROUTER_KEY}` (omit if auth disabled).
Verify: `curl $NINEROUTER_URL/api/health` → `{"ok":true}`
## Discover models
```bash
curl $NINEROUTER_URL/v1/models # chat/LLM (default)
curl $NINEROUTER_URL/v1/models/image # image-gen
curl $NINEROUTER_URL/v1/models/tts # text-to-speech
curl $NINEROUTER_URL/v1/models/embedding # embeddings
curl $NINEROUTER_URL/v1/models/web # web search + fetch (entries have `kind` field)
curl $NINEROUTER_URL/v1/models/stt # speech-to-text
curl $NINEROUTER_URL/v1/models/image-to-text # vision
```
Use `data[].id` as `model` field in requests. Combos appear with `owned_by:"combo"`.
Response shape:
```json
{ "object": "list", "data": [
{ "id": "openai/gpt-5", "object": "model", "owned_by": "openai", "created": 1735000000 },
{ "id": "tavily/search", "object": "model", "kind": "webSearch", "owned_by": "tavily", "created": 1735000000 }
]}
```
## Capability skills
When the user needs a specific capability, fetch that skill's `SKILL.md` from its raw URL:
| Capability | Raw URL |
|---|---|
| Chat / code-gen | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-chat/SKILL.md |
| Image generation | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-image/SKILL.md |
| Text-to-speech | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-tts/SKILL.md |
| Speech-to-text | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-stt/SKILL.md |
| Embeddings | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-embeddings/SKILL.md |
| Web search | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-web-search/SKILL.md |
| Web fetch (URL → markdown) | https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/master/skills/extremerouter-web-fetch/SKILL.md |
## Errors
- 401 → set/refresh `NINEROUTER_KEY` (Dashboard → Keys)
- 400 `Invalid model format` → check `model` exists in `/v1/models/<kind>`
- 503 `All accounts unavailable` → wait `retry-after` or add another provider account
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!