Guide

Run coding agents on multiple machines

wisp runs Claude Code, Codex and other coding agent CLIs on your other computers over plain SSH: a desktop, a dev box, a cloud VM or a Mac mini on Tailscale. One prompt can go to several machines in parallel, every run lands in one queue on your laptop, and the agents keep working when the laptop sleeps.

Source on GitHub

Free and open source · Claude Code, Codex, Cursor CLI, opencode, Antigravity CLI, Grok Build · macOS, Linux, Windows (beta) · Node 20+

The wisp queue with tasks from this computer and from other machines, grouped into Needs you, Working and Done

Why run agents on other machines

How it works

Open Machines (top bar, Settings or ⌘K). wisp lists the hosts this computer already knows from ~/.ssh/config, known_hosts and Tailscale; pick one, or type user@host, and press Connect:

  1. wisp signs in with ssh using your keys, agent and config. Never a password.
  2. On the machine it finds Node.js 20+ and starts npx -y wisp-agents --no-open detached, at the same version as yours, or reuses the wisp already running there.
  3. It forwards a free local port to that wisp with ssh -L and relays its events into your queue.

Nothing new listens on the network: wisp on the machine stays on its own 127.0.0.1. There is no account, relay server or cloud in between. The machine needs SSH access with a key, Node.js 20+ and the agent CLIs you want to run, signed in.

One prompt, several machines

In the launcher, Run on (next to the harness) picks where the prompt goes: this computer, any machine, or several at once. Enter launches on every place in parallel, and the runs land as one task with a row per machine.

Every project runs on every machine. If a machine has no checkout yet, wisp reuses a clone of the same repo it finds there, or clones the project’s origin first.

On the machine, everything works as it does locally: a worktree per task, real diffs, checkpoints and rollback, questions mid-run, subagents, compare and Ship it. Take over opens ssh -t <host> and resumes the agent in your terminal, and VS Code, Cursor or Windsurf open the worktree through Remote - SSH.

Move a task to another computer

Started on the laptop and want it to keep going on the desktop? The Runs on button next to the follow-up box moves your next message, and the task, to another computer. The branch and its uncommitted work travel as a git bundle into a worktree on the same branch there, and the earlier turns come along, so the agent picks up where it stopped. The same follow-up can switch agents. Rerun has the same picker. How moving a task works →

Without wisp

You can do a version of this with ssh and tmux:

ssh devbox
cd ~/code/app && git worktree add ../app-fix -b fix/auth origin/main
tmux new -d -s fix 'cd ../app-fix && claude -p "fix the flaky auth test"'

Then repeat per machine and per task, check each tmux session by hand, and copy the results back. wisp keeps the SSH part and adds the queue, the questions, the reports and shipping on top.

Questions

Do I need a server or a cloud account?
No. Any computer you can SSH into with a key works: a desktop, a home server, a cloud VM, a machine on Tailscale. wisp starts itself there with npx.
Does it open ports on the machine?
No. wisp on the machine listens only on its own 127.0.0.1. Your laptop reaches it through an SSH port forward.
What happens when my laptop disconnects?
The agents on the machine keep running. wisp reconnects on its own when your laptop is back, and finished reports and pending questions are waiting in the queue.
Can I answer an agent’s question from my phone?
Yes. Questions and finished tasks from every machine go to ntfy or Telegram, and you can answer from there.