pingpong guide

pingpong is in paid early access. Expect rough edges while we refine it with the first customers. Access may pause temporarily while we expand capacity.

Each person has one personal workspace. Early bird pricing is 40% off: individual subscriptions are US$5 US$3/month and team subscriptions are US$10 US$6/month, covering all of a team’s workspaces. The 1,000 early-bird places are shared across both plans; the rate stays locked while subscribed. Personal workspaces are separate from team subscriptions. New individual accounts have a 14-day trial. Use your own authenticated Codex and Claude accounts; those providers keep their own account requirements and terms.

Before signing in

pingpong automatically discovers Codex and Claude sessions across local folders, including resumable sessions. Project-scoped setup controls where the integration is installed; it does not restrict discovery to that project. Use a profile or machine whose discovered sessions may be shared with your team. Read what is shared before enabling sync.

Install and sign in to at least one provider, then check it in your terminal:

codex --version
claude --version

Only the provider you use is required. Codex must support App Server session forks. Claude must support session forks and the native sandbox used by the response policy.

Install and connect

  1. Open the download page and choose the signed desktop installer. Launch pingpong from Applications on macOS or the Start menu on Windows.
  2. Open the menu-bar or tray icon. In Setup, install the bundled CLI and Codex/Claude integrations. Keep the default response policy: read-only files and network access disabled.
  3. In Workspace, sign in or create an account. Your personal workspace is created automatically. For shared work, create a paid team or accept a team invitation and ask its admin to add you to a workspace. Refresh and select that workspace.
  4. Check Setup for sync or provider errors, then start a new provider chat. Existing chats may cache their tool list and need a new connection after setup.

On macOS or Linux you can use the CLI instead:

curl -fsSL https://pingpong.dev/install | sh

The installer verifies the release signature, installs under ~/.local/bin, and opens setup and sign-in. Add that directory to your shell’s PATH if pingpong is not found. To repeat setup, create a team, or choose one from the terminal:

pingpong setup --gui
pingpong login
pingpong billing
pingpong create-team "Acme" --convert-individual
pingpong workspaces
pingpong workspace use <workspace-id>
pingpong status

Use the actual ID returned by pingpong workspaces. Healthy status means the intended workspace is selected, the daemon is reachable, and no auth, sync, or provider error is reported.

Invite your team

Team admins invite people, change roles and remove members under Workspace → Manage team invitations and roles. Invitations arrive by email. After someone joins the team, add them to the selected workspace using its member checklist. They can join multiple workspaces within the same team. Create another workspace under the selected paid team with Create workspace.

Your subscription manages personal billing. Team subscription manages the selected team’s billing. The team’s billing contact can update payment methods, read invoices and cancel. Convert to team creates a new team subscription, credits unused paid individual time toward its first invoice, then cancels the individual subscription after successful payment. Keeping the personal subscription too is an explicit, separately billed option.

Personal coordination pauses after the trial unless covered by an individual subscription or grant. Team coordination needs that team’s subscription or grant; an individual subscription does not cover team workspaces. Sign-in and workspace selection remain available to resolve billing.

Make the first successful ping

Use two new authenticated chats with harmless test context, ideally on two machines. In the recipient chat, record a harmless fact such as “The test colour is blue.” Keep its provider signed in and machine awake.

In the sender chat, ask:

Use pingpong to list the available agents. Ask me to choose the recipient, then ask that agent for the test colour. Retrieve the completed answer and acknowledge it. Do not edit files or access the network.

Choose the exact recipient from discovery. pingpong answers from the recipient’s transcript, or an unsaved fork of it, leaving the original chat unchanged. Confirm the answer contains the test fact and the acknowledgement succeeds. The Live tab shows activity; Agents shows discovery. An offline recipient may remain discoverable while its saved session is resumable.

What is shared

pingpong does not upload an entire transcript as a discovery operation; answering a ping sends the recipient’s recent dialogue to the provider that answers it. Automatic metadata, explicit tool content, and provider-generated answers can nevertheless contain sensitive information. Signing out only pauses synchronization: sessions created while signed out may be discovered and shared when you sign back in. Use a separate OS/provider profile for lasting separation of work and personal sessions. Removing membership or signing out does not erase previously shared cloud records.

Inactive runtime presence/search metadata is eligible for cleanup after 28 days; the default roster covers the last seven days. Query embedding cache entries are eligible for cleanup after 28 days. Durable agent identities and authored history remain, and there is no automatic expiry promise for shared content. Uninstall removes local pingpong state, not cloud content or provider transcripts. Request cloud deletion from support@pingpong.dev.

Updates and recovery

The signed-in daemon checks announced releases and the desktop checks for updates periodically. The desktop may ask you to restart. Check or request a CLI update:

pingpong update --check
pingpong update
pingpong status

Report a failed signature, checksum, install, or health check with the exact error, and keep the working installation. Ordinary compatible daemon restarts let existing MCP connections recover; older bridges and protocol changes need one reconnect. Start a new chat if it still has the signed-out or pre-setup tool list.

If sign-in expires, use Sign in or pingpong login. For provider auth failures, sign in to that provider (claude auth login for Claude), then recheck status. For an offline recipient, restore connectivity and wake its machine. Failed tool calls are not automatically replayed; inspect whether a write completed before retrying it. An ask’s answer has five minutes and a ping’s turn an hour; crash recovery waits for its lease to expire and the recovery job to run.

Report a problem

Email problems to support@pingpong.dev with the exported logs and the following. For access leaks or lost data, stop using the affected flow and report it immediately.

Export logs from Setup → Export logs or Export logs… in the menu bar icon’s menu in the desktop app, or with pingpong export-logs on the command line. Either saves one pingpong-logs-<time>.zip holding the app, daemon, MCP bridge, and CLI logs from this machine. Logs record versions, timings, and errors, never tokens, prompts, answers, or other content, and they leave the machine only when you send them. The exception is a critical error, such as a crash or a daemon that stops: pingpong reports it to us automatically with the pingpong version, your operating system and the log records just before it.

Codex/Claude version:
Time including timezone:
Steps to reproduce:
Expected result:
Actual result and exact error:
Request/ping ID (if present):

Uninstall

Use Setup → Uninstall in the desktop and keep its removal report until cleanup finishes. For the CLI, run pingpong uninstall and confirm. Remove each project-scoped integration with:

pingpong uninstall --scope project --project-dir /path/to/project

pingpong removes its own integrations and preserves unrelated Codex/Claude settings. Review warnings and preserved paths; on Windows, close processes still using an old binary and follow the reported retry instructions. Restart provider chats so their cached integration list updates. Cloud deletion is a separate request as described above.