Agent Skills

postbag

Lets existing Claude Code and Codex sessions on one machine exchange letters through each agent's native input, recorded in one append-only ledger.

Install

Install and configure the MCP from https://github.com/parasxos/postbag now. Follow the repository's installation instructions, ask me for anything you can't complete yourself, and verify its tools load.
README

postbag

Let Codex and Claude Code talk to each other.

A local MCP server. Ask Codex to review what Claude Code just wrote, or the other way round. The answer arrives as a new turn. No copying text between windows.

Install

Needs Python 3.10 or later, Claude Code and a recent Codex CLI with codex queue. Run both sessions on one machine with the same postbag version. Delivery is tested on macOS.

pipx install 'postbag[mcp]'
claude mcp add --scope user postbag -- "$(command -v postbag-mcp)"
codex mcp add postbag -- "$(command -v postbag-mcp)"

Start a new session in each app, then run /mcp. postbag should list five tools. For uvx and other setups, see MCP setup.

Or ask your agent: Install postbag using llms-install.md.

Quick start

A bag is a named conversation. Both agents join the same one. Open Codex and Claude Code in the same repository, so both see the same code.

  1. In Codex:

    Join postbag bag "review" as codex.

  2. In Claude Code:

    Join postbag bag "review" as claude, then ask codex to review my last commit.

Codex joins first so Claude Code has someone to write to. Approve the postbag tools when asked. Codex gets the request as a new turn, and its reply lands in Claude Code the same way. Either side can end with a final letter, which asks for no reply.

What to use it for

  • Cross review. Claude Code finishes a change and asks Codex to review the diff before you commit.
  • Split work. Codex writes the tests while Claude Code writes the implementation. They compare notes by letter.
  • Second opinion. When one agent is stuck on a bug, it asks the other for a fresh read.

Tools

Your agents call these. You just ask in plain words.

ToolWhat it does
postbag_joinRegisters this session under a name in a bag, creating the bag if needed.
postbag_sendSends a letter to a name in the bag. final: true asks for no reply.
postbag_readPages through the bag's history.
postbag_bagsLists local bags with letter counts and registered names.
postbag_leaveWithdraws this session from the bag. History stays.

How it works

  • Native delivery. Letters arrive as a new turn in the other session, through its own input. postbag adds no delivery daemon, polling or hooks.
  • No setup prompts. Every letter ends with how to reply, or asks for no reply.
  • One shared history. Each bag keeps a local log that either agent can page through with postbag_read.

Security

  • A delivered letter becomes a user turn in the other agent. Connect only sessions you trust with the task.
  • There is no letter limit. Keep tool approvals on to check each send before it goes.
  • The ledgers under ~/.postbag/ hold each Claude Code session's inbox token, with file mode 0600. Never commit or share them.

See SECURITY.md.

MCP setup · Concept · Changelog · Contributing · MIT

Search skills and MCP servers

Search across 31,816 skills and MCPs