claudeers.

🔓 unclaimed — this page was auto-generated from GitHub. Are you the creator?

Claim this page →
// Developer Tools

claude_codex_bridge

Visible multi-agent CLI workspace for mixing Codex, Claude, Gemini, Kimi, Qwen, Cursor, Copilot, Pi, OpenCode, and other AI coding agents

// Developer Tools[ cli ][ api ][ web ][ mobile ][ claude ]#claude#ai-coding#ai-collaboration#antigravity#claude-code#cli#codex#coding-agent#devtoolsNOASSERTION$open-sourceupdated 14 days ago
Actively maintained
100/100
last commit 4 days ago
last release 4 days ago
releases 135
open issues 53
// install
git clone https://github.com/SeemSeam/claude_codex_bridge

CCB

Designed around agent parity Visible, controllable multi-agent cooperative TUI workspace

English | 中文

Quick Start · v7 UI · Rich Mode · Configure Agents · Mobile Gateway Alpha · User Guide · Developer Guide

CCB v7 visible multi-agent CLI workspace


Supported CLIs

Mix CLIs per agent in .ccb/ccb.config; actual availability depends on the local CLI installation and account access.

Codex
codex
Claude
claude
Gemini
gemini
Kimi
kimi
MiMo
mimo
Qwen
qwen
Cursor
cursor
GitHub Copilot CLI
copilot
Crush
crush
Kiro CLI
kiro
Pi
pi
Z.ai CLI
zai
OpenCode
opencode
Antigravity
agy
Droid
droid

New role specification: package skills, memory, and tool dependencies into self-contained Role Packs, then create hot-loadable and removable specialist agents.

Why CCB?

See the workMix providersKeep control
Every agent is a real terminal with layout control.Run multiple CLIs concurrently from one command.Stable background communication for multi-line task orchestration.

Quick Start

1. Install or update

New installs should use the npm package:

npm install -g @seemseam/ccb

After CCB is installed, use CCB's updater:

ccb update

Install or refresh the optional rich media workbench; it bundles verified binaries where possible and installs only the required terminal/media/font dependencies through the platform package manager:

ccb update rich

After rich is enabled, plain ccb opens the rich WezTerm launcher unless it is already running inside a CCB-managed rich WezTerm; use ccb uninstall rich to return to the normal terminal startup.

GitHub release package and source install fallbacks

If npm is not available in your environment, download the matching package from Releases:

tar -xzf ccb-*.tar.gz
cd ccb-*
./install.sh install

Source install is for development or temporary fallback use:

git clone https://github.com/SeemSeam/claude_codex_bridge.git
cd claude_codex_bridge
./install.sh install

Source installs link global ccb / ask back to the checkout. Regular users should prefer the npm package.

Out of the box, run ccb from your project directory. If startup reports that .ccb cannot be created automatically or that the project anchor is missing, create .ccb manually:

mkdir -p .ccb

2. Create project config

Create .ccb/ccb.config in your project root. For v7, it is better to understand config from multi-window topology first: [windows] defines tmux windows and agent groups, agent:provider defines which CLI each agent uses, and (worktree) gives an agent its own git worktree.

version = 2
entry_window = "main"

[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

If you are not sure how to group windows, how many workers you need, which agents should use worktrees, or which agents need separate models or API routes, ask ccb_self. It is CCB's built-in self-agent: it understands CCB commands, config authority, roles, windows, reload behavior, and common recovery paths, and can design the config with its private ccb-config skill. Blank projects include ccb_self; existing custom configs can add it with ccb roles add agentroles.ccb_self:codex.

Validate the config:

ccb config validate

Start the workspace:

ccb

3. Collaborate

Type directly in an agent pane, or route work between agents:

/ask reviewer review the latest parser changes and list blocking issues.

Agents can also call /ask from workflow orchestration to delegate and hand off work automatically.

v7 UI Tour

RegionPurpose
SidebarShows refresh/close CCB controls, windows and agents, internal communication state, and tips that can be edited in config and hot-reloaded.
Mouse controlClick to switch windows, agents, and panes; refresh, kill, or delete communication entries from the communication area.
WorkspaceEvery pane is a real CLI. Switch by mouse or tmux shortcuts.
Useful shortcutsCtrl-b h/j/k/l switches adjacent panes; Ctrl-b z zooms or restores the current CLI pane.

Rich Mode (NEW!)

Run ccb update rich to install the optional rich workbench; it bundles Yazi where possible, uses WezTerm for the rich terminal surface, and gives Markdown rendering plus image/PDF/video previews. After installation, plain ccb automatically opens this rich launcher unless it is already running inside a CCB-managed rich WezTerm; ccb rich remains available as an explicit launcher.

CCB rich workbench with Yazi preview in WezTerm

Agent Roles Spec And Role Catalog

CCB supports the Agent Roles Spec, a host-neutral way to package specialist agents as portable Role Packs. The same repository also acts as the public role catalog.

Available catalog roles
RoleBasic function
agentroles.ccb_selfCCB self-maintenance, config help, runtime diagnosis, guarded recovery, and workflow orchestration.
agentroles.archiArchitecture review, boundary checks, coupling analysis, maintainability risk, and practical next-step gates.
agentroles.frontend_engineerFrontend design and implementation, design-system work, accessibility, browser QA, and reviewed AGY delegation.
agentroles.mobile_app_engineerMobile app design and implementation across iOS, Android, React Native, Expo, Flutter, SwiftUI, and Jetpack Compose.
agentroles.motherRole creation, role-source audit, role research, blueprinting, and Agent Roles spec compliance review.
agentroles.su_ccbSU-CCB workflow operation for requirement analysis, planning, dispatch, review gates, archive, and recovery.

Contact

WeChat group


More Reading

Start with Quick Start for first use. Open only the reference area you need.

TopicWhen to open it
Concepts and positioningWhat CCB is, why multi-agent workflows help, and how CCB compares with other approaches.
Daily operationCommon commands and tmux basics for routine use.
Configuration and roles.ccb/ccb.config, Role Packs, and ccb_self configuration help.
Collaboration and maintenanceAsk routes, install/update notes, FAQ, and credits.
Release notesCurrent v7 highlights and historical release entries.
Concepts and positioning

What Is CCB?

CCB is a project-level agent CLI workspace. It uses tmux to manage multiple real CLI agents and unifies startup, restore, communication, configuration, windows, and runtime state for one project.

  • Real CLI sessions, not fake panels: every agent pane runs the actual provider CLI.
  • Visible collaboration: the sidebar shows windows, agents, status, and communication; users can switch panes by mouse.
  • Mixed providers: one project can run Codex, Claude, Gemini, Kimi (kimi), MiMo (mimo), Qwen (qwen), Cursor (cursor), Copilot (copilot), Crush (crush), Kiro (kiro), Pi (pi), Z.ai CLI (zai), OpenCode, Droid, and Antigravity (agy) together.
  • Project config: .ccb/ccb.config defines the team, layout, windows, worktrees, model, key, and url.
  • Built-in CCB expert: blank projects include ccb_self, a self-maintenance agent with deep CCB knowledge for usage guidance, config design, diagnostics, recovery, and workflow repair.
  • Roles: a new role packaging model that lets specialized agents carrying "heavy weapons" such as independent skills, memory, and tool dependencies instantly land in a target project as hot-loadable, removable agents, while leaving the main environment, user global config, and project runtime state unchanged.
  • Recoverable runtime: CCB supervises agent panes and supports attach, restore, and project-scoped cleanup.
  • Explicit collaboration channel: agents can delegate through /ask, $ask, callback, and silence routes.

Why Multi Agents

A single agent is enough for small tasks. Once work needs planning, parallel edits, review, testing, and handoff, multi agents help separate roles, context, models, and execution. CCB focuses on putting multiple real CLI agents into one visible terminal workspace.

ValuePlain meaning
Role separationmain plans, worker implements, reviewer checks risk.
Parallel progressOne agent can edit while another reads docs, validates, or reviews.
Model and context layeringDifferent agents can use different providers, models, APIs, worktrees, and memory.
Why one agent starts to struggle
  • Mixed roles reduce context focus: one conversation tries to architect, edit, test, and review itself.
  • Complex task execution has a ceiling: long work needs split points, handoffs, checks, and rollback boundaries.
  • Cost pressure is higher: if every step needs the strongest model, even simple sub-tasks become expensive.
  • Tool and skill management becomes harder: a "does everything" agent also accumulates too much authority and instruction load.
  • Serial waiting is inefficient: when one agent is reading logs or running tests, other independent work cannot naturally continue.

Which Multi-Agent Approach Should You Use?

Multi-agent systems are not one fixed shape. Use the short table first; expand the details only if you are comparing tradeoffs.

ApproachOne-line summaryBest fit
Claude Code native subagents / agent teamsNative delegation inside Claude Code.You mostly stay in Claude Code and want more coordination handled by a Claude lead.
Hive / OpenHiveProduction-oriented multi-agent workflow harness.You need state, recovery, observability, cost controls, and graph workflows.
CCBVisible, controllable local CLI-agent workspace with mixed providers.You want Codex, Claude, Gemini, Kimi, MiMo, Qwen, Cursor, Copilot, Crush, Kiro, Z.ai CLI, OpenCode, Antigravity, and other real CLIs in one project terminal.
Details: model choice, control, context, and complex workflows
QuestionClaude Code nativeHive / OpenHiveCCB
Different model vendors?Can choose Claude models for teammates/subagents; overall path is still Claude Code.LiteLLM route covers many hosted and local providers.Choose Codex, Claude, Gemini, Kimi, MiMo, Qwen, Cursor, Copilot, Crush, Kiro, Z.ai CLI, OpenCode, Droid, Antigravity, and per-agent model/key/url.
Is the process visible?In-process or split panes depending on mode.Runtime observability and dashboard-style control.Real tmux panes by default; users can click, type, copy, and inspect each CLI.
Is topology controllable?Natural-language teammate setup, with much coordination handled by the lead.Goal-generated graph-like topology, harness oriented.Config explicitly defines agents, windows, panes, worktrees, and sidebar behavior.
Is context manageable?Subagents/teammates have separate contexts; teams have task and message state.Role memory, durable state, and recovery are core design points.Each CLI keeps its provider session; shared project memory and per-agent memory are optional.
Best landing zoneFast delegation inside Claude Code.Business automation, long-running workflows, production reliability.Local development with visible cross-provider CLI agents.

CCB also supports complex workflows, but it is not an automatic DAG generator. You design complexity explicitly through .ccb/ccb.config, windows, role memory, worktrees, model/API settings, and ask/callback routes.

Daily operation

Daily Operation

GoalCommand
Start or reattach the current project workspaceccb
Safe start, keeping configured/manual permission behaviorccb -s
Rebuild runtime state while keeping config and same-name managed agent historyccb -n
Stop this project's background runtimeccb kill
Force cleanup before rebuildingccb kill -f then ccb -n
Update to the latest stable releaseccb update
Install or refresh the optional rich workbenchccb update rich
Remove rich mode and return normal startupccb uninstall rich
Open the rich workbenchccb rich
Inspect the active config layerccb config validate
Preview a config reload plan without changing tmuxccb reload --dry-run
Apply supported config changes without restarting other agentsccb reload

tmux Basics

CCB can be used mostly with the mouse, but learning a few tmux shortcuts makes daily work much faster. This section lists only common tmux keyboard operations.

In this section, <prefix> means Ctrl-b: press Ctrl-b, release it, then press the function key. Use an English input method for the function key so punctuation keys are not intercepted by another IME.

GoalFunction keyNotes
Move to an adjacent paneh / j / k / l or Arrow keysCCB-managed tmux sessions enable Vim-style pane focus keys.
Resize current paneH / J / K / LRepeatable resize keys in Vim directions.
Move to the next paneoFast rotation when direction does not matter.
Zoom / unzoom current panezUseful for long output, diffs, and logs.
Open window / pane listwPick a target in larger layouts.
Next windownSwitch to the next tmux window.
Previous windowpSwitch to the previous tmux window.
Jump to numbered window0 to 9Jump directly by tmux window number.
Enter copy / scroll mode[Review history, scroll, and select text.
Exit copy / scroll modeq or EscReturn to normal input.
Paste tmux buffer]Paste content copied into tmux's own buffer.
Detach sessiondLeave the display without stopping CCB; you can reattach later.

Copy and paste tips:

  • Mouse copy: in most terminals, drag with the left mouse button to copy; if tmux captures the drag, enter copy / scroll mode first.
  • Bypass tmux selection: many terminals support Shift + mouse drag for native terminal selection.
  • System paste: Linux/Windows terminals usually use Ctrl+Shift+V; macOS terminals usually use Cmd+V.
  • tmux paste: if the content is in the tmux buffer, use function key ].
More common tmux operations
GoalFunction keyNotes
Scroll in copy / scroll modePageUp / PageDown / Arrow keysTerminal support can vary.
Start selection in copy / scroll modevCCB uses tmux vi copy mode.
Copy selection in copy / scroll modeyCopies to the tmux buffer and exits copy mode.
Search in copy / scroll modeCtrl-s / Ctrl-rCommonly forward / backward search.
Create a windowcUse only when you intentionally need another shell.
Rename a window,Helps identify multi-window workflows.
Show tmux key help?Useful when you forget a shortcut.

New users should avoid pane/window killing shortcuts at first. To stop a CCB project, prefer CCB's project-level shutdown command instead of killing one recoverable pane by accident.

Configuration and roles

Configure Your Agent Team

CCB resolves config in three layers, from lowest to highest priority:

  1. Built-in default config.
  2. User config at ~/.ccb/ccb.config.
  3. Project config at .ccb/ccb.config.

Higher layers replace lower layers as a whole; they are not merged. The project authority file is .ccb/ccb.config. The old .ccb_config/ccb.config path is legacy migration evidence only. The built-in default is a v2 [windows] config with agent1, agent2, agent3, and ccb_self. The optional rich workbench can be installed with ccb update rich; once enabled, normal ccb startup uses the rich launcher unless you run ccb uninstall rich. The default ccb_self agent uses codex and is bound to agentroles.ccb_self.

.ccb/ccb.config mainly controls:

Config areaSyntax or locationNotes
Window grouping[windows]Group agents into tmux windows such as main, work, review, or research.
Agent name and providermain:codex, reviewer:claudeNames are used by the UI, ask routing, and memory files; provider decides which CLI starts.
Workspace isolationworker1:codex(worktree)Gives implementation agents isolated git worktrees to reduce accidental overlap.
Sidebar behavior[ui.sidebar]Controls whether the sidebar appears in every window, its left/right position, width, and Comms height.
Tool windows[tool_windows.<name>]Add managed non-agent windows such as the rich workbench; they appear as one sidebar row and are not ask targets.
Per-agent model/API[agents.<name>]Configure model, key, url, and related agent-local overrides.
Role Pack bindingagentroles.archi:codexBind a reusable role package through a window leaf; role assets are installed once and projected into the derived agent.
Role description[agents.<name>] description = "..."Give an agent a short responsibility note; longer workflow rules belong in memory.

After editing .ccb/ccb.config in a mounted project, run ccb reload --dry-run to preview the plan and ccb reload to apply it. The explicit reload path can dynamically add agents, add windows, add/remove managed tool windows, unload idle agents, and remove idle windows while keeping unrelated agents and panes running. It does not run as a background file watcher, and unsafe changes such as busy unloads, provider replacement, agent moves, tool command replacement, and arbitrary reshapes are rejected without killing existing panes.

If you want to discuss the configuration before writing it by hand, ask ccb_self to describe the target team. Blank projects include this route by default; projects with a user or project config should add agentroles.ccb_self if they have overridden the built-in default. Its built-in ccb-config skill proposes a complete config first, then writes .ccb/ccb.config only after confirmation.

Role Packs

Role Packs define reusable agent roles through the Agent Roles Spec. The spec is a host-neutral package format for specialist agents: a Role carries a stable identity, responsibilities, non-goals, memory, skills, prompts, references, tools, plugin content, validation notes, and host adapter metadata as one reviewable unit.

The practical value is separation. Role source stays portable and versioned; project bindings decide where that Role is mounted; runtime provider state, credentials, task progress, and generated projection output stay outside the Role. That makes specialist agents easier to install, update, audit, migrate, and remove without copying long prompts into every project or mutating user global configuration.

The recommended default catalog roles are agentroles.ccb_self, the CCB self-maintenance role, and agentroles.archi, an architecture reviewer role from agent-roles-spec backed by Architec. install.sh install automatically attempts to install or refresh these recommended roles by default; ccb update refreshes installed roles and installs missing recommended roles in the user environment. You can also refresh manually:

ccb roles list
ccb roles show agentroles.archi
ccb roles install agentroles.archi
ccb roles update agentroles.ccb_self
ccb roles update agentroles.archi

Project role bindings stay pinned by .ccb/role-lock.json. ccb update does not rewrite project locks. When you run ccb inside a project, CCB checks bound role locks against the current installed roles; interactive starts ask whether to refresh stale project locks in place, and non-interactive starts print a warning only.

ccb_self is strongly recommended for CCB projects because it is the built-in CCB expert agent. It carries CCB-specific knowledge about project config, command usage, role binding, reload boundaries, runtime diagnostics, guarded recovery, workflow repair, and single-agent restart assistance without taking over product work. Blank projects include it in the built-in default. Existing projects, and projects with user or project config that replace the built-in default, should add it explicitly where they want that maintenance agent:

ccb roles add agentroles.ccb_self:codex
ccb reload

To use agentroles.archi in a project, add it as a window leaf:

ccb roles add agentroles.archi:codex
ccb reload

This writes the compact form agentroles.archi:codex. At runtime CCB resolves it to the project-local agent archi, then projects the role memory and skills into that agent's managed provider home.

Config format examples: single window, multi-window, per-agent model/API

Single-window compact config

cmd; main:codex, worker1:codex(worktree); reviewer:claude

Meaning:

  • cmd is a shell pane, not an agent.
  • main, worker1, and reviewer are agent names.
  • codex and claude are providers.
  • ; splits left-to-right; , stacks top-to-bottom.
  • (worktree) means that agent uses an isolated git worktree.

Multi-window topology

When you want planning, implementation, review, and research in different tmux windows, use version = 2 and [windows]:

version = 2
entry_window = "main"

[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

Note: cmd belongs to compact/hybrid single-window layouts. Do not put cmd inside [windows].

Rich workbench tool window

Tool windows are tmux windows managed by CCB, but they are not agents. They do not appear in ccb ask targets and do not create provider runtime records.

version = 2
entry_window = "main"

[windows]
main = "main:codex"

[tool_windows.rich]
command = "CCB_WORKBENCH_PROFILE=rich CCB_WORKBENCH_FORCE_RICH=1 ccb-workbench files"
label = "rich"

ccb update rich prepares the optional workbench bundle under CCB-owned XDG paths, downloads and validates bundled binaries where available, and uses the platform package manager only for required rich dependencies such as WezTerm, Markdown/PDF/image/video helpers, and recommended fonts. Under WSL, CCB can launch Windows-native wezterm.exe while running the rich tools inside the current Linux distro. Normal ccb update keeps this bundle untouched; rerun ccb update rich to install, repair, or refresh it. Run ccb uninstall rich to remove the bundle and return plain ccb to normal terminal startup. Set CCB_RICH_DOWNLOAD_BINARIES=0 to skip bundled binary downloads, or CCB_RICH_INSTALL_DEPS=0 to skip system package installation.

Per-agent model, API key, or base URL

Use compact format when layout is enough. If some agents need separate models or API routes, keep the compact header and add TOML overlays:

cmd; fast:codex, deep:codex; reviewer:claude

[agents.fast]
model = "gpt-5-mini"

[agents.deep]
key = "sk-..."
url = "https://api.example.com/v1"
model = "gpt-5"

[agents.reviewer]
model = "sonnet"

Do not commit real API keys to a public repository. key / url are agent-local shortcuts; advanced provider environment variables belong in provider profile or agent env fields.

Use ccb_self For CCB Config

The full ccb-config skill belongs to the agentroles.ccb_self role. It is not a globally inherited skill for every agent. CCB installs or refreshes this Role Pack by default, and blank projects include ccb_self in the built-in default config. Existing projects, or projects with a user/project config that replaces the built-in default, should bind it where they want the maintenance assistant.

ccb_self is more than a config helper: it is designed as CCB's self-understanding agent. Use it when you need help using CCB, explaining the active layout, choosing an agent topology, migrating .ccb/ccb.config, diagnosing project runtime state, or repairing a CCB workflow.

If you do not want to hand-write .ccb/ccb.config, ask ccb_self and describe your project goal, parallelism, window grouping, worktree isolation, provider/model/API preferences. ccb_self uses its built-in ccb-config skill to discuss the shape with you and propose a complete config.

Example:

ccb ask ccb_self "Design a team for a Python library: main coordinates work, three workers implement in worktrees, and one reviewer checks regressions and risks. Recommend whether this should stay single-window or become main/work/review windows."

For an existing project that does not already configure ccb_self, run ccb roles add agentroles.ccb_self:codex and ccb reload first.

ccb-config write flow and boundaries
  1. Describe the project and team goal in natural language.
  2. ccb_self's built-in ccb-config reads the current config authority and decides whether this is a new config, an edit, or a migration.
  3. It proposes one complete config before writing.
  4. You confirm the proposal, then it edits only .ccb/ccb.config.
  5. It validates the config and tells you to use ccb reload --dry-run / ccb reload when the change can be applied dynamically.

By default, ccb-config does not edit .ccb/ccb_memory.md or .ccb/agents/<agent>/memory.md. It should touch those memory files only when you explicitly ask ccb_self for workflow memory or role memory design.

Collaboration and maintenance

Agent Collaboration

Normal ask is submit-and-return: after handing work to the target agent, the current agent should not poll and wait.

ScenarioRecommended route
Human directly targets an agent/ask reviewer ... or $ask reviewer ...
Current agent is inside an active CCB task and needs a child result before replyingask --callback reviewer
Current agent sends independent work whose successful result does not need to returnask --silence worker1
Queue or status diagnosticspend, watch, ping, and similar commands are diagnostics only

When an agent submits a child task, choose flags from the result intent first, then add dependency and artifact preservation only when needed:

NeedRecommended flags
Publish or execute work; successful result is not useful--silence
Get a short outcome: status, findings, risks, blockers, or next steps--compact
Get full consultation, analysis, report, generated doc, or structured findings--artifact-reply
Continue an active parent task only after the child result arrivesadd --callback
Preserve exact pasted logs, diff, JSON/YAML, table, or copied textadd --artifact-request
Preserve exact input and full output--artifact-io
Short question or short handoff where inline text is enoughplain ask

--callback and --silence control task relationship. Artifact flags control content preservation. The automatic long-message spill is only a fallback, so use artifact flags proactively when exact input or full output matters.

Why callback matters

If agent A is handling a user-originated CCB task and needs agent B's result to finish, A should use callback. CCB records the parent/child relationship, lets A's current turn end, and later delivers B's result back to A as a continuation. That avoids polling, queue blocking, and wasted context.

Install And Update

Requirements

  • Node.js and npm for the recommended npm install path
  • Python 3.10+
  • tmux
  • At least one agent CLI you plan to use, such as Codex, Claude, Gemini, Kimi, MiMo, Qwen, Cursor, Copilot, Crush, Kiro, Z.ai CLI, OpenCode, Droid, or Antigravity
  • Linux, macOS, or WSL

Current v7 / newer versions do not claim native Windows support. Native Windows support only applies to the v5 line. If you are on Windows and want current versions, use WSL and keep both ccb and agent CLIs inside WSL.

npm first

For first install, prefer npm:

npm install -g @seemseam/ccb

For later updates:

ccb update

GitHub Releases remain available for environments where npm is unavailable. Source checkout install is for development, fix validation, or temporary fallback.

Uninstall

ccb uninstall
ccb reinstall

# Fallback from the package or source directory:
./install.sh uninstall

FAQ

The expected agents did not appear

Run ccb config validate and check that config_source_kind is the layer you expected. Project config .ccb/ccb.config has highest priority; if it is missing, CCB uses ~/.ccb/ccb.config or the built-in default.

Copy/paste is awkward

First try mouse-drag copy and Ctrl+Shift+V / Cmd+V paste. If tmux captures the drag, use function key [ after <prefix> to enter copy / scroll mode. If you only want native terminal selection, many terminals support Shift + mouse drag.

I want to migrate an old compact config to multi-window

Ask ccb_self to use its built-in ccb-config and describe your target window groups, such as main/work/review. Migration should preserve old agent names, providers, worktree markers, model/key/url fields, and write [windows] only after confirmation.

The sidebar helper is unavailable

Prefer a release package because it carries or handles the sidebar helper. Source installs may need a local Rust toolchain if no compatible prebuilt helper is available.

Community And Credits

Thanks to the Linux.do community for testing, feedback, and discussion.

Thanks to tmux-agent-sidebar for the sidebar ideas and inspiration.

Release notes

Release Notes

v7 highlights:

  • Native CCB sidebar with per-window project view, agent status, and mouse switching.
  • Comms split from agent activity, making communication status and provider pane activity clearer.
  • version = 2 [windows] topology for workflow-oriented tmux window grouping.
  • Explicit ccb reload support for dynamic agent/window load and idle unload without restarting unrelated agents.
  • Compact / hybrid config compatibility, so single-window teams do not need forced migration.
  • Hardened tmux, Ghostty, release helper, Codex trust, and provider session restore paths.
v7.6.17 - Codex Log Symlink Target Repair
  • Repairs managed Codex logs_2.sqlite temp symlink targets when /tmp/ccb-codex-logs-* cleanup removes the target directory between starts.
  • Falls back by removing an unrecoverable broken symlink and restoring the local backup before Codex initializes its SQLite databases.
  • Adds regression coverage for the missing symlink target parent startup path.
v7.6.16 - Codex SQLite Migration Recovery
  • Fixes the managed Codex logs_2.sqlite redirect so CCB no longer pre-creates Codex-owned SQLite schema; Codex runs its own migrations first.
  • Installs the CCB diagnostic insert-block trigger only after Codex has created the log database and _sqlx_migrations records.
  • Repairs bad temporary log databases left by the intermediate policy by moving them aside and letting Codex recreate them through the normal migration path.
v7.6.15 - Codex Diagnostics And Sidebar Focus
  • Redirects managed Codex logs_2.sqlite diagnostic writes to temporary storage by default and blocks diagnostic log inserts, while diagnostics mode can restore the original database path for troubleshooting.
  • Falls back to the in-place diagnostic trigger path when the temporary SQLite symlink cannot be installed.
  • Fixes sidebar clicks for agents in other tmux windows by selecting the target window before selecting the pane, with pane-id fallback when window metadata is missing.
v7.6.14 - Mobile Gateway Alpha And Codex Diagnostics
  • Adds the mobile gateway alpha surface: authenticated pairing, focus routes, terminal open/resume/history routes, websocket terminal frames, public route metadata, and device revocation commands.
  • Adds right-side sidebar placement and flattened [ui.sidebar] rendering while keeping legacy [ui.sidebar.view] input compatible.
  • Supports multiple local agents sharing one Role Pack role id without collapsing them into a single runtime identity.
  • Reduces Codex diagnostic SQLite churn by filtering TRACE/DEBUG log rows by default while preserving INFO/ERROR rows; CCB_CODEX_DIAGNOSTIC_LOGS=1 disables the filter.
v7.6.13 - Provider Profile Overlay Fixes
  • Codex plugin overrides now resolve in the intended order: inherited source config, provider_profile.plugins, then CCB_CODEX_PLUGIN_OVERRIDES_JSON / CCB_CODEX_PLUGIN_OVERRIDES.
  • Codex agents without an inherited config.toml now still materialize provider_profile.plugins into managed config.toml.
  • Claude provider_profile.mcp_servers now works even when the source .claude.json does not exist, and enabled = false clears stale managed MCP servers from the agent trust file.
  • Callback continuations now preserve the upstream finalization target, and inherited ask skills remind agents not to answer callback continuations before upstream results are available.
v7.6.12 - Claude MCP And Hook Inheritance
  • Managed Claude agents now inherit Claude Code MCP configuration from the source .claude.json, including global mcpServers and current project/workspace MCP server state.
  • Project-level MCP state is mapped only onto the current managed workspace key, so unrelated source project records are not copied into the agent home.
  • Source-home Claude Code hooks are merged with CCB-managed finish/activity hooks, so installed user hook tools stay visible after agent restart.
  • Managed Claude .claude.json is treated as secret provider state because MCP definitions may include environment variables or auth-adjacent launch data.
v7.6.11 - Layout Percent And Codex MCP Overlays
  • Adds explicit pane split ratios in layout tokens, such as agent1:codex@30, while preserving the existing even-split default when no suffix is present.
  • Adds source-controlled per-agent Codex MCP overlays through provider_profile.mcp_servers; same-name MCP servers override inherited Codex config and different names are additive.
  • Preserves trusted Codex command hooks during managed Codex home projection, improves sidebar Comms/Tips scrolling and resizing, and exposes more reply artifact evidence in ccb trace.
v7.6.10 - Z.ai Provider Support
  • Adds managed optional Z.ai CLI provider support with provider = "zai", visible zai --directory panes, and per-job zai --prompt execution.
  • Uses Z.ai's native subprocess completion boundary: process exit plus assistant stdout extraction from JSONL output, without model-printed CCB_DONE.
  • Adds ZAI_START_CMD, provider session/pathing support, deterministic stubs, focused execution tests, and README/provider list updates.
v7.6.9 - Kimi And AGY Provider Reliability
  • Kimi execution now records receipt, no-captured-output diagnostics, trace, and resume metadata so missing replies and recovered turns are easier to diagnose.
  • AGY prompt delivery now waits for ready evidence, handles pane fallback and ambiguous tmux send outcomes, and reports coalesced request diagnostics more clearly.
  • Dispatcher, mailbox trace, and text artifact diagnostics now expose the provider details needed to investigate Kimi/AGY delivery and completion edge cases.
v7.6.8 - Role Pack Current Store
  • Role Pack runtime lookup now follows the installed current package under .roles/installed/<role-id>/current; legacy multi-version stores remain compatibility input only.
  • Project .ccb/role-lock.json files are now legacy diagnostics: CCB no longer writes them, adopts from them, or suppresses role memory and skills because of stale lock residue.
  • Provider launch sessions record role id, version, and digest; restart now fails explicitly when the launch digest differs from installed current instead of silently resuming an old provider conversation.
  • Release artifact metadata patching now targets ccb.py after the bash launcher split, keeping built tarballs on the intended version.
v7.6.7 - Rich Workbench Closure
  • Plain ccb and ccb rich now launch the CCB-managed rich WezTerm unless already inside that managed rich session; ordinary external WezTerm sessions no longer suppress rich auto-start.
  • Runtime entrypoints share the _ccb-python launcher, keeping installed and source command execution pinned to the intended Python interpreter.
  • Built-in defaults keep ccb_self in its own claude window, while ordinary default startup still avoids standalone Neovim tool windows.
v7.6.6 - Role Store Home Pinning
  • Pins role store lookup outside managed provider homes so provider session HOME rewrites no longer make role checks search provider-local .roles directories.
  • Preserves AGENT_ROLES_STORE through CCB launch boundaries and falls back to the real source/account home role store when no explicit store is set.
  • Missing role diagnostics now print the resolved role store path, making provider-home drift easier to identify.
v7.6.5 - Rich WezTerm IME
  • Enables IME support in the generated rich WezTerm config and maps XMODIFIERS=@im=... into WezTerm's XIM name so X11 fcitx/ibus input works for Chinese and other IME-backed text.
  • Generated ccb-workbench wrappers now detect running or installed fcitx5, fcitx, or ibus-daemon before launching WezTerm, while preserving any user-provided input-method environment.
  • Keeps the v7.6.4 green release surface and all v7.6.2 rich/tmux fixes intact for npm latest install testing.
v7.6.4 - macOS Release Install Smoke
  • Keeps the 7.6.3 macOS temporary-root hardening and updates the CI release install smoke to use the explicit temporary-bin override for its isolated sibling CODEX_BIN_DIR.
  • Leaves user-facing installer safety intact while allowing the release workflow to validate macOS package installation from a temporary smoke root.
  • Keeps the v7.6.2 rich workbench and tmux single-status-row fixes intact for user install testing.
v7.6.3 - macOS CI Green Patch
  • Fixes macOS temporary-root detection for install guards by recognizing the resolved ${TMPDIR:-/tmp} parent used by GitHub Actions runners.
  • Aligns doctor temporary implementation detection with macOS /tmp symlink behavior, preventing false red CI on /private/tmp and /private/var/folders/... paths.
  • Keeps the v7.6.2 rich workbench and tmux single-status-row fixes intact for user install testing.
v7.6.2 - Rich Workbench Hotfix
  • Allows rich in .ccb/ccb.config as a tool/layout alias without requiring a provider runtime; it materializes as a managed tool pane/window and is not an ask target.
  • After ccb update rich enables the bundle, plain ccb can use the rich launcher outside an existing rich/WezTerm session while avoiding recursive WezTerm launches.
  • Adds ccb uninstall rich, ccb rich uninstall, and ccb rich disable for returning to normal CCB startup without changing full ccb uninstall behavior.
  • Rich updates clean only CCB-owned legacy editor roots and links, leaving user-owned editor installs and personal config untouched.
v7.6.1 - Rich Workbench Binary Packaging
  • ccb update rich now bundles verified Yazi/ya binaries where possible before falling back to package managers.
  • Linux rich installs prefer official Yazi musl builds before GNU builds to avoid newer glibc requirements on older stable distributions.
  • Downloaded Yazi binaries must pass --version validation before activation, and invalid managed binaries are removed so fallback paths remain available.
  • Under WSL, rich launchers can use Windows-native wezterm.exe while keeping CCB, Yazi, and preview helpers inside the current Linux distro.
v7.6.0 - Rich Workbench Lifecycle
  • Makes rich workbench an explicit optional bundle installed with ccb update rich.
  • Keeps ordinary install.sh install and ccb update focused on CCB itself; they no longer auto-provision standalone Neovim.
  • Public ccb tools ... neovim routes now refuse standalone provisioning and point users to ccb update rich; ccb rich launches only an installed and enabled rich bundle.
  • Restores the CCB tmux status bar to one line by removing the old second-line copy hint.
v7.5.3 - Kimi Runtime Reliability And Hindsight Compatibility
  • Adds Kimi runtime hardening without changing other provider execution paths: Kimi can fall back to stable pane evidence for K2.7 Code when the native turn log does not expose a completed reply in time.
  • Makes Kimi Hindsight memory opt-in at the CCB execution boundary. It activates only when .hindsight/kimi.json, .hindsight/codex.json, HINDSIGHT_API_URL, or HINDSIGHT_BANK_ID is configured, and failures remain non-blocking provider diagnostics.
  • Preserves trusted Codex command hooks, including Hindsight Codex hooks, when CCB materializes managed Codex homes. Operators can extend the allowlist with CCB_CODEX_INHERITED_HOOK_EVENTS and CCB_CODEX_INHERITED_COMMAND_HOOK_MARKERS; arbitrary root hooks remain filtered out.
  • Accepts both HINDSIGHT_API_KEY and HINDSIGHT_API_TOKEN for the Kimi bridge and the scripts/hindsight helper.
  • Documents the supported provider surface more clearly in the README while keeping unrelated provider behavior unchanged.
v7.5.2 - Native CLI Provider Wave
  • Adds built-in optional provider ids for Qwen Code (qwen), Cursor Agent (cursor), GitHub Copilot CLI (copilot), Crush (crush), Kiro CLI (kiro), Pi (pi), and Z.ai CLI (zai).
  • Uses native per-job CLI execution and provider-owned completion signals: stream-json / JSON result events for Qwen, Cursor, Copilot, and Pi; process exit plus stdout for Crush, Kiro, and Z.ai CLI. These adapters do not require model-printed CCB_DONE; Pi terminalizes on native turn_end.
  • Adds QWEN_START_CMD, CURSOR_START_CMD, COPILOT_START_CMD, CRUSH_START_CMD, KIRO_START_CMD, PI_START_CMD, and ZAI_START_CMD command overrides plus provider session bindings, runtime launchers, deterministic stubs, and focused execution tests.
v7.5.1 - MiMo Provider Release Surface
  • Adds MiMo Code to the public README provider strip with a Xiaomi-branded MiMo badge and updates the top-level positioning to eight CLI families.
  • Publishes the committed MiMo native provider integration in the 7.5 line: managed mimo panes, MIMO_START_CMD, generated MiMo instructions, and mimo run --pure --format json completion parsing.
  • Synchronizes npm package metadata and release workflow defaults with the new patch release.
v7.5.0 - Native CLI Providers And Homepage Sync
  • Adds managed native CLI provider support for Kimi plus broader native CLI runtime groundwork, including runtime specs, session bindings, command overrides, and cleanup coverage.
  • Moves Kimi and Antigravity completion detection toward provider-owned session or transcript evidence instead of requiring model-printed CCB_DONE.
  • Uses Kimi's current --auto-approve flag for CCB auto-permission while recognizing legacy/alias flags such as --auto, --yes, -y, and --yolo.
  • Synchronizes the English and Chinese README homepages with refreshed hero assets and the seven public CLI-family positioning.
v7.4.4 - Claude End-Turn And npm Release Surface
  • Completes Claude pane-backed asks promptly when a primary assistant response emits stop_reason=end_turn with an observed request anchor and non-empty reply, avoiding the previous 900-second timeout path.
  • Treats empty session-boundary terminal events with no prior assistant reply as incomplete/task_complete_empty_reply with empty-provider diagnostics.
  • Restores the @seemseam/ccb npm release surface with package metadata, CLI runner wrappers, and tag-triggered Trusted Publishing after GitHub release assets are available.
  • Refreshes the v7 README homepage around canonical hero assets, npm-first install, and clearer ccb_self guidance.

view the full README on GitHub.

// compatibility

Platformscli, api, web, mobile
Operating systems
AI compatibilityclaude
LicenseNOASSERTION
Pricingopen-source
LanguagePython

// faq

What is claude_codex_bridge?

Visible multi-agent CLI workspace for mixing Codex, Claude, Gemini, Kimi, Qwen, Cursor, Copilot, Pi, OpenCode, and other AI coding agents. It is open-source on GitHub.

Is claude_codex_bridge free to use?

claude_codex_bridge is open-source under the NOASSERTION license, so it is free to use.

What category does claude_codex_bridge belong to?

claude_codex_bridge is listed under devtools in the Claudeers registry of Claude-compatible tools.

0 views
3,185 stars
unclaimed
updated 14 days ago

// embed badge

claude_codex_bridge on Claudeers
[![Claudeers](https://claudeers.com/api/badge/claudecodexbridge.svg)](https://claudeers.com/claudecodexbridge)

// retro hit counter

claude_codex_bridge hit counter
[![Hits](https://claudeers.com/api/counter/claudecodexbridge.svg)](https://claudeers.com/claudecodexbridge)

// reviews

// guestbook

0/500

// related in Developer Tools

🔓

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Curs…

// devtoolsaffaan-m/JavaScript225,699MIT[ claude ]
🔓

Use Garry Tan's exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA

// devtoolsgarrytan/TypeScript119,234MIT[ claude ]
🔓

🙌 OpenHands: AI-Driven Development

// devtoolsOpenHands/Python79,324NOASSERTION[ claude ]
🔓

AI coding assistant skill (Claude Code, Codex, OpenCode, Cursor, Gemini CLI, and more). Turn any folder of code, SQL schemas, R scripts, shell scripts, docs,…

// devtoolssafishamsi/Python77,145MIT[ claude ]

// built by

Connectorlinks several projects together across the ecosystem · 10 connections
→ see how claude_codex_bridge connects across the ecosystem