How my own router decides
The local step in this prototype runs through a small gateway I built. Seven decisions sit between a task and an answer. One is made by me, one by a cloud model, one by a local model, and four by plain code.
- Me
- Code
- Cloud model
- Local model
Cloud the routing model sees the task text only
On my Mac the gateway, the checks and the models
- 1
Hand off a task
MeOn my MacFrom Claude Code, I choose what to delegate. Nothing goes to a local model unless I ask.
- 2
Check who is available
CodeOn my MacThe gateway keeps only workers whose runtime answers and whose model is installed.
- 3
Pick the worker
Cloud modelIn the cloudA small cloud routing model, Jev, picks one worker from written criteria. It sees the task text only, not the context.
- 4
Fall back if the router fails
CodeOn my MacNo key, a timeout or a bad choice: a fixed order takes over and the reason is recorded.
- 5
Do the work
Local modelOn my MacOne local model on the Mac gets the task and its context.
- 6
Reject and retry
CodeOn my MacAn empty answer counts as a failure. The next worker is tried, two attempts at most, each once.
- 7
Check the result
CodeOn my MacEvery answer says whether it was cut off. In Run Receipt, code recomputes the totals before anything is shown as final.
Fixed limits
- The router gets 5 seconds to answer before the fallback takes over.
- A worker gets 240 seconds, and at most 2 workers are tried.
- Workers: coder (qwen3:8b), reviewer (gemma3:4b), second opinion (qwen3:4b).
What broke
- A routed call returned nothing for 593 seconds. Cause not found. The client gave up and the connection dropped.
- The tunnel to the Mac dropped once, and a call failed at once. Restored by hand.
- Answers that take longer than 60 seconds are lost by the calling app. Worked around with a longer timeout, not fixed.
- The run log says ok when the caller never received the answer. Open.
18 issues logged as of Oct 3, 2026. 2 fixed.
The recorded run on this page called the reviewer directly, with the routing step bypassed, after the routed attempt hung. It is a test of the local step and the checks, not of the routing.
The caller is Claude Code, a cloud assistant, so anything I hand off has already been seen by it. The router keeps the context away from the routing model. It does not keep it away from the caller.