Claude Code Bridge

Overview

Claude Code Bridge (ccb) runs Claude, Codex, Gemini, and other AI models side-by-side in a split-pane terminal, letting them collaborate in real time. Its maild daemon can route incoming email to the right agent — but out of the box it requires per-user Gmail or Outlook credentials stored in the OS keyring, which breaks in cloud environments and doesn’t travel with the project.

Ravi replaces that fragile credential layer with provisioned email addresses, a portable secrets vault, and per-agent phone numbers — turning a local developer tool into a network of externally-addressable agent endpoints.

The Problem ccb Solves Without Ravi

ccb lets five AI models collaborate on the same codebase simultaneously. But when those agents need to interact with the outside world — receive a verification email, sign up for a test service, or accept an inbound task over email — they all share whatever credential the developer manually configured. There’s no separation between agents, no audit trail, and credentials break the moment the project moves machines.

What Ravi Adds

1. Email-to-Agent Gateway (strongest fit)

ccb’s maild daemon routes inbound email to agents based on subject prefix (CLAUDE:, CODEX:, etc.). Instead of pointing maild at a personal Gmail account, each ccb instance gets a dedicated Ravi email address — stable, externally routable, zero credential setup. Teammates or other agents can email the ccb session directly without knowing which machine it’s running on. The agent’s inbox is accessible via Ravi’s API, so maild can poll it without ever touching a personal account.

2. Per-Agent Identity for Multi-Model Teams

When a ccb session has Claude orchestrating, Codex implementing, and Gemini reviewing, each model may need to interact with external services independently. Ravi gives each mounted agent its own email address and phone number — so Codex can sign up for a test SaaS, receive the verification SMS, and confirm without surfacing the developer’s real number. Credentials land in Ravi’s E2E encrypted vault rather than a shared plaintext config file.

3. Portable Secrets Vault

ccb stores mail credentials in the OS system keyring — a setup that breaks in remote environments, CI containers, and cloud VMs. Ravi’s secrets store is API-accessible and E2E encrypted, so ccb configurations travel with the project and work anywhere the Ravi CLI is installed.

Setup

1. Install prerequisites

# Install Ravi CLI
brew install ravi-hq/tap/ravi
ravi auth login

# Install ccb
pip install claude-code-bridge

2. Provision a Ravi identity for your ccb session

# Create a dedicated identity for this project
ravi identity create "ccb-myproject"

# Get the provisioned email address
ravi get email --json
# → { "email": "ccb-myproject-a1b2c3@raviapp.com" }

3. Configure maild to use the Ravi inbox

In your ccb config (.ccb/config.toml):

[maild]
provider = "ravi"
poll_interval_seconds = 10

# Routing rules (unchanged from standard ccb)
[maild.routing]
"CLAUDE:" = "claude"
"CODEX:"  = "codex"
"GEMINI:" = "gemini"

With the Ravi provider, maild calls ravi inbox email --unread --json on each poll cycle and routes messages to the appropriate agent. Replies go out via ravi email reply.

4. Assign per-agent identities (optional)

For multi-agent setups where each model needs its own external identity:

ravi identity create "ccb-claude"
ravi identity create "ccb-codex"
ravi identity create "ccb-gemini"

Each identity gets a unique email address and phone number. Store the relevant identity name in each agent’s startup context so ravi commands are scoped to the right inbox.

5. Store credentials in the Ravi vault

Replace OS keyring references with Ravi secrets:

# Store an API key that agents need
ravi secrets set OPENAI_API_KEY sk-...

# Agents retrieve it at runtime
ravi secrets get OPENAI_API_KEY --json

Example: Email-Driven Task Assignment

Once configured, any external collaborator can assign work to your ccb session by sending an email:

To: ccb-myproject-a1b2c3@raviapp.com
Subject: CODEX: Refactor the auth module to use JWT

Please extract the token validation logic into a separate service...

The maild daemon polls the Ravi inbox, sees the CODEX: prefix, and routes the message to the Codex agent in the split-pane terminal. Codex’s reply goes back through Ravi’s send API. The developer’s personal email is never involved.

Why This Matters for Autonomous Agent Teams

ccb is one of the first tools to treat multi-model collaboration as a first-class workflow. The gap it leaves is identity: when agents operate autonomously across a project lifecycle, they need stable, externally-routable contact points that aren’t tied to any individual developer’s personal accounts.

Ravi closes that gap. Each ccb session — and each agent within it — can have its own persistent identity: an email address that receives tasks, a phone number that completes SMS verification, and a secrets vault that holds credentials without ever touching the host OS’s keyring.

The agent team becomes a real endpoint on the internet, not just a local process.

Next Steps