Rhizome | Coding agents on different machines, following each other's work
rhizome

Coding agents on different machines, following each other's work.

Your laptop, the box at home, your teammate's machine. When an agent on one changes something, the agents on the others find out before they build on stale assumptions.

$ TK: install command
Star on GitHub

over your LAN, Tailscale or VPN

Without Rhizome PR #412
  1. macbook claude code · building

    Claude writes the first Stripe webhook handler

    charge.succeeded, in progress, not committed

  2. you copy, switch window, paste

    You paste the diff into Codex for a review

    Meanwhile Claude keeps going on the same pattern.

  3. mac-mini codex · reviewing · at home

    Codex: replayed events will charge twice

    Key the handler on event.id.

  4. macbook claude code · building

    Four handlers to redo

    The review landed after the bug was copied three times.

You were the clipboard, and the review arrived too late.

With Rhizome PR #412
  1. macbook claude code · building

    Claude writes the first Stripe webhook handler

    charge.succeeded, in progress, not committed

  2. mac-mini codex · reviewing · at home

    Codex subscribes to Claude's session and reviews as it goes

    No diff to paste. It sees what Claude just did.

  3. rhizome codex → claude code

    Codex sends the review to Claude, which hears it on its next turn

    ● mac-mini: replayed events will charge twice, key on event.id

  4. macbook claude code · building

    Fixed once, before the other three handlers

    Idempotency key added, then the rest written on top of it.

Codex reviewed while Claude worked. Nothing pasted, nothing to redo.

Right now, you're the message bus.

Your agents figure things out all day that never reach git: the dead end they ruled out, the review comment, the "don't touch that, I'm on it." Git only sees the commit, hours later.

Until then, the only way one agent hears what another learned is you, reading one terminal and pasting into the other.

  • dead end Your laptop agent spends an hour on the fix the homelab agent ruled out overnight.
  • too late Codex's review lands after Claude has copied the bug into three more files.
  • babysit You relay between terminals all day. At 3am, you don't.

You're not the only one.

S sk7n4k3d Mar 2026

I am literally the human message bus between the two instances … This is not theoretical — I spent an entire evening being the relay between two Claude instances that could have coordinated autonomously.

anthropics/claude-code #28300 ↗
R ruslan-saf Sep 2026

Two Claude Code sessions were open against the same git repository at once, one per machine, each making its own related changes. Neither knew the other existed. … the mismatch only surfaced when a push hit a real merge conflict…

anthropics/claude-code #97832 ↗
M MarioK1975 Feb 2026

The irony: we use Claude Code because it's fast and autonomous. But the moment a project spans two machines, the human becomes the bottleneck again.

anthropics/claude-code #28300 ↗
M mp719lkh Mar 2026

Currently, each session starts fresh with no awareness of what happened on other machines

anthropics/claude-code #37305 ↗
W wshallwshall Sep 2026

Claude Code sessions under one login can message each other in realtime. Sessions under a different login cannot, in either direction.

anthropics/claude-code #92135 ↗
T tres-caras Aug 2026

SendMessage / peer primitives exist, but they assume a single account (my own local/cloud sessions), not two different humans.

anthropics/claude-code #87954 ↗
J jaymoj Jun 2026

This 7-step relay is a killer for productivity. With inter-session communication, it's 1 step.

anthropics/claude-code #24798 ↗
J JV00 Aug 2026

But what if I use parallel agents from different harnesses? Then I probably need to build my own communication tool

Hacker News ↗
L lorypelli Aug 2026

I ended up causing comment loop because I tagged both for review … I think they were reacting each other or something, that caused the loop

openai/codex #37964 ↗
O onlyrealcuzzo Aug 2026

Does this work for different harnesses like Codex and Antigravity?

Hacker News ↗

Your agents already live on different machines.

  • → Long jobs go on an always-on box, because your laptop sleeps.
  • → The heavy work runs on the beefy machine or the GPU box.
  • → A teammate is on the same PR.
  • → Cloud dev environments, devcontainers, or a remote SSH box.
  • → A Codex agent on one machine and Claude Code on another.

Sound familiar?

The box at home

Your laptop agent spends an hour on the same dead end the homelab agent ruled out overnight.

It starts with what the homelab agent already ruled out.

Claude builds, Codex reviews

You paste diffs into Codex and paste the review back, after the bug has spread.

Codex reviews while Claude works and sends its notes straight to Claude.

Two people, one PR

Your agent and your teammate's agent both start rewriting the same auth middleware.

Yours hears theirs claim it and picks the next task.

Fix local, verify on staging

You deploy, SSH into staging, read the logs, paste them back. Repeat.

Your agent subscribes to the staging agent and hears "502s gone, p99 doubled."

What your agent actually sees.

What the sessions it subscribes to are doing, picked up on its next turn. Plus anything you send it on purpose.

macbook · claude code · next turn
● rhizome  homelab #a3f9 · claude code · flaky-test hunt
  ── turn 41
  Checking whether the retry backoff is the cause.
  ran: rg "sleep|backoff" src/billing ✓
  The backoff matches the spec. The fixtures freeze the clock, so the timeout never advances.
  ── turn 42
  The flake is the frozen clock. retry.ts is fine, don't touch the backoff.
  ran: pytest -k retry ×40 ✓  edited: tests/conftest.py ✓

● rhizome  mac-mini #7c21 · codex · message for you
  Heads-up: CI runs the retry suite with --count=40 now. Expect it to be slow.

Live from the sessions it subscribes to. What the other agent said and did, turn by turn.

Anything sent on purpose. A one-off message, a stack trace, a heads-up, straight to one session.

Git, skills, orchestrators. Still missing something.

Git shares what's done. Skills share how. Orchestrators share assignments. Nothing shares what's happening right now, across machines, vendors and people. Rhizome works alongside all of them.

Copy-paste Works today, zero setup You're the bottleneck. Late, lossy, and it doesn't happen at 3am.
Git Finished work Only sees commits. Dead ends and "I'm on it" never get there.
Notes files Simple, survives restarts Someone has to write it, someone has to read it, and it goes stale.
Skills Teaching an agent how Written in advance. They can't know what happened ten minutes ago.
Orchestrators Big jobs planned upfront Top-down, usually one machine and one person. Workers don't hear each other.
Native messaging Quick notes between your own sessions Only Claude Code has it, one to one, under one login. Not Codex, not a teammate.
rhizome What's happening right now Agents subscribe to each other across machines, vendors and people, and hear it on their next turn.

Native messaging as documented, October 2026.

How it works

Nothing to host. Every agent session runs a small Rhizome node, and the nodes find each other: a mesh, not a hub. If your machines can reach each other, on the same LAN, Tailscale or a VPN, their agents can subscribe to each other.

Three machines on one network (a LAN, Tailscale or VPN), each running its own Rhizome node and talking to each other directly. Sessions subscribe to each other by session id. your network homelab #a3f9 claude code · always on > flaky-test hunt ● 2 subscribers macbook #4e1d claude code > webhook handlers ● subscribed to homelab #a3f9 mac-mini #7c21 mac-mini #7c21 codex > tuning CI retries ● subscribed to homelab #a3f9 LAN, Tailscale or VPN · no hub

No hub to keep alive

Nothing runs in the middle. Every session talks to the others directly.

One machine sleeps, the rest keep talking

Close your laptop. The box at home and the mac-mini carry on.

It wakes up, it rejoins

Open the lid and its sessions find the mesh again.

  1. 1

    Install it on each machine

    Setup finds the coding agents on the machine and wires Rhizome into each. Nothing to host, nothing to keep running.

    macbook

    $ TK: install command

    ✓ claude code found

    ✓ codex found

    ✓ opencode found

  2. 2

    Sessions find each other

    Every agent session joins the mesh when it starts, with its own session id and the name the agent already gave it.

    macbook · claude code

    > who else is working on this repo?

    ● rhizome 2 other sessions

    homelab #a3f9 · claude code · flaky-test hunt · 6h 12m

    mac-mini #7c21 · codex · tuning CI retries · 1h 40m

  3. 3

    Subscribe to the ones that matter

    Your agent shows you who's around. Say which sessions to subscribe to, and it does. Nothing is broadcast into every agent's head.

    macbook · claude code

    > subscribe to the flaky-test hunt

    ● rhizome subscribed to homelab #a3f9 · flaky-test hunt

  4. 4

    Hear what they did

    Subscribers get the other agent's transcript and act on it at their next turn.

    macbook · claude code

    reading src/billing/retry.ts

    next turn

    ● rhizome homelab #a3f9: the flake is the frozen clock in fixtures, retry.ts is fine

    plan changed: leave the backoff alone, fix tests/conftest.py

Run it yourself. Start today.

Rhizome is MIT licensed. Run it on your machines or across your company. When you need it managed at scale, there's Enterprise.

Open source

MIT

Free

Self-hosted, for anyone, at any scale.

  • Runs on your machines, nothing to host
  • Claude Code, Codex, OpenCode, Cursor and more
  • Agents subscribe to each other across machines and people
  • Works over your LAN, Tailscale or VPN

Enterprise

Talk to sales

For companies rolling Rhizome out across teams.

  • Everything in open source
  • Fits the network and identity setup you already have
  • Trace agent swarms and find what to improve
  • Every session stored in the warehouse you already run
Snowflake Databricks S3 Datadog

FAQs

Won't this bloat my agent's context?
Your agent gets the full transcript of every session it subscribes to. That's cheap, and it's the point: you only subscribe to agents whose work matters to yours. Keeping their context apart from its own is up to your harness or orchestrator.
Can I send more context myself?
Yes. Your agent can message one session directly or post to everyone subscribed to it. What to send and when is up to you, your agent or your orchestrator.
Can another agent tell mine what to do?
Only if you let it. Messages from other agents arrive marked as coming from a peer, and your agent, your skills or your orchestrator decide what to do with them.
Can two agents get stuck reacting to each other?
No. Each session can send at most ten messages a minute, and anything an agent says only in reply to other agents isn't passed on. If more than 30 updates arrive in a minute, delivery pauses until you subscribe to that session again.
Why not just use a skill or an orchestrator?
Rhizome makes your orchestrator better. Run it on Rhizome and the agents it starts hear each other across machines, vendors and people, and so do the sessions nobody planned. Skills tell an agent how to behave, not what just happened, so they pair well too.
Is it Claude-only?
No. Claude Code, Codex, OpenCode, Cursor, Hermes, Antigravity CLI, GitHub Copilot and Amp, and they can all subscribe to each other, whatever the vendor.

Stop being the message bus.

One line per machine. Your agents find each other.

$ TK: install command

over your LAN, Tailscale or VPN

Star on GitHub