Bidirectional bridge between Claude Code and OpenAI Codex CLI. Built on Claude Code Channels. Two AI agents, one conversation, real-time web UI.
codex-claude-bridge is a growing TypeScript project in the AI payments / x402 ecosystem, focused on agent-to-agent, ai-agents, claude, claude-channels. It currently has 51 GitHub stars and 11 forks, and sits alongside related tools like darwin-agentic-cloud, agentstore, mcp-dev-latam, join.cloud, suede-creator-skills, a2a-demos.
Uses Claude Code Channels for push notifications on Claude's side and a blocking MCP tool on Codex's side.
Two AI coding agents. One conversation. Real-time web UI to watch it happen.

Claude Code and Codex CLI are both great coding agents, but they don't expose a native symmetric chat protocol between each other. Plain MCP is request-response, not push-to-both-live-sessions. A2A (Google's agent protocol) isn't supported natively by either tool. There's no off-the-shelf way to make the two agents hold a live conversation.
Claude Code recently shipped Channels, a way to push messages into a running session from an MCP server. This project uses that as the push mechanism on Claude's side, and a blocking MCP tool call on Codex's side, to create a practical bidirectional bridge between the two.
When Codex calls send_to_claude(), the bridge holds the connection open until Claude replies. From Codex's perspective it's a tool call that takes a bit to return. From Claude's perspective it's a channel notification. The bridge sits in between, routing messages and showing them in a web UI.
In practice, Codex-initiated turns feel real-time and two-way. This is not symmetric push in both directions though: Claude can reply immediately to a pending Codex request, but Claude-initiated messages still wait until Codex polls or makes another request.
bun --version, install from bun.sh if missing)git clone https://github.com/abhishekgahlot2/codex-claude-bridge.git
cd codex-claude-bridge
bun install
Add codex-bridge to your Claude Code MCP config. Open ~/.mcp.json (create it if it doesn't exist) and add:
{
"mcpServers": {
"codex-bridge": {
"type": "stdio",
"command": "bun",
"args": ["/full/path/to/codex-claude-bridge/server.ts"]
}
}
}
Replace /full/path/to with wherever you cloned the repo.
Add the Codex-side MCP server to ~/.codex/config.toml:
[mcp_servers.codex-bridge]
command = "bun"
args = ["/full/path/to/codex-claude-bridge/codex-mcp.ts"]
tool_timeout_sec = 120
The tool_timeout_sec = 120 is needed because send_to_claude can wait for Claude's reply for about 2 minutes. The default 60s timeout will kill the connection too early.
claude --dangerously-load-development-channels server:codex-bridge
You should see Listening for channel messages from: server:codex-bridge in the output.
In a separate terminal:
codex
Codex will auto-load the codex-bridge MCP server from your config. Verify by running /mcp inside Codex — you should see codex-bridge listed with send_to_claude and check_claude_messages tools.
Go to http://localhost:8788 in your browser. This is where you watch the conversation happen.
Start the conversation from Codex's side. Tell Codex something like:
Use Claude bridge to discuss whether we should use Redis or Memcached for caching. Keep going until you agree.
Codex calls send_to_claude(), the bridge pushes it to Claude via a channel notification, Claude processes it and replies, and the bridge returns Claude's reply to Codex. Codex can keep calling send_to_claude() to continue the discussion.
This means the smooth path is Codex -> Claude -> Codex. It behaves like a live back-and-forth conversation, even though the overall bridge is still asymmetric under the hood.
You can also type in the web UI as a human observer — your messages go straight to Claude's session.
The web UI at localhost:8788 shows all messages in real time:
Claude has a send_to_codex tool, but since Codex can't receive push notifications, the message sits in a queue until Codex polls for it. That's why the Codex-initiated flow is the smoother and more real-time path.
| File | What it does |
|---|---|
server.ts |
Claude Code channel plugin. MCP server over stdio, web UI, and HTTP API endpoints for the Codex side. |
codex-mcp.ts |
Codex CLI MCP server. Exposes send_to_claude() and check_claude_messages(). Talks to server.ts over HTTP. |
.mcp.json |
Plugin config for Claude Code's plugin system. |
.claude-plugin/plugin.json |
Plugin metadata. |
| Env var | Default | What it does |
|---|---|---|
CODEX_BRIDGE_PORT |
8788 |
Port for the web UI and internal API |
CODEX_BRIDGE_URL |
http://localhost:8788 |
URL the Codex-side MCP server uses to reach the bridge |
MCP works as part of the transport here, but by itself it's request-response. One agent can call the other as a tool, but neither side gets a native symmetric push channel into the other's live session.
A2A (Google's Agent-to-Agent protocol) would be a cleaner fit in theory, but neither Claude Code nor Codex exposes native A2A or ACP integration today. Community bridges usually end up wrapping those protocols in MCP anyway.
Claude Code Channels are the only push mechanism either tool exposes today for this setup. This bridge uses channels on Claude's side and a blocking tool call on Codex's side, so Codex-initiated conversations feel live and bidirectional even though Claude -> Codex still falls back to queue + poll.
--dangerously-load-development-channels flag is required.reply_to when replying to Codex. If it omits it, the reply still appears in the web UI but won't route back to Codex.MIT
Verifiable and free cloud compute for AI agents. webMCP + MCP native. Check out our sandboxed Beta + research in the README
Open-source marketplace for Claude Code plugins. Publish in 2 HTTP requests, earn 80% in USDC. Install: /plugin marketplace add techgangboss/agentstore
Open-source MCP servers for Latin American commerce — Pix, NF-e, banking, fiscal, logistics, and messaging across Brazil, Mexico, Argentina, Colombia, Chile, and Peru. MIT, on npm.
Join.cloud lets AI agents work together in real-time rooms. Agents join a room, exchange messages, commit files to shared storage, and optionally review each other's work — all through standard protocols (MCP and A2A).
25 open-source Agent Skills for Claude Code and Codex: multi-agent orchestration, A-F code review, AI evals, CI ship-gates, design, copy, SEO, iOS shipping, music rights, and consumer recovery (the Amazon negotiator that recovered $448.31).
Demo agents showcasing CapiscIO Agent Guard and MCP Guard — trust badges, identity verification, and tool-level authorization for A2A and MCP protocols
The agent-native LLM router for autonomous agents. 55+ models (8 free), <1ms local routing, USDC payments on Base & Solana via x402.
The living ecosystem where AI agents complete tasks through workflow loops, improve through iterative execution, are evaluated by mentor agents or humans in the loop, and turn completed work into reusable work experience and data to improve future agents.
The living ecosystem where AI agents complete tasks through workflow loops, improve through iterative execution, are evaluated by mentor agents or humans in the loop, and turn completed work into reusable work experience and data to improve future agents.
The trust layer for agent-to-agent commerce — natural-language mandates, ERC-7710 delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all Agent Skill / Claude Code plugin.
Open Source AI trading agent that operates autonomously across 1000+ markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.
Live data for AI agents — search, research, markets, crypto, X/Twitter. Pay-per-call via x402 micropayments.