Silky Smooth Claude & Codex & Gemini Collaboration via Split-Pane Terminal
Build a real AI expert team. Give Claude Code / Codex / Gemini / OpenCode partners that never forget.
English | δΈζ
Introduction: Multi-model collaboration effectively avoids model bias, cognitive blind spots, and context limitations. However, MCP, Skills and other direct API approaches have many limitations. This project offers a new solution.
| Feature | Benefit |
|---|---|
| π₯οΈ Visual & Controllable | Multiple AI models in split-pane CLI. See everything, control everything. |
| π§ Persistent Context | Each AI maintains its own memory. Close and resume anytime (-r flag). |
| π Token Savings | Sends lightweight prompts instead of full file history. |
| πͺ Native Workflow | Integrates directly into WezTerm (recommended) or tmux. No complex servers required. |
Step 1: Install WezTerm (native .exe for Windows)
Step 2: Choose installer based on your environment:
Linux
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh installmacOS
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh installNote: If commands not found after install, see macOS Troubleshooting.
WSL (Windows Subsystem for Linux)
Use this if your Claude/Codex/Gemini runs in WSL.
β οΈ WARNING: Do NOT install or run ccb as root/administrator. Switch to a normal user first (su - usernameor create one withadduser).
# Run inside WSL terminal (as normal user, NOT root)
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh installWindows Native
Use this if your Claude/Codex/Gemini runs natively on Windows.
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
powershell -ExecutionPolicy Bypass -File .\install.ps1 installccb up codex # Start Codex
ccb up gemini # Start Gemini
ccb up opencode # Start OpenCode
ccb up codex gemini # Start both
ccb up codex gemini opencode # Start all three
ccb-layout # Start 2x2 layout (Codex+Gemini+OpenCode)| Flag | Description | Example |
|---|---|---|
-r |
Resume previous session context | ccb up codex -r |
-a |
Auto-mode, skip permission prompts | ccb up codex -a |
-h |
Show help information | ccb -h |
-v |
Show version and check for updates | ccb -v |
ccb update # Update ccb to the latest versionKey Point:
ccb/cask-w/cpingmust run in the same environment ascodex/gemini. The most common issue is environment mismatch causingcpingto fail.
- Install Windows native WezTerm (
.exefrom official site or via winget), not the Linux version inside WSL. - Reason:
ccbin WezTerm mode relies onwezterm clito manage panes.
Determine based on how you installed/run Claude Code/Codex:
-
WSL Environment
- You installed/run via WSL terminal (Ubuntu/Debian) using
bash(e.g.,curl ... | bash,apt,pip,npm) - Paths look like:
/home/<user>/...and you may see/mnt/c/... - Verify:
cat /proc/version | grep -i microsofthas output, orecho $WSL_DISTRO_NAMEis non-empty
- You installed/run via WSL terminal (Ubuntu/Debian) using
-
Native Windows Environment
- You installed/run via Windows Terminal / WezTerm / PowerShell / CMD (e.g.,
winget, PowerShell scripts) - Paths look like:
C:\Users\<user>\...
- You installed/run via Windows Terminal / WezTerm / PowerShell / CMD (e.g.,
Edit WezTerm config (%USERPROFILE%\.wezterm.lua):
local wezterm = require 'wezterm'
return {
default_domain = 'WSL:Ubuntu', -- Replace with your distro name
}Check distro name with wsl -l -v in PowerShell.
- Most common: Environment mismatch (ccb in WSL but codex in native Windows, or vice versa)
- Codex session not running: Run
ccb up codexfirst - WezTerm CLI not found: Ensure
weztermis in PATH - Terminal not refreshed: Restart WezTerm after installation
If ccb, cask, cping commands are not found after running ./install.sh install:
Cause: The install directory (~/.local/bin) is not in your PATH.
Solution:
# 1. Check if install directory exists
ls -la ~/.local/bin/
# 2. Check if PATH includes the directory
echo $PATH | tr ':' '\n' | grep local
# 3. Check shell config (macOS defaults to zsh)
cat ~/.zshrc | grep local
# 4. If not configured, add manually
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# 5. Reload config
source ~/.zshrcIf WezTerm cannot find ccb commands but regular Terminal can:
- WezTerm may use a different shell config
- Add PATH to
~/.zprofileas well:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zprofileThen restart WezTerm completely (Cmd+Q, reopen).
Once started, collaborate naturally. Claude will detect when to delegate tasks.
Common Scenarios:
- Code Review: "Have Codex review the changes in
main.py." - Second Opinion: "Ask Gemini for alternative implementation approaches."
- Pair Programming: "Codex writes the backend logic, I'll handle the frontend."
- Architecture: "Let Codex design the module structure first."
- Info Exchange: "Fetch 3 rounds of Codex conversation and summarize."
"Let Claude, Codex and Gemini play Dou Di Zhu (ζε°δΈ»)! You deal the cards, everyone plays open hand!"
π Claude (Landlord) vs π― Codex + π Gemini (Farmers)
Note: Manual commands (like
cask,cping) are usually invoked by Claude automatically. See Command Reference for details.
| Command | Description |
|---|---|
/cask <msg> |
Background mode: Submit task to Codex, free to continue other tasks (recommended) |
/cask-w <msg> |
Foreground mode: Submit task and wait for response, faster but blocking |
cpend [N] |
Fetch Codex conversation history, N controls rounds (default 1) |
cping |
Test Codex connectivity |
| Command | Description |
|---|---|
/gask <msg> |
Background mode: Submit task to Gemini |
/gask-w <msg> |
Foreground mode: Submit task and wait for response |
gpend [N] |
Fetch Gemini conversation history |
gping |
Test Gemini connectivity |
Combine with editors like Neovim for seamless code editing and multi-model review workflow. Edit in your favorite editor while AI assistants review and suggest improvements in real-time.
- Python 3.10+
- Terminal: WezTerm (Highly Recommended) or tmux
./install.sh uninstallWindows fully supported (WSL + Native via WezTerm)
Join our community
π§ Email: bfly123@126.com π¬ WeChat: seemseam-com
Version History
- Fix oask session tracking bug - follow new session when OpenCode creates one
- Simplify CCA detection: check for
.autoflowfolder in current directory - Plan mode enabled for CCA projects regardless of
-aflag
- Per-directory lock: different working directories can run cask/gask/oask independently
- Add non-blocking lock for cask/gask/oask to prevent concurrent requests
- Unify oask with cask/gask logic (use _wait_for_complete_reply)
- Fix plan mode conflict with auto mode (--dangerously-skip-permissions)
- Fix oask returning stale reply when OpenCode still processing
- Auto-enable plan mode when CCA (Claude Code Autoflow) is installed
- Simplify cping.md to match oping/gping style (~65% token reduction)
- Optimize skill files: extract common patterns to docs/async-ask-pattern.md (~60% token reduction)
- Fix race condition in gask/cask: pre-check for existing messages before wait loop
