Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dryvist/claude-code-plugins --skill llm-router-opsgit clone --depth 1 https://github.com/dryvist/claude-code-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dryvist/claude-code-plugins/llm-router-ops)<a href="https://agentmods.dev/skills/dryvist/claude-code-plugins/llm-router-ops"><img src="https://agentmods.dev/badge/skills/dryvist/claude-code-plugins/llm-router-ops/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dryvist/claude-code-plugins/llm-router-ops"><img src="https://agentmods.dev/badge/skills/dryvist/claude-code-plugins/llm-router-ops.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00063 | $0.00950 |
| Opus 5.5 | $0.00025 | $0.00380 |
| Sonnet 5.5 | $0.00013 | $0.00190 |
| Haiku 4.5 | $0.00006 | $0.00095 |
Grade A, and why
llm-router-ops scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 27d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s https://<router-host>/v1/chat/completions \ How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Operating an OpenAI-compatible LLM router
A self-hosted LLM router (e.g. LiteLLM) gives every consumer — human tool or agent — one shared base URL and one shared bearer key, and load-balances or routes to whichever backend actually serves a given model alias. This is the generic client-wiring and operational-gotcha pattern; your own base URL, model aliases, and key-storage location stay in your own inventory.
Minimal client wiring
Every client type needs the same three things: base URL, bearer key, model alias. The alias is what decouples a client from knowing which backend is really serving it.
curl -s https://<router-host>/v1/chat/completions \
-H "Authorization: Bearer $ROUTER_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "<alias>", "messages": [{"role": "user", "content": "hello"}]}'
from openai import OpenAI
client = OpenAI(base_url="https://<router-host>/v1", api_key=os.environ["ROUTER_MASTER_KEY"])
Any tool with an "OpenAI-Compatible" or "OpenAI API" provider type (chat UIs, low-code agent builders, Ansible-style role group vars) takes the same two values — base URL and key — with no other client-specific config needed.
Adding a backend model
- Add the model block to the router config: alias name, backend model id, backend base URL.
- Set the context window explicitly if the router doesn't already know
the backend's real native context. An unrecognized backend id otherwise
resolves to a
null/unset advertised context, which starves any consumer that trusts the router's advertised limit to decide how much to send. - Restart/reload the router process so the new config takes effect.
- Verify:
GET /v1/models(with the bearer key) lists the new alias, and its advertised context window is the real one, not null.
Gotcha: env var vs. the tool's own persisted config
Many chat-UI-style front ends persist their provider config in their own database and will silently let that override the environment on a redeploy — so a correct env var stops mattering after the UI's admin panel has ever been touched. If the front end has a "persistent config" or equivalent toggle, disable it so the environment is authoritative on every restart, instead of the tool re-applying whatever was last saved in its UI.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 27d ago Changed · -49 tokens per session 60983c5ee49b
- 1mo ago First seen · 89 lines · 112 tokens per session scan A 10fb22b19e21
llm-router-ops is a skill published in the GitHub repository dryvist/claude-code-plugins (3 stars, last pushed yesterday), licensed Apache-2.0. It adds 63 tokens to every session and 950 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.
Other skills, from other repositories
llm-app-development
LLM app development with RAG, prompt engineering, vector databases, and AI agents.
ai-prompting-basics
A practical guide to writing clearer requests for Claude, an AI assistant, by adding context, examples, roles, and output rules.
rented-server-setup
Runs an open model in the cloud two ways, and makes the user choose with real numbers. Route A is OVHcloud AI Endpoints, an EU-owned per-token API with zero idle cost, for spiky usage and EU jurisdiction. Route B rents one single-tenant RunPod GPU pod in a region the user picks, serving the model on vLLM behind a…
openrouter
OpenRouter API - Unified access to 400+ AI models through one API.
prompt-master
The one skill for prompting the Claude 5 models the way Anthropic says to. Starts by interviewing the user one question at a time, then writes a new prompt, rewrites an old one, or audits a whole CLAUDE.md, skill or project-instruction file, applying the rules from Anthropic's Opus 5 guide, Fable 5 guide, best…
partner-anthropic
Anthropic intelligence — Claude model family, Claude Code, MCP protocol, Claude for Work programs, May 2026 state, Frank's relationship state, integration patterns. Use when generating Anthropic content, writing about Claude/MCP/Claude Code, partnership-conversation prep for Anthropic, or evaluating new Anthropic…