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 kochetkov-ma/claude-brewcode --skill provider-switchgit clone --depth 1 https://github.com/kochetkov-ma/claude-brewcodeWrote 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/kochetkov-ma/claude-brewcode/provider-switch)<a href="https://agentmods.dev/skills/kochetkov-ma/claude-brewcode/provider-switch"><img src="https://agentmods.dev/badge/skills/kochetkov-ma/claude-brewcode/provider-switch/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/kochetkov-ma/claude-brewcode/provider-switch"><img src="https://agentmods.dev/badge/skills/kochetkov-ma/claude-brewcode/provider-switch.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.00035 | $0.05765 |
| Opus 5.5 | $0.00014 | $0.02306 |
| Sonnet 5.5 | $0.00007 | $0.01153 |
| Haiku 4.5 | $0.00003 | $0.00577 |
Grade B, and why
provider-switch scanned grade B with 2 findings 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 10d 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.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
| curl -s -K - -o /dev/null -w "%{http_code}" -X POST "https://api.z.ai/api/anthropic/v1/messages" -H "content-type: application/json" -H "anthropic-version: 2023-06-01" -d '{"model":"glm-5.2","max_tokens":5,"messages":[ Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Identifies the model answering this ALIAS-launched session via 5 questions, no curl/scripts. BASE not set → print and stop: How it starts
The opening of the file, as written. The whole thing — 444 lines — stays where its author put it; the contents beside it link to each section on GitHub.
[DICT: P=Phase, PRV=provider, EXEC=EXECUTE using Bash tool, AUQ=AskUserQuestion, REF=references, ALIAS=shell alias, CFG=configured, BASE=ANTHROPIC_BASE_URL, MOD=ANTHROPIC_DEFAULT_OPUS_MODEL]
Provider Switch
Claude Code alt API providers, each an isolated ALIAS in ~/.zshrc: DeepSeek V4 (priority default, 1M ctx, native Anthropic endpoint; recommend first), Z.ai/GLM, Qwen/DashScope, MiniMax, OpenRouter.
Prompt contract
$ARGUMENTS is one free-form RU/EN prompt; mode tokens and flags may sit anywhere in it.
- Mode: an explicit mode token wins outright; else the most distinct whole-word keyword hits
(mode table in P1 below). Tie with a destructive mode ->
AskUserQuestion; withstatus->status; of two mutating modes -> the keyword that comes first. No hit or empty ->status. - Scope: prose that is not a mode/provider name is still input: take the provider or scope from it.
- Ask: at most ONE
AskUserQuestion(max 4 questions) to resolve mode and scope, before any work, only when the answer changes what gets written.statusitself is read-only and asks nothing.
Print once, before the first action (labels literal, values in the conversation language):
PLAN — brewtools:provider-switch
INPUT: <arguments verbatim, or "(empty)">
MODE: <resolved> — <explicit | matched keyword: X | default>
SCOPE: <resolved paths / target / level / flags>
DO: <2-5 imperative bullets>
RESULT: <what the user ends up holding>
Robustness Rules (MANDATORY)
| Rule | Scope |
|---|---|
Every Bash call: && echo "OK ..." || echo "FAILED ..." |
ALL |
| On FAILED: stop phase, report error, !=retry blindly | ALL |
| Max 3 AUQ per phase | ALL |
| !=write secrets anywhere except ~/.zshrc | ALL |
!=ask for, receive, repeat or compose a key value (no AUQ, prompt or Bash line with it): the user places it out of band, scripts/read-secret.sh moves it. CC 2.1.296 has no masked input: AUQ answers land in the transcript; sensitive userConfig never reaches skill content |
ALL |
| !=commit ~/.zshrc changes | ALL |
| ~/.zshrc comments: ENGLISH only | ALL writes |
What ships with it
20 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- README.md 2.0 KB
- references/common.md 3.6 KB
- references/deepseek.md 2.2 KB
- references/minimax.md 2.6 KB
- references/openrouter-models.md 4.3 KB
- references/openrouter.md 1.8 KB
- references/qwen-dashscope.md 3.4 KB
- references/update-protocol.md 4.4 KB
- references/zai-glm.md 1.7 KB
- scripts/check-status.sh 3.0 KB runs code
- scripts/detect-mode.sh 2.6 KB runs code
- scripts/provider-alias.py 5.9 KB runs code
- scripts/read-secret.sh 3.0 KB runs code
- scripts/verify-providers.sh 6.5 KB runs code
- scripts/write-alias.sh 4.9 KB runs code
- tests/harness.mjs 2.0 KB runs code
- tests/run.sh 2.3 KB runs code
- tests/suite-alias.mjs 18 KB runs code
- tests/suite-secret.mjs 12 KB runs code
- tests/suite-verify.mjs 13 KB runs code
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.
- 10d ago Changed · +1 lines f80420eee8a2
- 14d ago Changed · -127 lines e54aa4665c0f
- 26d ago Changed · +13 lines dc02c86f3fb4
- 1mo ago First seen · 557 lines · 35 tokens per session scan B 16cf0a12bb7e
provider-switch is a skill published in the GitHub repository kochetkov-ma/claude-brewcode (38 stars, last pushed today), licensed MIT. It adds 35 tokens to every session and 5,765 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
fresh-start
Continue in a new chat without losing anything — writes a compact handoff to paste into a fresh conversation. Use whenever the user wants to move to a new chat or conversation, hits usage limits, says replies got slow or Claude forgets earlier details, or the conversation has grown long.
doc-digest
Turn a long document, PDF, transcript, spreadsheet or log into a compact working digest the conversation can continue from. Use when the user shares or pastes something long (several pages or more) and wants to discuss, analyze, compare or use it over more than one message, or asks to summarize a document so they can…
token-check
Estimate how many tokens a pasted text, an attached file or the conversation so far takes, what it means for the context window and usage limits, and how to cut it. Use when the user asks how big something is in tokens, why they keep hitting limits, or whether a file is too large to send.
sharpen-prompt
Rewrite a vague request into a precise prompt — goal, context, scope, constraints, what done looks like, output format. Use when the user asks to improve, rewrite, sharpen or check a prompt.
skill-creator-plus
Create, test, evaluate, and improve Claude skills — and answer questions about how skills work. Use for "create a skill", "make a skill for", "write a SKILL.md", "turn this into a skill", "run evals", "test/benchmark my skill", "optimize my skill description", "improve triggering", "A/B test my skill", "blind…
deep-research
Deep Research (/deep-research or /dr) — exhaustive, evidence-based investigation of any topic. Use when the user invokes /deep-research, /dr, asks for deep research, says 'research this thoroughly', wants expert-level analysis on any subject (technical, business, scientific, regulatory, financial, medical, legal…