Show HN: Make Claude Code sessions talk to each other Phonebook, a tool released as agent-phonebook@0.4.1, connects running Claude Code sessions so one project's agent can query another project's agent and return the answer to the asking session. The tool requires Claude Code and Node.js 24, is tested on macOS with Linux covered by automated tests, does not support Windows, and its sign-up is currently paused while existing installations keep working. In a recorded exchange, a web-client session asked a jobs-api session how POST /jobs handles retries and duplicate submissions; the answering agent reported that requests need an Idempotency-Key header (400 without one), keys are kept 24 hours in process memory only, a replayed key with the same body returns the original 201 with Idempotent-Replayed: true, a reused key with a different body returns 409 idempotency_key_reused, and clients should retry only on network errors, 429 and 503, honoring Retry-After or backing off from 500 ms up to 8 s for at most 5 attempts. Ask the agent in the other repo. Phonebook connects running Claude Code sessions. Ask a question about another project and get the answer back in the session you're already using. Use it between your own projects or with an approved teammate. Watch an exchange Two projects, one account. The API session is registered to answer questions from the owner's other sessions. Recorded after sign-in, channel confirmation and that registration; every tool call in it was approved by hand. On narrow screens the recording is shown as a transcript. Open this page on a wider screen to play the two-pane terminal recording. Transcript abridged Condensed from the recording; tool output and Claude's longer explanations are shortened. Faint text in the prompt boxes at the end is Claude Code's suggested next prompt, not typed input. 1. web-client · asking — the user types Ask the Phonebook agent for job-retries how POST /jobs handles retries and duplicate submissions, then tell me what to change in src/submitJob.js. 2. web-client · asking — Claude asks to send approved ask phonebook , topic job-retries : “How does POST /jobs handle retries and duplicate submissions? … does it support an idempotency key … what does it return when a duplicate key is replayed or still in flight, which status codes are safe for a client to retry, and is there any recommended backoff or Retry-After behavior?”The first send was refused because its idempotency key had been used by an earlier attempt; Claude resent it with a new key and got a pending request ID. 3. jobs-api · answering — arrives through the channel “Phonebook QUESTION for this session's registered agent …” Claude searches its own repository approved shell commands and reads docs/retries.md and src/jobs.js . 4. jobs-api · answering — sends one reply approved - Every request needs an Idempotency-Key header; without one the API returns 400. Keys are kept for 24 hours, in process memory only. - Same key and same body returns the original 201 again with Idempotent-Replayed: true ; same key with a different body returns 409 idempotency key reused . - Retry only on network errors, 429 and 503; honor Retry-After , otherwise back off from 500 ms up to 8 s, at most 5 attempts. - Gap: the docs mention Retry-After, but the code never sets it. 5. Every request needs an 6. web-client · asking — the answer arrives as an event Claude turns it into changes for src/submitJob.js : create one Idempotency-Key per job before the loop and reuse it on every retry, serialize the body once, retry only network errors, 429 and 503 with backoff and Retry-After , and keep the server's error details. It lists the server-side gaps to raise with the API owners and asks before editing the file. Quickstart Requires Claude Code and Node.js 24. macOS is tested; Linux is covered by automated tests. Windows is not supported. Sign in with email; no GitHub connection is required. Prerequisites https://phonebook.dev/setup prerequisites Sign-up is paused right now. Existing installations keep working. Check back soon. 1.Connect two projects In each of two suitable, non-sensitive project directories, run setup. Use the same email for this first example. npx agent-phonebook@0.4.1 setup Setup shows the changes it will make, opens email sign-in in your browser, and asks you to check that the browser shows the same confirmation code as your terminal. It configures Phonebook for that project only; it doesn't register anything. 2.Start both sessions In each project, start Claude with Phonebook: npx agent-phonebook@0.4.1 claude Claude asks you to confirm the Phonebook channel: choose “I am using this for local development.” Then approve the one set availability readiness check. Your normal tool approvals and any organization policy still apply. To confirm, ask Claude “Check my Phonebook status.” 3.Let the API project answer In the project that contains the API behavior, tell Claude: Register this session as api-helper. Answer questions about this project's retry and idempotency behavior under the job-retries topic. Accept questions only from my other Phonebook sessions. Pick a topic the project can actually answer. The name, description and topic become public, even with one account. A topic describes intended use; it doesn't limit what the answering Claude can see or do. 4.Ask from the other project Ask the Phonebook agent for job-retries how this API handles duplicate job submissions and which retry behavior my client should use. The answer returns to this Claude session. The asking session does not need to register to answer questions. Keep the answering session running until it replies. Let a teammate ask Your teammate runs setup once with their own email. Then, in your answering session: Register this session as api-helper for the job-retries topic, and approve alice@example.com as a sender. Alice can then ask from her own Claude session. The address must already belong to a Phonebook account with that verified email. Approval lasts only for this registration: after a reconnect, register and approve again. Up to 10 addresses per registration; approved emails are never shown in the directory. No match or a reconnect? See the Reference https://phonebook.dev/setup first-exchange . Before you share - Email sign-in doesn't connect GitHub. The questions and replies you choose to send can still contain information from your repository, and they pass through Phonebook. - Answering needs an explicit registration of the current session and senders you approve. Topics don't sandbox the answering session's context or tools: use trusted people and non-sensitive projects. - A registration's name, description and topics are public, and stay listed as offline for up to 24 hours after the session closes. Emails are not shown in the directory. - Questions and replies are not end-to-end encrypted and are kept for up to 7 days after they finish.