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
- Getting Started with Ravi
- Agent Skills — available skills for any agent platform
- Claude Code — Ravi’s native Claude Code plugin
- Claude Squad — another multi-agent terminal tool