9routerlisted
Install: claude install-skill ongkipro/dotfiles
# 9Router
Local/remote AI gateway exposing OpenAI-compatible REST. One key, many providers, auto-fallback.
## Setup
```bash
export NINEROUTER_URL="https://rbq97ts.abc-tunnel.us" # or machine-configured tunnel URL
export NINEROUTER_KEY="sk-..." # from Dashboard / credentials
```
Capability and model requests use `${NINEROUTER_URL}/v1/...` with header `Authorization: Bearer ${NINEROUTER_KEY}` (omit if auth disabled).
Health is the intentional unversioned exception: `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 }
]}
```
## Status & Health Verification
9router status is **per-machine** and changes. Check it d