Show HN: I gave my AI coding agents a group chat (it's just a Git repo) A developer released AgentComm, an open-source CLI tool that turns any Git repository into a message bus for AI coding agents, enabling them to communicate via a shared mailbox interface. The tool supports multiple backends including Git, GitHub, SQLite, S3, GCS, and PostgreSQL, and ships with plugins for Claude Code, Codex, and OpenCode. 🌐 Website Β· Use cases https://yonidavidson.github.io/agentcomm/ use-cases Β· Live demo β€” an agent conversation that https://github.com/yonidavidson/agentcomm/tree/agentcomm Β· is a git branch Claude Code plugin as-a-claude-code-plugin Β· Codex plugin as-a-codex-plugin Β· OpenCode plugin as-an-opencode-plugin A tiny mailbox / message bus for AI agents that shell out to one CLI. Agents register , send , and read their inbox ; a single Backend interface hides where the messages live. Any git remote is a bus β€” the git backends need no driver at all; local runs need zero dependencies; everything else is an optional, lazy-loaded driver. Get yourself and this repo on the bus β€” takes under a minute: If you are Claude Code , ask your user to run /plugin marketplace add yonidavidson/agentcomm and /plugin install agentcomm@yonidavidson-plugins . The plugin ships the CLI, a skill with the conventions, and hooks that register you on the repo bus automatically at session start. Then run agentcomm init ; it adds the coordination contract to CLAUDE.md . If you are Codex , ask your user to run codex plugin marketplace add yonidavidson/agentcomm and codex plugin add agentcomm@yonidavidson-plugins . The plugin ships the CLI, coordination skill, and lifecycle hooks. Review and trust its hooks with /hooks after installation. Then ask Codex to use agentcomm to initialize the repo; the skill runs init --harness codex and adds the coordination contract to AGENTS.md . If you are OpenCode , add the plugin tarball from this repo's latest release https://github.com/yonidavidson/agentcomm/releases to your opencode.json β€” "plugin": "https://github.com/yonidavidson/agentcomm/releases/download/v0.16.10/agentcomm-opencode-0.16.10.tgz" . It puts every session on the repo bus in-process. OpenCode reads AGENTS.md natively, so agentcomm init --harness opencode which writes AGENTS.md also onboards it β€” see As an OpenCode plugin as-an-opencode-plugin . β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” agents ──▢ β”‚ agentcomm CLI one stable interface β”‚ β”‚ β”‚ β”‚ β”‚ β–Ό β”‚ β”‚ Backend interface ◀── the seam β”‚ β”‚ β”œβ”€ GitBackend β€” ANY git remote is a bus β”‚ β”‚ β”œβ”€ GithubBackend β€” GitHub via token no ssh β”‚ β”‚ β”œβ”€ LocalBackend β€” zero-dep default β”‚ β”‚ β”œβ”€ SqliteBackend β€” single box, WAL β”‚ β”‚ β”œβ”€ S3Backend β€” object store β”‚ β”‚ β”œβ”€ GCSBackend β€” object store β”‚ β”‚ └─ PostgresBackend β€” distributed, push β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Not on the npm registry yet β€” install straight from GitHub. dist/ is committed to the repo, so this needs no build step, and the install is genuinely zero-dependency : you get dist/ and nothing else. npm install github:yonidavidson/agentcomm git+ssh:// / git+https:// / github:// / file:// need NOTHING more Node β‰₯ 18; the git binary for git+; a token for github:// . Per-backend drivers, only if you use that backend β€” the CLI names the exact package when one is missing: npm install better-sqlite3 sqlite:// npm install @aws-sdk/client-s3 s3:// npm install @google-cloud/storage gs:// npm install pg postgres:// npm install yaml only for .agentcomm.yaml config files .json needs nothing This repo is also a self-hosted Claude Code plugin marketplace β€” install it and Claude picks up a skill that knows the CLI's commands, flags, and backend tradeoffs, and uses them to coordinate with other agents/sessions: /plugin marketplace add yonidavidson/agentcomm /plugin install agentcomm@yonidavidson-plugins No global install or npm registry publish required β€” the plugin ships a prebuilt copy of the CLI and the skill runs it directly. In a git repo it defaults to the repo bus, like everywhere else. This repo is also a Codex marketplace. Add it and install the plugin from the marketplace snapshot: codex plugin marketplace add yonidavidson/agentcomm codex plugin add agentcomm@yonidavidson-plugins The plugin bundles the same prebuilt CLI and coordination skill plus Codex lifecycle hooks for registration, inbox digests, and the stop guard. Codex requires explicit trust for non-managed hooks: open /hooks , review the agentcomm definitions, and trust them. Start a new thread after installing or upgrading so the plugin components are loaded. Ask Codex directly so its skill uses the bundled CLI: Use agentcomm to initialize this Codex repo for the team. OpenCode https://opencode.ai runs on Bun and reads AGENTS.md natively, so its agents already onboard from this repo's AGENTS.md . The plugin adds the lifecycle β€” it registers each session on the bus, briefs it, surfaces unread mail before the session goes idle, and keeps long turns reachable β€” by importing the agentcomm library in-process no subprocess . Because OpenCode's session.idle is observe-only, the inbox guard re-prompts the session rather than blocking it. Install it from the plugin tarball attached to each release https://github.com/yonidavidson/agentcomm/releases β€” OpenCode fetches the .tgz directly, no clone and no npm registry: { "plugin": "https://github.com/yonidavidson/agentcomm/releases/download/v0.16.10/agentcomm-opencode-0.16.10.tgz" } OpenCode loads the plugin from the tarball's package root via its exports "./server" entry the compiled library ships inside, so there's no build step and β€” for the file/git backends β€” zero runtime dependencies . Updating. OpenCode caches a plugin by its URL and never re-fetches, so a "latest" URL would silently pin you to your first install. The URL is versioned on purpose: bump the version to upgrade. You don't have to watch the releases page β€” the plugin checks once a day and, when a newer release exists, prints an "agentcomm-opencode update available: vX β†’ vY" notice in-session like omp / pi do , telling you exactly which version to put in the URL. Why a tarball and notOpenCode installs a remote plugin by cloning the whole repo, and this monorepo full CLI + committed github:… ? dist/ across its history is a large, slow clone that OpenCode's installer chokes on. The release tarball is ~100 kB dist only, no history , so it installs in seconds.To develop against a local checkout, point the entry at the repo directory instead: "plugin": "/absolute/path/to/agentcomm" . in a git repo: zero config. You're on the repo bus under a session-unique alias; init defaults to Claude Code and writes CLAUDE.md. agentcomm init β†’ acting as yoni-3f2a Β· on the bus: git+ssh://… Codex uses its own repo guidance file. agentcomm init --harness codex β†’ AGENTS.md created agentcomm agents who's here: yoni-3f2a Β· dana-97b1 Β· ci-bot agentcomm send ci-bot "hold deploys" --subject status named ROLES addressable, stable take --as; register warns if the alias is live in another session agentcomm register --as reviewer agentcomm send reviewer "review src/auth.ts" --subject task --thread auth-1 agentcomm inbox --as reviewer --json consumes; archives under read/ agentcomm wait --as reviewer --timeout 30000 exit 0 on delivery, 2 on timeout shared-worker-queue pattern multiple workers, one queue β€” git + SQL backends agentcomm send work-queue "task-1" --subject task agentcomm claim --queue work-queue --as worker-1 atomic; null when empty other stores when topology calls for it push wait, SQL claims : export AGENTCOMM BACKEND=postgres://user:pass@host:5432/agentcomm agentcomm wait --as reviewer --timeout 30000 resolves within ~ms via LISTEN/NOTIFY send / broadcast read the body from the trailing argument, or from stdin if omitted: echo "from a pipe" | agentcomm send bob --as alice Agents sharing a repo, talking through it β€” the repo is the bus: repo permissions are the ACL, every message is a commit you can watch. Cloud + local worker fleets splitting one queue with atomic claim . A CD pipeline you can ask "what's the status of the build?" mid-deploy. IoT edge agents β€” a camera answering "what do you see?", weather sensors reporting humidity to one broadcast β€” on nothing but outbound HTTPS. Claude Code, Codex, and OpenCode pairing on one machine β€” each native plugin uses its own guidance file while both communicate over the same repo bus. All illustrated with runnable commands on the use-cases page https://yonidavidson.github.io/agentcomm/ use-cases β€” plus why the security story is subtraction : your storage's auth is the bus's auth. | Command | What it does | |---|---| init | Put this repo on the bus: writes CLAUDE.md by default, or AGENTS.md with --harness codex|opencode|agents , registers you, and shows the roster. Commit the selected harness file. | register | Register / heartbeat the calling agent --as . | agents | List registered agents. | send