by Nanako0129
Multi-model orchestration layer for Claude Code — the frontier model plans, cheaper models execute, verification guards quality. One-prompt install.
# Add to your Claude Code skills
git clone https://github.com/Nanako0129/pilotfishpilotfish is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Nanako0129. Multi-model orchestration layer for Claude Code — the frontier model plans, cheaper models execute, verification guards quality. One-prompt install. It has 69 GitHub stars.
pilotfish's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Nanako0129/pilotfish" and add it to your Claude Code skills directory (see the Installation section above).
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh pilotfish against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Pilot fish swim alongside the ocean's largest predators — small, fast, and doing the routine work so the big one doesn't have to.
pilotfish is a multi-model orchestration layer for Claude Code: the frontier model (Claude Fable 5 / Opus) plans, decides, and reviews in your main session, while cheaper models (Opus / Sonnet / Haiku) execute the volume work through global subagents. Quality is protected by fresh-context verification, not by using the biggest model everywhere. Everything installs globally — one setup, every project — and the whole stack degrades gracefully when the frontier model becomes unavailable.
Where this came from: my weekly quota reset one morning, and the first thing I did with a fresh Fable 5 allowance was ask it to figure out why the previous week's had evaporated. This repo is the setup that research produced, and it's what I now run daily on every project — three config files, no runtime code. The research notes (with sources) are in docs/.
Frontier-model sessions are expensive in exactly the place it hurts subscribers: Claude Fable 5 consumes subscription limits ~2× faster than Opus (official UI wording), and agentic sessions with heavy tool use burn far steeper than that in practice. Meanwhile, most tokens in a coding session are not judgment — they're searching, mechanical edits, test runs, and doc updates that a cheaper model does just as well.
Every piece of this now carries Anthropic backing. The Fable 5 prompting guide recommends frequent subagent delegation and notes that independent fresh-context verifier subagents outperform self-critique. And as of 2026-07-08, the cheap-executor split is officially benchmarked: Anthropic's own tests put a Fable 5 orchestrator with Sonnet 5 workers at 96% of all-Fable performance for 46% of the cost (BrowseComp: 86.8% vs 90.8% accuracy, $18.53 vs $40.56 per problem), with the inverse advisor pattern (Sonnet executor consulting Fable) at ~92% for ~63% on SWE-bench Pro — the orchestrator split pilotfish uses won on both axes (multi-agent docs). A community experiment points the same direction at hobby scale — a delegation-heavy 12-worker audit (Developers Digest), best-case-shaped, in API dollars:
| Setup (12-worker audit experiment, Developers Digest) | Cost | Savings |
|---|---|---|
| Everything on Fable 5 | $14.50 | — |
| Fable 5 orchestrates + Sonnet workers | $6.10 | 58% |
| Fable 5 orchestrates + Haiku workers | $3.70 | 74% |
Two subscription-specific bonuses stack on top:
Tip: Claude subscriptions use a two-bucket weekly limit (official article) — a shared "all models" bucket plus an additional Sonnet-only bucket. Routing execution to Sonnet subagents costs less per token and draws on that extra dedicated headroom. (Sonnet usage still counts against the all-models bucket too — it's additional allowance, not a fully separate pool.)
⚠️ Warning: Since Claude Code v2.1.198 the built-in
Exploresubagent inherits your main-session model. If your main session runs Fable 5 or Opus, every background search burns Opus-tier tokens (the Claude API caps Explore's inherited model at Opus; third-party platforms have no cap). pilotfish overrides it back to Haiku. (Trade-off, stated openly: a custom Explore loads your user memory like any subagent, which the built-in skips — the policy block self-disables for subagent roles to keep that overhead small.)
Note: The two bullets above are subscription-plan mechanics. On the pay-per-token API the per-token savings still apply (there is no weekly bucket). On Bedrock / Vertex / Foundry, aliases resolve to each platform's built-in defaults and Fable 5 may not be enabled — pin versions with the
ANTHROPIC_DEFAULT_*_MODELenv vars before relying onbestthere.
Three layers, three files' worth of configuration, all under ~/.claude/:
| Layer | File(s) | Job |
|---|---|---|
| Machine | ~/.claude/settings.json |
Who orchestrates (best) + automatic fallbackModel chain |
| Roles | ~/.claude/agents/*.md |
Six role agents, each pinned to the right model tier via one line of frontmatter |
| Policy | ~/.claude/CLAUDE.md |
How to delegate — written in terms of roles, never model names |
flowchart TD
U[You] --> O
subgraph MAIN["main session — 'best' alias (Fable 5 when available, else latest Opus)"]
O["Orchestrator<br>plan / decide / spec / review"]
end
O -->|recon| S["scout / Explore<br>haiku · effort low"]
O -->|mechanical spec| M["mech-executor<br>sonnet · effort low"]
O -->|judgment work| E["executor<br>opus · effort medium"]
O -->|security-sensitive| SEC["security-executor<br>opus · effort high"]
M --> V["verifier<br>opus · fresh context"]
E --> V
SEC --> V
V -->|CONFIRMED / REFUTED| O
The six roles:
| Role | Model | Effort | Used for |
|---|---|---|---|
scout |
haiku | low | Read-only lookups: "where/how is X", symbol usages, config values |
Explore |
haiku | low | Overrides the built-in Explore agent (see warning above) |
mech-executor |
sonnet | low | Fully-specified mechanical work: pattern refactors, convention tests, docs, bulk edits |
executor |
opus | medium | Implementation needing judgment: features, bug fixes, design-sensitive refactors |
verifier |
opus | medium | Fresh-context adversarial verification; returns CONFIRMED/REFUTED, never fixes |
security-executor |
opus | high | Anything security-sensitive — deliberately kept off Fable 5, whose safety classifiers can refuse benign defensive-security work |
The policy layer adds the operating rules: spec delegations completely in one shot (including the why), start with the cheapest plausible role and escalate after two failures, always set an explicit model on ad-hoc fan-outs, and gate non-trivial work behind a verifier pass before calling it done.
Paste this single prompt into any Claude Code session:
Read https://raw.githubusercontent.com/Nanako0129/pilotfish/main/install/AGENT-INSTALL.md
and follow it to install pilotfish into my global Claude Code configuration.
Show me the full plan of changes and get my approval before writing anything.
Claude reads the install runbook, inspects your existing configuration, shows you a merge plan (nothing is overwritten blindly), and applies it after you approve. Installation is idempotent — running it again upgrades in place.
Note: Requires a reasonably current Claude Code — on older builds the
bestalias may be rejected, andeffort/toolsfrontmatter is silently ignored (agents still run, just untuned). On native Windows without WSL, the runbook's shell snippets assume a POSIX shell; the installing agent is instructed to fall back to its own file tools. Restart your session afterwards: the agents directory is scanned at session start, and themodelsetting applies on restart.
Prefer to do it by hand? The same steps are written for humans in install/AGENT-INSTALL.md, and every file it installs lives under templates/.
pilotfish installs by having Claude fetch a runbook and template files from this repo and merge them into your global ~/.claude/ config — including a policy block that then loads into every future session. Treat it like any curl | sh: trust flows from this repo and your GitHub connection, not from the paste. Before running it:
main can change between the moment you read it and the moment Claude fetches it. Replace main with a release tag (e.g. v1.1.0, see releases) or, for the strictest guarantee, a full commit SHA:Read https://raw.githubusercontent.com/Nanako0129/pilotfish/<TAG_OR_SHA>/install/AGENT-INSTALL.md
and follow it to install pilotfish. Fetch every template from that same <TAG_OR_SHA>, never from main.
Show me the full plan of changes and get my approval before writing anything.
| Target | Change | Reversible |
|---|---|---|
~/.claude/settings.json |
model → "best", adds fallbackModel: ["opus", "sonnet"], extends availableModels (only if you already restrict it) |
Yes — keys are independent |
~/.claude/agents/ |
Six role agent files (listed above) | Yes — delete the files |
~/.claude/CLAUDE.md |
One ## Orchestration section between <!-- pilotfish:begin/end --> markers |
Yes — remove the marker block |
Nothing is written into an