DEV Community

Alex Carney
Alex Carney

Posted on

Running coding agents on more than one machine: herdr, Agent of Empires, Sidefleet, Claude Code's built-ins and Sqwakie

Once you run more than two or three coding agents, the terminal tab stops being a workable unit. You want to know which agent is stuck, keep sessions alive when you close the laptop, and sooner or later use a second machine. A handful of tools now go after that problem, and they solve different parts of it.

This is a map of five of them, written from each project's own README or docs as of October 22, 2026. Disclosure up front: I work on Sqwakie, one of the five (it's published by RC Studios). I've tried to describe the others in their own words and to say where each one fits better than mine. Projects in this space change weekly, so check the linked docs before you choose.

The short version

What it is Where agents run How machines connect Agents covered License
herdr Terminal runtime for agents Panes in a background server, local or over SSH Saved SSH machines in one window Claude Code, Codex, Cursor, opencode, Grok "and the rest" (README) Apache-2.0
Agent of Empires Session manager on tmux One tmux session per agent, optional worktree and container The machine it's installed on; reach it over SSH or its web dashboard (aoe serve --remote), or point the TUI at a remote aoe serve with AOE_DAEMON_URL (cross-machine attach) 16 listed in its docs, including Claude Code, Codex CLI, Gemini CLI, OpenCode MIT
Sidefleet (foodaka/side-fleet) Task dispatcher with a web page Workers on machines you own (macOS or Linux: a desk Mac, a Mac mini, a VPS); each task in its own git worktree by default Workers make outbound calls to your own control plane (Postgres) Claude Code, Codex, opencode (README) MIT
Claude Code built-ins Agent teams and cross-session messaging Claude Code sessions Same machine locally; cross-session messages to other machines go through Anthropic servers via Remote Control (docs) Claude Code Part of Claude Code
Sqwakie Team coordination layer: channels, asks, boards, dashboard; Seats can start agents on a teammate's opted-in machine Your agents on your own Apple Silicon Macs and Linux machines Peer to peer (QUIC via iroh), falling back to an encrypted relay when there's no direct path, or Tailscale Claude Code and Codex connected at setup; any script can use the CLI FSL-1.1-ALv2 (source-available; each version becomes Apache-2.0 after two years)

herdr: the runtime your agents live on

herdr calls itself "the runtime your coding agents live on" (README). It's a single Rust binary, no Electron, that runs in whatever terminal you already use. A background server keeps terminals running when you close the client or lose your SSH connection; after a restart it restores the saved layout and can resume supported agent sessions, though the original processes don't survive.

Its multi-machine story is "several machines, one window": local work and saved SSH machines together, with a combined agent list and independent reconnects. Every pane is marked working, blocked or idle. Agents can drive herdr themselves through its CLI and socket API: spawn panes, prompt each other, and wait until another agent is genuinely blocked. It has a plugin marketplace and installs on macOS, Linux and Windows (install options in the README).

Fits best when you're one person living in the terminal and want your agents' sessions to be durable and visible, across a few machines you reach over SSH.

Agent of Empires: tmux sessions with worktrees and sandboxes

Agent of Empires (aoe) is "a session manager for AI coding agents on Linux and macOS, built on tmux and written in Rust" (docs). Each agent runs in its own tmux session, so it keeps running when you close the TUI, disconnect SSH or your terminal crashes, and you can still tmux attach to any session directly.

On top of tmux it adds agent-aware status detection, git worktree management (create a session and it creates the branch and worktree), Docker, Podman and Apple Containers sandboxing, a diff viewer, and a web dashboard you can open from your phone. It auto-detects which of its supported agents are installed. Per its FAQ, Windows works only through WSL2.

aoe                          # Launch the TUI
aoe add --cmd claude         # Create a session running Claude Code
aoe serve                    # Start the web dashboard
Enter fullscreen mode Exit fullscreen mode

Fits best when you run many agents in parallel on one machine and care about isolation: a branch per task, optionally a container per agent.

Sidefleet: send a task, a machine you own picks it up

Sidefleet by Mark Hinschberger (per its LICENSE) describes itself as "Run coding agents on your own machines, from anywhere" (README). You type a task on a web page, pick an agent, model and repo, and one of your machines picks it up. It runs Claude Code, Codex or opencode, by default in the task's own git worktree (an "In place" option runs it in your checkout when a task needs installed dependencies or local config), and streams the agent's narration back live.

The architecture is a control plane (sidefleet serve, a web page, an API and Postgres) plus workers (sidefleet run) on each machine. Workers make only outbound calls, so there are no open ports; across networks the README suggests putting the control plane on Tailscale. Per its README, tasks go to the least busy machine that has the repo and agent, or you can pin one. For Claude Code and Codex it drives the sign-in already on each machine rather than API keys (opencode can also use an API key, per the README's agents table), and it has opt-in recovery that pushes a task's own branch so the task can move if a machine drops. The README notes it's under active development.

(Not to be confused with sidefleet.app, a different product: a macOS app built by Warpkode for running several Codex, Claude Code and Cursor accounts side by side on one Mac.)

Fits best when you think in tasks rather than sessions and want a single page that dispatches work to whichever of your machines is free.

Claude Code's built-ins: agent teams and cross-session messaging

Before installing anything, check what Claude Code already does. Agent teams are "experimental and disabled by default" (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1). One session acts as the team lead, teammates each get their own context window and message each other directly, and they share a task list. Team config and the task list are stored locally under ~/.claude/teams and ~/.claude/tasks. The docs are frank that teams "use significantly more tokens than a single session."

Cross-session messaging (Claude Code v2.1.224 or later on macOS and Linux, v2.1.234 or later on native Windows, per the docs) lets Claude message your other Claude Code sessions. On the same machine that goes over a per-session socket. To another of your machines it goes "through Anthropic servers, arriving over that machine's Remote Control connection," so both sessions need Remote Control, which needs a claude.ai sign-in.

Fits best when you're one person, all-in on Claude Code, and want coordination with nothing extra to install.

Sqwakie: one team for the people and their agents

Sqwakie solves a different slice. It doesn't host your terminals, and it doesn't pick an idle machine for a task the way Sidefleet does. Its closest feature is Seats: you can start agents on a teammate's machine that has opted in, running on that machine's own Claude Code or Codex sign-in, and a seat's commits can come back to you as a git bundle (README). Mostly, though, it gives a small team, meaning several people with Claude Code and Codex agents on several machines, a shared layer on top of the agents they already run:

  • Channels and asks. post, get, reply, subscribe and ask from the CLI, and all but subscribe as MCP tools, so an agent on your laptop can ask an agent on a teammate's build box a question and get the answer back. Questions for a person wait in Asks.
  • A live dashboard on every machine. Who's online, what every agent is working on right now, what's waiting on a human, what's stuck, and each machine's memory, load and temperature. Claude Code hooks report agent state at zero token cost.
  • Projects. Kanban boards where every change is a signed post, with cards agents can start, review and finish, and a Data Room per project.
  • No Sqwakie server in the middle. Machines replicate a signed, append-only team log peer to peer over QUIC with NAT hole-punching (built on iroh), falling back to an encrypted relay when there's no direct path, or over your tailnet. Discovery uses n0's public address lookup, and n0 sees IP addresses and which machines connect.
  • A phone web app, end-to-end encrypted to your own computer (its traffic goes through a relay that can't read it).

It's a pre-release (0.2.0-pre.21): Apple Silicon Macs and Linux x64/arm64, WSL2 unverified, no native Windows. Pre-release builds skip Intel Macs; the v0.1.x release or a source build covers them. The Free plan covers up to 2 people and 4 machines.

Fits best when more than one person is involved, your agents are a mix of Claude Code and Codex, and the missing piece is shared context, meaning who's doing what and a way for agents to ask each other, rather than terminal management.

How to choose

Ask which of these is actually your bottleneck:

  1. "My agent sessions die or get lost." That's a runtime problem: herdr or Agent of Empires.
  2. "I need isolation between parallel agents." Agent of Empires' worktrees and containers, or Sidefleet's per-task worktrees (its default).
  3. "I want to hand off a task and have some machine do it." Sidefleet's dispatch model.
  4. "I only use Claude Code and I'm the only person." Try agent teams and cross-session messaging first.
  5. "Several of us run Claude Code and Codex across our machines, and nobody can see what the others' agents are doing." That's the gap Sqwakie is built for.

These aren't mutually exclusive categories, and the honest answer for some setups is more than one tool. Whatever you pick, read its security notes. Every tool here can start processes on your machines, and the details of who can do that, from where, differ a lot.

If the last case is yours, Sqwakie installs with one line from sqwakie.si. Corrections to anything above are welcome as an issue on GitHub.

Top comments (0)