← ClaudeAtlas

erouter-chatlisted

Chat / code generation via ERouter using OpenAI /v1/chat/completions or Anthropic /v1/messages format with streaming + auto-fallback combos. Use when the user wants to ask an LLM, generate code, summarize text, or run prompts through ERouter.
awhite0030/ERouter · ★ 1 · AI & Automation · score 55
Install: claude install-skill awhite0030/ERouter
# ERouter — Chat Requires `NINEROUTER_URL` (and `NINEROUTER_KEY` if auth enabled). See https://raw.githubusercontent.com/awhite0030/ERouter/refs/heads/master/skills/erouter/SKILL.md for setup. ## Endpoints - `POST $NINEROUTER_URL/v1/chat/completions` — OpenAI format - `POST $NINEROUTER_URL/v1/messages` — Anthropic format ## Discover ```bash curl $NINEROUTER_URL/v1/models | jq '.data[].id' # Per-model metadata (contextWindow, params) curl "$NINEROUTER_URL/v1/models/info?id=openai/gpt-4o" ``` Combos (e.g. `vip`, `mycodex`) auto-fallback through multiple providers. ## OpenAI format ```bash curl -X POST $NINEROUTER_URL/v1/chat/completions \ -H "Authorization: Bearer $NINEROUTER_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"openai/gpt-5","messages":[{"role":"user","content":"Hi"}],"stream":false}' ``` JS (OpenAI SDK): ```js import OpenAI from "openai"; const client = new OpenAI({ baseURL: `${process.env.NINEROUTER_URL}/v1`, apiKey: process.env.NINEROUTER_KEY }); const res = await client.chat.completions.create({ model: "openai/gpt-5", messages: [{ role: "user", content: "Hi" }], stream: true, }); for await (const chunk of res) process.stdout.write(chunk.choices[0]?.delta?.content || ""); ``` ## Anthropic format ```bash curl -X POST $NINEROUTER_URL/v1/messages \ -H "Authorization: Bearer $NINEROUTER_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{"model":"cc/claude-opus-4-7","max_tokens":1024,"messa