Back to skills
SKILL.md
10router Chat
ASecurityChat / code generation via 10Router 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 10Router.
- 58 stars
- 0 votes
- 0 copies
- 1 view
- Added September 2, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add techysy/10router --skill 10router-chat --agent claude-codeAre you the author of 10router Chat?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/techysy-10router-chat)---
name: 10router-chat
description: Chat / code generation via 10Router 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 10Router.
---
# 10Router — Chat
Requires `TENROUTER_URL` (and `TENROUTER_KEY` if auth enabled). See https://raw.githubusercontent.com/techysy/10router/main/skills/10router/SKILL.md for setup.
## Endpoints
- `POST $TENROUTER_URL/v1/chat/completions` — OpenAI format
- `POST $TENROUTER_URL/v1/messages` — Anthropic format
## Discover
```bash
curl $TENROUTER_URL/v1/models | jq '.data[].id'
# Per-model metadata (contextWindow, params)
curl "$TENROUTER_URL/v1/models/info?id=openai/gpt-4o"
```
Combos (e.g. `vip`, `mycodex`) auto-fallback through multiple providers.
## OpenAI format
```bash
curl -X POST $TENROUTER_URL/v1/chat/completions \
-H "Authorization: Bearer $TENROUTER_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.TENROUTER_URL}/v1`, apiKey: process.env.TENROUTER_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 $TENROUTER_URL/v1/messages \
-H "Authorization: Bearer $TENROUTER_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"cc/claude-opus-4-7","max_tokens":1024,"messages":[{"role":"user","content":"Hi"}]}'
```
## Response shape
OpenAI (`/v1/chat/completions`):
```json
{ "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`):
```json
{ "id": "msg_...", "type": "message", "role": "assistant", "model": "cc/claude-opus-4-7",
"content": [{ "type": "text", "text": "Hello!" }],
"stop_reason": "end_turn", "usage": { "input_tokens": 8, "output_tokens": 2 } }
```
Files in this skill
- SKILL.md
- SKILL.zh-CN.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.