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 agentmods add commands/attendantlion8/provider-fallback-plugin/provider-switchgit clone --depth 1 https://github.com/AttendantLion8/provider-fallback-pluginWrote 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/commands/attendantlion8/provider-fallback-plugin/provider-switch)<a href="https://agentmods.dev/commands/attendantlion8/provider-fallback-plugin/provider-switch"><img src="https://agentmods.dev/badge/commands/attendantlion8/provider-fallback-plugin/provider-switch.svg" alt="Measured on agentmods" 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 | $0.00017 | $0.00705 |
| Opus 5 | $0.00009 | $0.00352 |
| Sonnet 5 | $0.00003 | $0.00141 |
| Haiku 4.5 | $0.00002 | $0.00071 |
Grade A, and why
provider-switch scanned grade A with 0 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 5d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Manual Provider Switch
Manually switch to a specific provider or control automatic fallback behavior.
Usage
Switch to Specific Provider
/provider-switch bedrock
/provider-switch vertex
/provider-switch anthropic
Enable/Disable Auto-Switching
/provider-switch --auto on
/provider-switch --auto off
Behavior
Manual Switch
When manually switching to a provider:
- Validates provider is configured (API key present)
- Moves the selected provider to the top of the priority list
- Updates active provider immediately
- Logs the switch for auditing
Auto-Switch Mode
| Mode | Behavior |
|---|---|
on (default) |
Automatically switch to next provider when limits reached |
off |
Stay on current provider even if limits exceeded (may cause errors) |
Implementation
const { loadConfig, saveConfig, PROVIDER_MODELS } = require('${CLAUDE_PLUGIN_ROOT}/lib/providers.js');
const config = loadConfig();
// Handle auto-switch toggle
if (args.auto) {
config.autoSwitch = args.auto.toLowerCase() === 'on';
saveConfig(config);
console.log(`Auto-switching ${config.autoSwitch ? 'enabled' : 'disabled'}`);
return;
}
// Handle manual provider switch
const provider = args.provider?.toLowerCase();
if (!provider) {
console.log('Current provider:', config.providerPriority[0]);
console.log('Usage: /provider-switch <provider>');
return;
}
if (!PROVIDER_MODELS[provider]) {
console.error(`Unknown provider: ${provider}`);
console.log('Available:', Object.keys(PROVIDER_MODELS).join(', '));
return;
}
// Check if API key is configured
const envKey = PROVIDER_MODELS[provider].envKey;
if (!process.env[envKey]) {
console.error(`Provider ${provider} not configured. Missing ${envKey}`);
return;
}
// Move provider to top of priority list
const newPriority = [provider, ...config.providerPriority.filter(p => p !== provider)];
config.providerPriority = newPriority;
saveConfig(config);
console.log(`Switched to ${PROVIDER_MODELS[provider].name}`);
console.log(`New priority: ${newPriority.join(' → ')}`);
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.
- 5d ago First seen · 130 lines · 17 tokens per session scan A 969271510b23
provider-switch is a command published in the GitHub repository AttendantLion8/provider-fallback-plugin (2 stars, last pushed 8mo ago), licensed MIT. It adds 17 tokens to every session and 705 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
package-assistant
Convert an OfficeCLI skill into a fully wired AionUi assistant preset, or update an existing one.
ask
Query multiple AI agents (Gemini, OpenAI, Grok, Perplexity, Kimi, any model OpenRouter routes to, and a local ollama model) for diverse perspectives on architecture decisions, technology choices, debugging dead-ends, and security tradeoffs. Use this whenever the user names the council directly, whatever the topic …
result
Fetch, list, or cancel background council jobs started with --async.
grok-files
List, prune, or gc Grok (xAI) uploaded files. Cleanup for bridge-owned uploads only.
help
Show how to use deliberation here - what each command does, when to reach for it, and real prompts you can paste right now. Read-only.
setup
Configure deliberation with Codex (GPT), Gemini, Grok, and OpenRouter MCP servers.