Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when two or more agent sessions — same or different platforms (Claude Code, Codex, Gemini CLI, Copilot, Cursor) — work the same repo concurrently, hand off in-flight work, or need to interrogate each other about a handoff. Triggers: "set up comms with the other session", "hand this off to Codex/Gemini", "grill the handoff", "check the mailbox", parallel sessions clobbering shared files, resuming work another agent left half-done. Trigger with "/walkie-talkie".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-25 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 189% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 117% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 86% | 0% |
An append-only file mailbox, committed to the repo, that lets agent sessions communicate across platforms, machines, and time. Any agent that can read and write files can participate — no shared harness, API, or memory required. Git is the transport; the human audits both channels.
Core invariant: one writer per file, append-only. Each agent owns exactly one outbox file. Nobody ever edits another agent's outbox, and nobody ever rewrites a past entry. This designs merge conflicts and clobbering out of existence.
Why a fixed protocol matters: unaided agents invent good but incompatible mailbox formats. The value of this skill is convergence — every session that loads it speaks the same format, so channels compose across sessions that have never met.
When NOT to use: Claude Code sessions in the same harness on the same machine — use Agent Teams / SendMessage instead (push notifications beat polling). One-shot handoff with no return channel and nothing contested — a plain HANDOFF.md is enough, though the Grill (below) still applies on receipt.
comms/ next to the work it coordinates (repo-wide: .agents/comms/; sprint-scoped: docs/<area>/comms/).README.md, filling in the agent handles.<HANDLE>.md (e.g. FABLE.md, CODEX.md). Initialize peers' outboxes with a one-line pointer to the README so their first read routes them in.CLAUDE.md, AGENTS.md, GEMINI.md: "In-repo agent mailbox at `<path>/comms/` — read its README.md and your inbox before changing anything. MANDATORY."file:line for load-bearing state, known unknowns, and any ACTION-REQUESTED.Append to YOUR OWN outbox only:
markdown## [2026-07-03 14:05] STATUS: eval-surface rotation half-applied Re: — The 7-match gate is now the ONLY confirmation surface (src/ranker.py:4). build_cache() sort order is stale vs the bounce rule — main outstanding fix.
Header: ## [YYYY-MM-DD HH:MM] TYPE: subject. Re: names the entry being answered (by timestamp+subject), or —.
| Type | Meaning | |---|---| | STATUS | What I did / left half-done / decided. The workhorse. | | ACTION-REQUESTED | Peer must act or explicitly decline. Highest priority. | | QUESTION / ANSWER | Async request/response. ANSWER always sets Re:. | | GRILL | Handoff interrogation — evidence required (see below). | | EVIDENCE | Reply to a GRILL. Command output, SHAs, file:line — not assurances. | | CLAIM / RELEASE | Advisory lock on a named surface (exact paths). | | ACK | Received and understood; nothing further. |
Read every peer outbox at: session start, before starting a new slice of work, after completing one. Answer open ACTION-REQUESTED and GRILL items addressed to you before starting new work. Write whenever you have verdicts, needs, or plans affecting shared surfaces, caches, or artifacts — not just at session end.
On receiving a handoff, do not ACK politely — interrogate. Post a GRILL entry with pointed questions; the handing-off agent (this session or its next incarnation) must answer each with EVIDENCE, not assurances. Minimum grill set:
Any grill question that cannot be answered with evidence is recorded as a RISK in the answering entry — never silently dropped. Unanswered grills block RELEASE of the affected surface.
Re:).| Mistake | Fix | |---|---| | Single shared LOG.md both agents write | One outbox per agent — sole-writer files can't conflict | | Editing an old entry to "update" it | New entry with Re: — audit trail must be immutable | | Polite ACK of a handoff | GRILL it — untested handoff claims are where bugs hide | | Mailbox only written at session end | Checkpoint cadence: start, before each slice, after each slice | | Protocol described only in chat | README.md in the comms dir + shims in CLAUDE.md/AGENTS.md/GEMINI.md | | Committing code without its mailbox entry | Commit them together — a pull must never show unexplained code |
comms/ (or an agreed path) and one outbox file per agent handleCLAUDE.md, AGENTS.md, GEMINI.md, …)Follow the Setup / Message Format / Grill sections above. Non-negotiables:
comms/ (or agreed) mailbox directory with README.md (protocol) and <HANDLE>.md outboxesSession A: /walkie-talkie set up comms at .agents/comms/
Session A: writes STATUS + handoff with file:line load-bearing state
Session B: reads mailbox, grills ambiguous claims, continues workSession A (Claude): creates comms/, appends handoff entry
Human: git push; opens Codex on same branch
Session B (Codex): reads AGENTS.md → mailbox path → grills → continuesOther measured skills in the registry, with their headline benchmark lift.