The project's README from github.com/SeemSeam/claude_codex_bridge. As one markdown file: README.md.
A lightweight multi-agent TUI with a stable cross-provider collaboration layer
Coordinate Codex, Claude, Gemini, and other CLI agents in visible, controllable workflows you can take over
中文 | English | 日本語 | Français | Deutsch | العربية | Español | Português | 한국어 | Русский
Quick Start · Mobile App · Rich Mode · Configure Agents · User Guide · Developer Guide
A -> B -> C, A,B -> C, and A -> B,C.Install or update an npm-managed CCB with npm:
npm install -g @seemseam/ccb@latest
For GitHub release-package or source installs, use CCB's transactional updater:
ccb update
On an npm-managed install, ccb update prints the equivalent npm command and
does not modify npm's vendored payload in place.
The Windows beta artifact is attached to the matching stable CCB GitHub
release. Download ccb-windows-x86_64.zip and its .sha256 sidecar, verify
the digest, extract the ZIP, then run:
.\install.ps1 install -Yes
ccb --print-version
It requires native Windows x64, Python 3.10+, WezTerm, Git Bash, and Herdr
0.8.0 or newer. The installer creates an install-local managed Python runtime.
The binaries are unsigned, and ccb update remains diagnostic-only for this
beta support tier; install a later Windows build by rerunning its validated
install.ps1.
CCB-managed provider panes suppress known provider-native startup update prompts.
After updating CCB—or immediately when CCB is already current—ccb update
checks installed provider CLIs and offers supported updates once. Use
--providers check, --providers all, or --providers none for explicit
report-only, non-interactive update, or skip behavior. Declining prompts again
on the next ccb update; skipping a version hides only that exact version.
CCB never restarts active provider panes during this flow, so an accepted
provider update applies when that pane next starts or is explicitly restarted.
After a release change, the newly installed CCB also retires old
project-scoped Claude/Gemini caches. Manifest-valid caches for deleted projects
are removed immediately. A stopped current project is cleaned immediately;
active or other existing projects are preserved and cleaned after their next
successful ccb kill. Unknown providers, malformed manifests, foreign
symlinks, sessions/auth, and the user-scoped Gemini cache are never removed by
this migration. Use ccb update --no-cache-cleanup to skip it for one update.
To roll back, use the same transactional updater with an older released version,
for example ccb update 8.1.3. CCB rejects a same-version artifact whose build
identity differs from the installed build, and restores the prior local prefix
if the update transaction fails. If restoration itself cannot complete, CCB
retains and reports the external recovery backup path.
If npm is not convenient in your environment, download the matching package from Releases, unpack it, and install:
tar -xzf ccb-*.tar.gz
cd ccb-*
./install.sh install
Source install is intended only for development or temporary fallback:
git clone https://github.com/SeemSeam/claude_codex_bridge.git
cd claude_codex_bridge
./install.sh install
Source install links global ccb / ask back to the checkout. Regular users should prefer the npm package.
Run this from your working directory:
ccb
If startup reports that .ccb cannot be created automatically or that the project anchor is missing, create .ccb manually:
mkdir -p .ccb
A blank project starts light: CCB opens one main window with a single agent named demo, selecting the first supported CLI available on the machine (Codex, Claude, Gemini, then other providers). It no longer mounts a multi-agent team by default.
Click the ⚙ Settings icon at the top-left of the CCB sidebar to open the local configuration control panel. You can also run ccb config ui from the project directory.
The Config UI always binds to loopback. To use a stable local port and token, configure a token source in .ccb/ccb.config; never put a literal token in that file:
[config_ui]
port = 43123
token_env = "CCB_CONFIG_UI_TOKEN"
# Or use this instead of token_env:
# token_file = ".ccb/config-ui.token"
--port remains a one-run override. token_file must be project-relative, non-symlinked, and owner-only (chmod 600 .ccb/config-ui.token on POSIX). Without a token source, CCB keeps the existing random token and ephemeral-port behavior. The CLI prints only the loopback URL and token source, never the token value.
The panel edits windows, pane splits, providers, models, thinking levels, API overrides, workspaces, Rich mode, and sidebar settings. It validates changes before saving and supports reload dry-runs and guarded hot reload. Saving creates .ccb/ccb.config and pins the selected provider and topology for this project.
For an advanced multi-agent topology, edit it visually or create .ccb/ccb.config manually. In v2 [windows], , and ; control vertical stacking and horizontal splits inside each window, so A,B;C,D is close to a four-pane layout.
version = 2
[windows]
main = "main:codex"
work = "worker1:codex(worktree), worker2:claude(worktree)"
review = "reviewer:claude, qa:gemini"
[ui.sidebar]
mode = "every_window"
width = "15%"
bottom_height = 20
agents_height = "50%"
comms_height = "15%"
tips_height = "35%"
comms_limit = 3
Validate the config and start the workspace:
ccb config validate
ccb
You can type directly in any agent pane, or let agents collaborate:
/ask reviewer review the latest parser changes and list blocking issues.
Agents can also call /ask during workflow orchestration to delegate and hand off work. Use agent memory or the project-wide shared memory file .ccb/ccb_memory.md for durable coordination.
The recommended way to control CCB from a phone can connect to all CCB projects, control each agent, accept voice input, and transfer files.
ccb update mobile
This command guides installation and configuration.
CCB 8.6.13 includes the Flutter CCB Mobile source in mobile/ and publishes the Android APK through GitHub Releases:
mobile/applib/mobile_gatewayThe phone app is a remote controller for real CCB projects running on a server. It can discover mounted projects from the server-wide mobile gateway, switch windows and agents, render agent conversation context, send text through pane-native input, open a terminal view, and upload/download images and documents through the authenticated gateway.
Safety boundary:
127.0.0.1:8787.ccb install mobile --route-provider lan --listen 192.168.31.155:8787. The pairing URL is inferred from --listen; no forwarding process or --public-url is needed.Browse file trees, open files, edit documents, and preview media inside the terminal.
ccb update rich
After rich mode is enabled, plain ccb opens the rich WezTerm launcher automatically unless it is already running inside a CCB-managed rich WezTerm session. Run ccb uninstall rich to return to normal terminal startup.
CCB supports Agent Roles Spec, a host-neutral specification for packaging specialist agents. It can bundle skills, memory, and tool dependencies into installable, mountable, and removable Role Packs. That repository also serves as the public role catalog.
| Role | Purpose |
|---|---|
agentroles.ccb_self |
CCB self-maintenance, config help, runtime diagnosis, protected recovery, and workflow orchestration. |
agentroles.archi |
Architecture review, boundary checks, coupling analysis, maintainability risks, and follow-up gate advice. |
agentroles.frontend_engineer |
Frontend design and implementation, design systems, accessibility, browser QA, and reviewed AGY delegation. |
agentroles.mobile_app_engineer |
Mobile design and implementation for iOS, Android, React Native, Expo, Flutter, SwiftUI, Jetpack Compose, and more. |
agentroles.mother |
Role creation, role source audit, role research, blueprint design, and Agent Roles spec compliance checks. |
agentroles.su_ccb |
SU-CCB workflow operations for requirement analysis, planning, dispatch, review gates, archiving, and recovery. |
Use the ⚙ Settings control panel for normal project configuration. If you want agent-assisted configuration and runtime diagnosis, ccb_self remains available as an optional Role Pack and can be added with ccb roles add agentroles.ccb_self:codex.
Supported managed Agents receive the built-in ask, ccb-clear, ccb-compact, and ccb-diagnose control skills even when optional skill inheritance is disabled. Use $ccb_diagnose <agentname> to inspect one Agent's authoritative runtime/job state and live pane evidence, apply bounded recovery when safe, and review a redacted issue draft before explicitly authorizing GitHub submission. Managed Codex also keeps reconnect.
.ccb/ccb_memory.md is the project-wide shared memory document. Use it for team collaboration rules, project constraints, long-lived context, and agent handoff conventions. Stable cross-agent information belongs there instead of being copied into several provider-private memory files.
[email protected]seemseam-com
WeChat group QR codes are valid for seven days. If this one has expired, add
seemseam-comto request the latest invitation.
Thanks to the Linux.do community for testing, feedback, and discussion.
Thanks to tmux-agent-sidebar for sidebar ideas and inspiration.
agentroles.ccb_self; workflow-specific ccb_* roles remain available to V3 rather than appearing in earlier schemas.0.149.0 custom providers while keeping route-only local gateways unauthenticated.dsh, using its loopback HTTP/WebSocket service and exact native turn evidence..ccb/workspaces/<agent>/... tree into authenticated Mobile download attachments.