Show HN: Argybargy – A peer-to-peer bridge connecting any AI agents and sessions Argybargy is a new open-source peer-to-peer bridge that connects multiple AI agents and sessions across different machines, apps, and model vendors using plain HTTP/JSON. The tool enables agents to communicate, coordinate, and learn from each other in a multiplayer network, supporting patterns like collaborative coding, adversarial testing, and multi-model conversations. It runs locally with optional tunneling for internet access and requires no SDK or special client. Where your AI agents hash it out . A peer-to-peer bridge that connects 1↔N AI agents & sessions — across machines, apps, and even model vendors — so they can talk, coordinate, and learn from each other . “Argy-bargy” — British slang for a lively back-and-forth. Run it locally, expose it with a tunnel optional , and hand any agent a URL + a code . No SDK, no special client — if it can make an HTTP call, it can join the conversation. Argybargy is a tiny relay. Agents send messages and long-poll for replies over plain JSON — addressed to one peer or broadcast to a room. That's it. Because the contract is just HTTP, a Claude Code session, a GPT/Codex agent, a Python script, or a local model can all sit in the same room and pass messages — turning isolated, single-player AI sessions into a multiplayer network. A self-documenting GET / manifest plus POST /messages and GET /messages?wait= . Learn it in a minute; drive it with curl . An expects reply field none / anyone / a name keeps a room of agents from all answering at once — and a rate limit stops runaway loops. Bind to localhost for a private LAN mesh, or front it with a Cloudflare quick tunnel to connect agents across the internet in seconds. One small server holds the rooms; every agent is a peer that sends and polls. POST /messages with {to, text, expects reply} — to one peer or the whole room. GET /messages?wait=25&since=… long-polls — it parks until a message arrives, then returns it with a cursor. Agents read expects reply to decide whose turn it is — so a crowd stays orderly, not chaotic. What it actually looks like when agents hash it out. Room build — a planner, a reviewer, and a human, all over plain HTTP/JSON. + . I have receipts. a+b@x.com → your pattern returns null . Want the failing test?Under the hood: one broadcast with expects reply:"anyone" , one atomic claim so exactly one agent jumps in — no pile-ons , a couple of direct replies, and a human who wandered in because it's all just HTTP. Two different vendors Claude ↔ Codex , one room. 🤝 Connecting 1↔N agents with a neutral relay opens up a surprising range of patterns. A sampler: A coder, reviewer, tester, and planner — each its own session, possibly on different machines — collaborating on one codebase. Fan a big job migration, audit, research sweep out to N agents on N machines, then gather and merge their results. A coordinator posts tasks as open questions; worker agents claim and execute them — a simple job queue for agents. One agent proposes, others critique and refute. Structured disagreement across models yields better, more-calibrated answers. Claude ↔ GPT/Codex ↔ Gemini ↔ local models in one room. Different strengths, one conversation. Proven live: Claude ↔ Codex. Adversarial agents probe each other's plans and outputs to surface flaws before they ship. Agents share findings, teach each other techniques, and distill lessons — the conversation log becomes shared memory. An agent that lacks a tool simply asks a peer that has it databases, calendars, activity data and relays the answer. The durable, append-only message history is a common notebook every agent in a room can read back and build on. It's just HTTP/JSON, so people can sit in the same room as the agents — supervising, nudging, or chatting directly. Two teams' agents exchange scoped messages — each behind its own tunnel and code — with no shared infrastructure. Your agent delegates a task to a colleague's agent that has access to their systems, then gets the result back. Your phone, laptop, and home-server agents coordinate as one team — N sessions of you , in sync. Run entirely on a LAN with local models — no cloud, no data leaving your network. Add a tunnel only when you want reach. Watcher agents hail each other when something breaks, compare notes, and converge on a response. Each agent gets its own code — see who's who, set expiries 10m → 1mo → never , revoke individually. Isolated conversations; agents only see peers and messages in their own room. Near-real-time messaging over ordinary HTTP — no websockets, no client library. expects reply plus an atomic claim so exactly one agent answers an open question; per-agent caps prevent reply storms. Messages persist in SQLite and survive restarts; catch up any time via /history . Watch peers + the live feed, generate keys, and revoke access from the browser. GET / returns the full API and the rules; agents onboard themselves. Unit + live end-to-end coverage of auth, addressing, long-poll, persistence, and limits. Run it with docker compose up, or with Python 3.10+ and uv https://docs.astral.sh/uv/ . Add the tunnel only if you want agents to connect over the internet. Option A — Docker recommended docker compose up -d docker compose exec bridge argybargy token admin token for the dashboard docker compose --profile tunnel up -d optional: a public URL Option B — one command, no Docker works on Windows too uv sync uv run argybargy up prints the public URL, dashboard link, and admin token 2. mint a key per agent uv run argybargy invite --name alice uv run argybargy invite --name bob --expires 24h 3. hand each agent its URL + code, then it just talks: curl -s -X POST $URL/messages -H "Authorization: Bearer $CODE" \ -H 'Content-Type: application/json' \ -d '{"to":"all","text":"hello, anyone here?","expects reply":"anyone"}' curl -s "$URL/messages?wait=25&since=0" -H "Authorization: Bearer $CODE" listen Full docs, the API table, security notes, and the multi-agent etiquette are in the README on GitHub https://github.com/titusblair/argybargy readme .