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/wookiya1364/scv-claude-code/set-modelsgit clone --depth 1 https://github.com/wookiya1364/scv-claude-codeWrote 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/wookiya1364/scv-claude-code/set-models)<a href="https://agentmods.dev/commands/wookiya1364/scv-claude-code/set-models"><img src="https://agentmods.dev/badge/commands/wookiya1364/scv-claude-code/set-models.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.00088 | $0.01647 |
| Opus 5 | $0.00044 | $0.00823 |
| Sonnet 5 | $0.00018 | $0.00329 |
| Haiku 4.5 | $0.00009 | $0.00165 |
Grade B, and why
set-models scanned grade B 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 today.
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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
1. `~/.claude/settings.json` (or project `.claude/settings.json` / `.claude/settings.local.json`) — `language` key (Claude Code official). How it starts
The opening of the file, as written. The whole thing — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/scv:set-models
Apply a model policy to all SCV commands and remember the choice in scv/scv_settings.json. The shipped default is the session model.
Language preference
Resolve the user's preferred language with this priority, then use it for ALL user-facing output (AskUserQuestion text, summaries):
~/.claude/settings.json(or project.claude/settings.json/.claude/settings.local.json) —languagekey (Claude Code official).- Project
.env—SCV_LANG. - Auto-detect from the user's most recent message language.
- Default to English.
Technical identifiers stay as-is: policy names (recommended, all-opus, all-sonnet, all-haiku, session-default), env var names (SCV_MODEL_POLICY, SCV_LANG), file paths, model names (haiku, sonnet, opus).
What each policy does
| Policy | Effect |
|---|---|
recommended |
Per-command mapping: status/report/update/install-deps → haiku · sync/help/promote/codegen/regression/work → opus. Matches v0.11.5 baseline. Recommended default. |
all-opus |
Every command uses opus. Highest quality, highest cost. |
all-sonnet |
Every command uses sonnet. Balanced. |
all-haiku |
Every command uses haiku. Lowest cost; some reasoning-heavy commands may degrade. |
session-default |
Removes the model: line entirely. Each command runs on whatever model the current Claude Code session is using. |
Step 1 — Resolve the chosen policy
If $ARGUMENTS is exactly one of recommended, all-opus, all-sonnet, all-haiku, session-default, treat that as the chosen policy and skip to Step 2.
Otherwise, fire AskUserQuestion with these 5 options (the first is the shipped default — put it first in the list):
Question: "Which model policy do you want for SCV commands?"
options:
[1] "session-default (Recommended — the shipped default)"
description: "No model: lines at all. Every SCV command runs on the model your Claude Code session already uses — pick Fable, Opus, or anything else once, and SCV never changes it. This is what a fresh install does."
[2] "recommended"
description: "Per-command mapping to save cost: status/report/update/install-deps run on haiku; sync/help/promote/codegen/regression/work run on opus. Note: help runs every turn, so this switches your session to opus on nearly every turn."
[3] "all-opus"
description: "Every SCV command uses opus. Highest quality, significantly higher cost."
[4] "all-sonnet"
description: "Every SCV command uses sonnet. A middle ground if you want one fixed model for SCV."
[5] "all-haiku"
description: "Every SCV command uses haiku. Lowest cost; reasoning-heavy commands (work, codegen, promote) may degrade."
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.
- today Changed · +1 lines · +25 tokens per session f8854f4b0085
- 4d ago First seen · 115 lines · 63 tokens per session scan B 24d9a3be4ee9
set-models is a command published in the GitHub repository wookiya1364/scv-claude-code (7 stars, last pushed today), licensed MIT. It adds 88 tokens to every session and 1,647 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
caspian-email
Send or reply via Caspian email (ask thread vs new).
caspian-connect-email
Connect Caspian email (sandbox key or dashboard paste) and enable email in caspian.json.
caspian-connect-discord
Connect Caspian Discord and enable discord in caspian.json.
caspian-connect-telegram
Connect Caspian Telegram and enable telegram in caspian.json.
caspian-discord
Post a Discord message via Caspian (channel snowflake id).
caspian-inbox
List Caspian inbox messages (email + configured channels).