Skip to content
Cloud & Infrastructure
Skill

/keirouter-chat

Chat / code generation via KeiRouter 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 KeiRouter.

BOOST
From plugin
keirouter
1558 skills
Install
$ npx -y skills add mydisha/keirouter --skill keirouter-chat --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/keirouter-chat

Context preview

The summary Claude sees to decide when to auto-load this skill.

Chat / code generation via KeiRouter 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 KeiRouter.

SKILL.md

keirouter-chat.SKILL.md
name: keirouter-chat
description: Chat / code generation via KeiRouter 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 KeiRouter.

KeiRouter — Chat

Requires `KEIROUTER_URL` (and `KEIROUTER_KEY` if auth enabled). See https://raw.githubusercontent.com/mydisha/keirouter/main/skills/keirouter/SKILL.md for setup.

Endpoints

  • `POST $KEIROUTER_URL/v1/chat/completions` — OpenAI format
  • `POST $KEIROUTER_URL/v1/messages` — Anthropic format
  • `POST $KEIROUTER_URL/v1/responses` — OpenAI Responses format

Discover

curl $KEIROUTER_URL/v1/models | jq '.data[].id'
# Per-model metadata (contextWindow, params)
curl "$KEIROUTER_URL/v1/models/info?id=openai/gpt-4o"

Combos (e.g. `vip`, `mycodex`) auto-fallback through multiple providers.

OpenAI format

curl -X POST $KEIROUTER_URL/v1/chat/completions \
  -H "Authorization: Bearer $KEIROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/gpt-5","messages":[{"role":"user","content":"Hi"}],"stream":false}'

JS (OpenAI SDK):

import OpenAI from "openai";
const client = new OpenAI({ baseURL: `${process.env.KEIROUTER_URL}/v1`, apiKey: process.env.KEIROUTER_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

curl -X POST $KEIROUTER_URL/v1/messages \
  -H "Authorization: Bearer $KEIROUTER_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model":"anthropic/claude-opus-4-7","max_tokens":1024,"messages":[{"role":"user","content":"Hi"}]}'

Response shape

OpenAI (`/v1/chat/completions`):

{ "id": "chatcmpl-...", "object": "chat.completion", "model": "openai/gpt-5",
  "choices": [{ "index": 0, "message": { "role": "assistant", "content": "Hello!" }, "finish_reason": "stop" }],
  "usage": { "prompt_tokens": 8, "completion_tokens": 2, "total_tokens": 10 } }

Streaming (`stream:true`) emits SSE: `data: {choices:[{delta:{content:"..."}}]}\n\n` ... `data: [DONE]\n\n`.

Anthropic (`/v1/messages`):

{ "id": "msg_...", "type": "message", "role": "assistant", "model": "anthropic/claude-opus-4-7",
  "content": [{ "type": "text", "text": "Hello!" }],
  "stop_reason": "end_turn", "usage": { "input_tokens": 8, "output_tokens": 2 } }

Provider quick reference

| Provider | `model` format | Examples | |---|---|---| | OpenAI | `openai/<model>` | `openai/gpt-5`, `openai/gpt-4o` | | Anthropic | `anthropic/<model>` | `anthropic/claude-opus-4-7`, `anthropic/claude-sonnet-4-6` | | Claude Code | `cc/<model>` | `cc/claude-opus-4-7` | | Gemini | `gemini/<model>` | `gemini/gemini-2.5-pro`, `gemini/gemini-2.5-flash` | | Groq | `groq/<model>` | `groq/llama-3.3-70b` | | DeepSeek | `ds/<model>` | `ds/deepseek-chat`, `ds/deepseek-coder` | | OpenRouter | `openrouter/<model>` | `openrouter/anthropic/claude-opus-4-7` | | Mistral | `mistral/<model>` | `mistral/mistral-large-latest` | | xAI | `xai/<model>` | `xai/grok-3` | | Ollama Local | `ollama-local/<model>` | `ollama-local/llama3.2` | | Custom OpenAI | `custom-openai/<model>` | Any model on your custom endpoint |

Read more
Ships withkeirouter

Your friendly, blazing-fast, self-hostable AI gateway

Get the whole plugin

Other skills on keirouter.