An outside study of Perplexity Computer by Abhinav Gupta

Back to the prototype

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. 1

    Hand off a task

    MeOn my Mac

    From Claude Code, I choose what to delegate. Nothing goes to a local model unless I ask.

  2. 2

    Check who is available

    CodeOn my Mac

    The gateway keeps only workers whose runtime answers and whose model is installed.

  3. 3

    Pick the worker

    Cloud modelIn the cloud

    A small cloud routing model, Jev, picks one worker from written criteria. It sees the task text only, not the context.

  4. 4

    Fall back if the router fails

    CodeOn my Mac

    No key, a timeout or a bad choice: a fixed order takes over and the reason is recorded.

  5. 5

    Do the work

    Local modelOn my Mac

    One local model on the Mac gets the task and its context.

  6. 6

    Reject and retry

    CodeOn my Mac

    An empty answer counts as a failure. The next worker is tried, two attempts at most, each once.

  7. 7

    Check the result

    CodeOn my Mac

    Every 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.