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 BASHBOP/otito --skill model-routergit clone --depth 1 https://github.com/BASHBOP/otitoWrote 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/bashbop/otito/model-router)<a href="https://agentmods.dev/skills/bashbop/otito/model-router"><img src="https://agentmods.dev/badge/skills/bashbop/otito/model-router.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.1 | $0.00093 | $0.00355 |
| Opus 5 | $0.00046 | $0.00178 |
| Sonnet 5 | $0.00019 | $0.00071 |
| Haiku 4.5 | $0.00009 | $0.00036 |
Grade A, and why
model-router 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 yesterday.
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.
What it actually says
Model router (host-agnostic)
Goal: spend premium models only when the task needs them. Works with any ML coding host, including agents launched inside Herdr panes. Otito scores cost/safety; this skill chooses the model tier.
This is routing, not orchestration. Do not spawn multi-agent loops.
When to run
At the start of a user request (before large context packs or edits), unless the user already pinned a model.
Step 1 — Score
Prefer Otito AX / Herdr bashbop.otito.model-route. Else use the heuristic in the Cursor/Codex copies of this skill.
| AX | Tier |
|---|---|
| ≥ 75 | cheap |
| 45–74 | mid |
| < 45 | premium |
Bump one tier if containment < 20 or auth/payments/migrations.
Herdr
herdr plugin action invoke bashbop.otito.model-route
# prefix+m when configured
Then start/prompt the pane agent for that tier.
Sync
Canonical: otito/codex/skills/model-router/ and Cursor/Codex user skills.
What ships with it
1 file 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.
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.
- yesterday First seen · 41 lines · 93 tokens per session scan A ffbb8e45454d
model-router is a skill published in the GitHub repository BASHBOP/otito (1 stars, last pushed today), licensed MIT. It adds 93 tokens to every session and 355 once invoked, about $0.0005 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-09-07.
Other skills, from other repositories
memorywhale
Query and write durable debugging memory recorded by MemoryWhale. Use when debugging a failure that may have happened before, when you need the exact error/flags/output from an earlier attempt, when the user asks "how did we fix this last time?", or once you've figured out why something failed / how a fix worked and…
init
Turn on Rekal memory in the current repository by running rekal init. Use when the user asks to initialize or set up Rekal here, or when a rekal command reported the repository is not initialized. Once per repository. Do not offer this merely because a repo lacks a .rekal/ store — most repos do not want one.
install
Install the Rekal binary on this machine. Use when rekal is not on PATH — a command reported command not found — or when the user asks to install Rekal. Once per machine, not per repository; to set up a repo that already has the binary, use the init skill instead.
rekal
Use in a repo with Rekal initialized (.rekal/ exists). Rekal is memory of prior AI sessions — who changed what, why, and when. Before spending a token, decide WHERE the answer lives: TREE / KNOWLEDGE / LEDGER / MAP. Route to one substrate, act, and stay silent when memory is not the tool. Rekal's commands return…
tree-ring-memory
Guides AI agents in using Tree Ring Memory for durable recall, project decisions, user preferences, warnings, future seeds, privacy-safe memory capture, and lifecycle-aware forgetting.
planpage
Render a skill's plan, review gate, quiz, poll, or report as a beautiful, self-contained INTERACTIVE HTML page via the open-source planpage package (Preact → static HTML + local post-back). The user edits and annotates the plan in the browser, attaches screenshots, stages everything in a fixed sidebar, then hits Send…