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.
git clone --depth 1 https://github.com/hybridlabor-api/bdb-dev-optimized-agent-skillsWrote 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/hybridlabor-api/bdb-dev-optimized-agent-skills/launch-rhinos)<a href="https://agentmods.dev/commands/hybridlabor-api/bdb-dev-optimized-agent-skills/launch-rhinos"><img src="https://agentmods.dev/badge/commands/hybridlabor-api/bdb-dev-optimized-agent-skills/launch-rhinos.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.00017 | $0.00797 |
| Opus 5 | $0.00009 | $0.00398 |
| Sonnet 5 | $0.00003 | $0.00159 |
| Haiku 4.5 | $0.00002 | $0.00080 |
Grade A, and why
launch-rhinos 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 8d 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.
This is a copy
100% identical to launch-rhinos — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Spawn $1 Rhinos through the router, fan out $1 parallel agents (one per Rhino), wait for them to finish, then close every Rhino. The router (rhino-mcp-router.exe) is the single stdio MCP server Claude Code is connected to; it handles all process and port management.
Arguments
$1— required integer N (number of Rhinos). If missing, ask the user how many they want before proceeding.$2— optional Rhino version (8,WIP,9). Defaults to the router's configured default (typically8).
Step 1 — spawn N slots
Call spawn_slot N times. Each call takes ~15-30 s (cold Rhino startup) and is independent — they can run sequentially via separate tool calls, or you can issue several in parallel by making multiple tool-call requests in one message.
slot_1 = mcp__plugin_rhino-mcp_rhino__spawn_slot(version="$2")
slot_2 = mcp__plugin_rhino-mcp_rhino__spawn_slot(version="$2")
…
slot_N = mcp__plugin_rhino-mcp_rhino__spawn_slot(version="$2")
Each returns { slot_id, port, pid, version }. Collect the slot_id values — those are what the agents will use.
If any spawn fails (e.g. router throws TimeoutException because Rhino didn't bind), report which one(s) and proceed with the rest.
Step 2 — fan out
Spawn N general-purpose agents in parallel (single message, N Agent tool calls). Each agent's prompt must:
- State its assigned slot ID.
- Instruct it to pass
slot="<slot_id>"as the first argument on everymcp__plugin_rhino-mcp_rhino__*tool call. Skipping or substituting the slot id means the agent will fail or — worse — accidentally drive a sibling's Rhino. - Carry whatever task the user described in their original request. If the user gave N distinct tasks, distribute them. One common task → repeat. No task → instruct the agent to verify its Rhino is reachable (e.g.
list_objects(slot="<slot_id>")) and stand by.
Prompt template:
You are driving a dedicated Rhino instance via slot `<slot_id>` (port <port>).
Pass slot="<slot_id>" as the first argument on EVERY mcp__plugin_rhino-mcp_rhino__* tool call.
The router uses this argument to route your call to YOUR Rhino. Other slot IDs belong to
sibling agents working in different Rhinos — don't touch them.
Task: <per-agent task from the user>
When done, report back tersely what you did and the slot you used.
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.
- 8d ago First seen · 69 lines · 17 tokens per session scan A e86846c82077
launch-rhinos is a command published in the GitHub repository hybridlabor-api/bdb-dev-optimized-agent-skills (6 stars, last pushed 3d ago), licensed Apache-2.0. It adds 17 tokens to every session and 797 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to launch-rhinos, differing in 0 lines, and is treated as a copy.
Other commands, from other repositories
interactive-dev
Start a persistent interactive development session with natural language browser control, auto-error monitoring, and full dev tool access.
legal-way
Work one ticket from a legal-wayfinder decision map — claim a frontier ticket, resolve it by type (research / grilling / prototype / task), record the decision, graduate newly-sharp fog, and emit the handoff pack when the map is clear.
post-edit
Execute post-edit processing including formatting, validation, and memory updates.
tdd
Test-driven development with TodoWrite planning and comprehensive testing.
visualize
Open the local PI decision visualizer. Start the visualizer server backed by /.pi/decisions data, and open the result in the browser unless --no-open is passed.
incident-response
Start structured incident response with automatic triage, communication, and resolution tracking.