Multi-AI Toolkit
Claude does the planning, free-tier APIs do the legwork, and one request gets spread across five providers.
- 01Planner
- 02Routing by subtask type
- 03Parallel execution
- 04Failover
- 05Synthesis
- 06Keys behind a worker
Architecture Overview
One strong model plans, a crowd of free ones does the legwork. Claude splits a task into subtasks and writes the final answer, while Groq, Gemini, Mistral, Cerebras and OpenRouter run those subtasks in parallel underneath. There are three faces on the same logic — a command line, a terminal app that shows the plan executing live, and a hosted web page. Run locally, Claude is called through the CLI you are already logged into, so the planning rides your existing subscription instead of billing per token.
How it works
Core mechanics, failure recovery paths, and system design decisions.
Planner
Claude reads the task, splits it into subtasks, tags each one with a type, and writes the synthesis prompt that will put the results back together later.
Routing by subtask type
config.yaml maps a type to a provider: extraction to Groq, summarisation to Gemini, bulk to Cerebras, coding to Mistral, hard reasoning to Claude. Rearranging the crew is a config edit, not a code change.
Parallel execution
Every subtask goes out at once instead of queueing, so a run takes as long as its slowest piece rather than the sum of all of them.
Failover
A provider that rate-limits or times out hands its subtask to OpenRouter. If that fails too, the subtask records an error and the run carries on — one broken piece never kills the answer, and the synthesiser sees the error like any other result.
Synthesis
Claude merges the results and settles the disagreements between them, so the expensive model is spent on judgement rather than on chopping.
Keys behind a worker
The hosted page holds no secrets. A Cloudflare Worker keeps the keys, checks the caller's origin server-side rather than trusting CORS, rate-limits per IP, and caps prompt length and output tokens before any provider is called.
Engineering Highlights
- •The expensive model only plans and synthesises
- •Provider routing lives in config.yaml, so swapping one is not a code change
- •Locally, Claude runs through the CLI login rather than a metered API key
- •A provider that speaks the common OpenAI shape needs three config lines and no new code
- •Automated pytest test suite with GitHub Actions matrix CI on Python 3.10 and 3.12
- •Honest about the limit: an origin check stops casual abuse, and provider spend caps are the real backstop