# claude_code_bridge
**Repository Path**: Kaiova/claude_code_bridge
## Basic Information
- **Project Name**: claude_code_bridge
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-27
- **Last Updated**: 2026-02-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Claude Code Bridge (ccb) v5.2.6
**终端分屏多模型协作工具**
**Claude · Codex · Gemini · OpenCode · Droid**
**轻量异步通讯,交互皆可见,模型皆可控**
[]()
[]()
[English](README.md) | **中文**

演示动画
---
**简介:** 多模型协作能有效避免模型偏见、认知盲区和上下文限制。不同于 MCP 或 API 调用方式,ccb 提供终端分屏所见即所得体验——交互皆可见,模型皆可控。
## ⚡ 核心优势
| 特性 | 价值 |
| :--- | :--- |
| **可见可控** | 多模型分屏 CLI 挂载,所见即所得,完全掌控。 |
| **持久上下文** | 每个 AI 独立记忆,关闭后可随时恢复(`-r` 参数)。 |
| **节省 Token** | 通过守护程序仅收发送轻量级指令。 |
| **原生终端体验** | 直接集成于**tmux**(任何term推荐)或 **WezTerm** (原生win推荐)。 |
---
有人问我,和其他工作流软件的区别是什么,我用一句话回答:该项目只是不满api调用的agent交互方式而打造的**可见可控的多模型通讯方案**,该项目并不是工作流项目,但是基于它可以更容易发展出你所理想的工作流。
🚀 新版本速览
v5.2.6 - 异步通信修复 & Gemini 0.29 兼容
**🔧 Gemini CLI 0.29.0 适配:**
- **双哈希策略**:会话路径发现同时支持 basename 和 SHA-256 格式
- **自动启动**:`ccb-ping` 和 `ccb-mounted` 新增 `--autostart` 标志,可自动拉起离线 provider
- **清理工具**:新增 `ccb-cleanup`,清理僵尸守护进程和过期状态文件
**🔗 异步通信修复:**
- **OpenCode 死锁**:修复会话 ID 固定导致第二次异步调用必定失败的问题
- **降级完成检测**:适配器在 req_id 不完全匹配时仍可识别 `CCB_DONE`
- **req_id 正则**:`opencode_comm.py` 同时匹配旧 hex 和新时间戳格式
- **Gemini 空闲超时**:Gemini 漏写 `CCB_DONE` 时自动检测回复完成(默认 15s,可通过 `CCB_GEMINI_IDLE_TIMEOUT` 调整)
- **Gemini Prompt 加固**:强化指令格式,降低 `CCB_DONE` 遗漏率
**🛠 其他修复:**
- **lpend**:registry 过期时优先使用更新鲜的 Claude 会话路径
- **mail setup**:修复 config v3 下 `ccb mail setup` 导入失败
v5.2.5 - 异步护栏加固
**🔧 异步轮次停止修复:**
- **全局护栏**:在 `claude-md-ccb.md` 中添加强制 `Async Guardrail` 规则,同时覆盖 `/ask` 技能和直接 `Bash(ask ...)` 调用
- **标记一致性**:`bin/ask` 现在输出 `[CCB_ASYNC_SUBMITTED provider=xxx]`,与其他 provider 脚本格式统一
- **技能精简**:Ask 技能规则引用全局护栏并保留本地兜底,单一权威源
此修复防止 Claude 在提交异步任务后继续轮询/休眠。
v5.2.3 - 项目内历史记录 & 旧目录兼容
**📂 项目内历史记录:**
- **本地存储**:自动导出改为写入 `./.ccb/history/`
- **范围收敛**:仅对当前工作目录触发自动迁移/导出
- **Claude /continue**:新增技能,直接 `@` 最新历史文件
**🧩 旧目录兼容:**
- **自动迁移**:检测到 `.ccb_config` 时自动升级为 `.ccb`
- **兼容查找**:过渡期仍可解析旧目录内的会话
这些更新让交接文件只留在项目内,升级路径更平滑。
v5.2.2 - 会话切换跟踪 & 自动提取
**🔁 会话切换跟踪:**
- **上一条会话字段**:`.claude-session` 记录 `old_claude_session_id` / `old_claude_session_path` 与 `old_updated_at`
- **自动导出**:切换会话时自动生成 `./.ccb/history/claude--.md`
- **内容去噪**:过滤协议标记/护栏,保留工具调用摘要
这些更新让会话交接更可靠、更易追踪。
v5.2.0 - 邮件集成,远程访问 AI
**📧 新功能:邮件服务**
- **邮件转 AI 网关**:通过发送邮件与 AI 交互,支持远程访问
- **多邮箱支持**:Gmail、Outlook、QQ 邮箱、163 邮箱预设
- **Provider 路由**:邮件正文前缀指定 AI(如 `CLAUDE: 你的问题`)
- **实时轮询**:支持 IMAP IDLE 即时检测新邮件
- **安全凭据**:密码存储在系统 keyring 中
- **邮件守护进程**:后台服务 (`maild`) 持续监控邮件
详见 [邮件系统配置](#-邮件系统配置) 了解设置方法。
v5.1.2 - Daemon 与 Hook 稳定性
**🔧 修复与改进:**
- **Claude Completion Hook**:统一 askd 为 Claude 触发完成回调
- **askd 生命周期**:askd 绑定 CCB 生命周期,避免残留守护进程
- **挂载检测**:`ccb-mounted` 统一使用 ping 检测(兼容统一 askd)
- **状态文件查找**:`askd_client` 兜底使用 `CCB_RUN_DIR` 查找状态文件
详见 [CHANGELOG.md](CHANGELOG.md)。
v5.1.1 - 统一 Daemon + Bug 修复
**🔧 Bug 修复与改进:**
- **统一 Daemon**:所有 provider 现在使用统一的 askd daemon 架构
- **安装/卸载**:修复安装和卸载相关 bug
- **进程管理**:修复 kill/终止问题
详见 [CHANGELOG.md](CHANGELOG.md)。
v5.1.0 - 统一命令系统 + Windows WezTerm 支持
**🚀 统一命令** - 用统一接口替代各 provider 独立命令:
| 旧命令 | 新统一命令 |
|--------|-----------|
| `cask`, `gask`, `oask`, `dask`, `lask` | `ask ` |
| `cping`, `gping`, `oping`, `dping`, `lping` | `ccb-ping ` |
| `cpend`, `gpend`, `opend`, `dpend`, `lpend` | `pend [N]` |
**支持的 provider:** `gemini`, `codex`, `opencode`, `droid`, `claude`
**🪟 Windows WezTerm + PowerShell 支持:**
- 完整的 Windows 原生支持(WezTerm 终端)
- 使用 PowerShell + `DETACHED_PROCESS` 后台执行
- WezTerm CLI 集成,支持大消息通过 stdin 传递
- UTF-8 BOM 处理,兼容 PowerShell 生成的文件
**📦 新技能:**
- `/ask ` - 请求 AI provider(默认后台)
- `/cping ` - 测试 provider 连通性
- `/pend [N]` - 查看最新回复
详见 [CHANGELOG.md](CHANGELOG.md)。
v5.0.5 - Droid 调度工具与安装
- **Droid**:新增调度工具(`ccb_ask_*` 以及 `cask/gask/lask/oask` 别名)。
- **安装**:新增 `ccb droid setup-delegation` 用于 MCP 注册。
- **安装器**:检测到 `droid` 时自动注册(可通过环境变量关闭)。
详情与用法
用法:
```
/all-plan <需求>
```
示例:
```
/all-plan 设计一个基于 Redis 的 API 缓存层
```
亮点:
- Socratic Ladder + Superpowers Lenses + Anti-pattern 分析
- 只分发给已挂载的 CLI
- 两轮 reviewer 反馈合并设计
v5.0.0 - 任意 AI 可主控
- **解除依赖**:无需先启动 Claude,Codex 可成为主控入口
- **统一控制**:单一入口控制 CC/OC/GE
- **启动更简单**:去掉 `ccb up`,直接 `ccb ...` 或使用默认 `ccb.config`
- **挂载更自由**:更灵活的 pane 挂载与会话绑定
- **默认配置**:缺失时自动创建默认 `ccb.config`
- **守护进程自启**:`caskd`/`laskd` 在 WezTerm/tmux 按需启动
- **会话更稳**:PID 存活校验避免旧会话干扰
v4.0 - tmux 优先重构
- **全部重构**:结构更清晰,稳定性更强,也更易扩展。
- **终端后端抽象层**:统一终端层(`TmuxBackend` / `WeztermBackend`),支持自动检测与 WSL 路径处理。
- **tmux 完美体验**:稳定布局 + 窗格标题/边框 + 会话级主题(CCB 运行期间启用,退出自动恢复)。
- **支持任何终端**:只要能运行 tmux 就能获得完整多模型分屏体验(Windows 原生「建议wezterm」除外;其他都建议使用tmux)。
v3.0 - 智能守护进程
- **真·并行**:Codex/Gemini/OpenCode 多任务安全排队执行。
- **跨 AI 编排**:Claude 与 Codex 可同时驱动 OpenCode。
- **坚如磐石**:守护进程自动启动,空闲自动退出。
- **链式调用**:Codex 可委派 OpenCode 做多步流程。
- **智能打断**:Gemini 任务支持中断处理。
详情
✨ 核心特性
- **🔄 真·并行**: 同时提交多个任务给 Codex、Gemini 或 OpenCode。新的守护进程 (`caskd`, `gaskd`, `oaskd`) 会自动将它们排队并串行执行,确保上下文不被污染。
- **🤝 跨 AI 编排**: Claude 和 Codex 现在可以同时驱动 OpenCode Agent。所有请求都由统一的守护进程层仲裁。
- **🛡️ 坚如磐石**: 守护进程自我管理——首个请求自动启动,空闲 60 秒后自动关闭以节省资源。
- **⚡ 链式调用**: 支持高级工作流!Codex 可以自主调用 `oask` 将子任务委派给 OpenCode 模型。
- **🛑 智能打断**: Gemini 任务支持智能打断检测,自动处理停止信号并确保工作流连续性。
🧩 功能支持矩阵
| 特性 | `caskd` (Codex) | `gaskd` (Gemini) | `oaskd` (OpenCode) |
| :--- | :---: | :---: | :---: |
| **并行队列** | ✅ | ✅ | ✅ |
| **打断感知** | ✅ | ✅ | - |
| **响应隔离** | ✅ | ✅ | ✅ |
📊 查看真实压力测试结果
**场景 1: Claude & Codex 同时访问 OpenCode**
*两个 Agent 同时发送请求,由守护进程完美协调。*
| 来源 | 任务 | 结果 | 状态 |
| :--- | :--- | :--- | :---: |
| 🤖 Claude | `CLAUDE-A` | **CLAUDE-A** | 🟢 |
| 🤖 Claude | `CLAUDE-B` | **CLAUDE-B** | 🟢 |
| 💻 Codex | `CODEX-A` | **CODEX-A** | 🟢 |
| 💻 Codex | `CODEX-B` | **CODEX-B** | 🟢 |
**场景 2: 递归/链式调用**
*Codex 自主驱动 OpenCode 执行 5 步工作流。*
| 请求 | 退出码 | 响应 |
| :--- | :---: | :--- |
| **ONE** | `0` | `CODEX-ONE` |
| **TWO** | `0` | `CODEX-TWO` |
| **THREE** | `0` | `CODEX-THREE` |
| **FOUR** | `0` | `CODEX-FOUR` |
| **FIVE** | `0` | `CODEX-FIVE` |
---
## 🚀 快速开始
**第一步:** 安装 [WezTerm](https://wezfurlong.org/wezterm/)(Windows 请安装原生 `.exe` 版本)
**第二步:** 根据你的环境选择安装脚本:
Linux
```bash
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh install
```
macOS
```bash
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh install
```
> **注意:** 如果安装后找不到命令,请参考 [macOS 故障排除](#-macos-安装指南)。
WSL (Windows 子系统)
> 如果你的 Claude/Codex/Gemini 运行在 WSL 中,请使用此方式。
> **⚠️ 警告:** 请勿使用 root/管理员权限安装或运行 ccb。请先切换到普通用户(`su - 用户名` 或使用 `adduser` 创建新用户)。
```bash
# 在 WSL 终端中运行(使用普通用户,不要用 root)
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh install
```
Windows 原生
> 如果你的 Claude/Codex/Gemini 运行在 Windows 原生环境,请使用此方式。
```powershell
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
powershell -ExecutionPolicy Bypass -File .\install.ps1 install
```
### 启动
```bash
ccb # 按 ccb.config 启动(默认:四个全开)
ccb codex gemini # 同时启动两个
ccb codex gemini opencode claude # 同时启动四个(空格分隔)
ccb codex,gemini,opencode,claude # 同时启动四个(逗号分隔)
ccb -r codex gemini # 恢复 Codex + Gemini 上次会话
ccb -a codex gemini opencode # 自动权限模式,启动多个
ccb -a -r codex gemini opencode claude # 自动 + 恢复(四个全开)
tmux 提示:CCB 的 tmux 状态栏/窗格标题主题只会在 CCB 运行期间启用。
布局规则:当前 pane 对应 providers 列表的最后一个。额外 pane 顺序为 `[cmd?, providers 反序]`;第一个额外 pane 在右上,其后先填满左列(从上到下),再填右列(从上到下)。例:4 个 pane 左2右2,5 个 pane 左2右3。
提示:`ccb up` 已移除,请使用 `ccb ...` 或配置 `ccb.config`。
```
### 常用参数
| 参数 | 说明 | 示例 |
| :--- | :--- | :--- |
| `-r` | 恢复上次会话上下文 | `ccb -r` |
| `-a` | 全自动模式,跳过权限确认 | `ccb -a` |
| `-h` | 查看详细帮助信息 | `ccb -h` |
| `-v` | 查看当前版本和检测更新 | `ccb -v` |
### ccb.config
默认查找顺序:
- `.ccb/ccb.config`(项目级)
- `~/.ccb/ccb.config`(全局)
推荐的简化格式:
```text
codex,gemini,opencode,claude
```
开启 cmd pane(默认标题/命令):
```text
codex,gemini,opencode,claude,cmd
```
cmd pane 作为第一个额外 pane 参与布局,不会改变当前 pane 对应的 AI。
### 后续更新
```bash
ccb update # 更新 ccb 到最新版本
ccb update 4 # 更新到 v4.x.x 最高版本
ccb update 4.1 # 更新到 v4.1.x 最高版本
ccb update 4.1.2 # 更新到指定版本 v4.1.2
ccb uninstall # 卸载 ccb 并清理配置
ccb reinstall # 清理后重新安装
```
---
🪟 Windows 安装指南(WSL vs 原生)
> 结论先说:`ccb/cask/cping/cpend` 必须和 `codex/gemini` 跑在**同一个环境**(WSL 就都在 WSL,原生 Windows 就都在原生 Windows)。最常见问题就是装错环境导致 `cping` 不通。
补充:安装脚本会为 Claude/Codex 的 skills 自动安装对应平台的 `SKILL.md` 版本:
- Linux/macOS/WSL:bash heredoc 模板(`SKILL.md.bash`)
- 原生 Windows:PowerShell here-string 模板(`SKILL.md.powershell`)
### 1) 前置条件:安装原生版 WezTerm(不是 WSL 版)
- 请安装 Windows 原生 WezTerm(官网 `.exe` / winget 安装都可以),不要在 WSL 里安装 Linux 版 WezTerm。
- 原因:`ccb` 在 WezTerm 模式下依赖 `wezterm cli` 管理窗格;使用 Windows 原生 WezTerm 最稳定,也最符合本项目的“分屏多模型协作”设计。
### 2) 判断方法:你到底是在 WSL 还是原生 Windows?
优先按“**你是通过哪种方式安装并运行 Claude Code/Codex**”来判断:
- **WSL 环境特征**
- 你在 WSL 终端(Ubuntu/Debian 等)里用 `bash` 安装/运行(例如 `curl ... | bash`、`apt`、`pip`、`npm` 安装后在 Linux shell 里执行)。
- 路径通常长这样:`/home//...`,并且可能能看到 `/mnt/c/...`。
- 可辅助确认:`cat /proc/version | grep -i microsoft` 有输出,或 `echo $WSL_DISTRO_NAME` 非空。
- **原生 Windows 环境特征**
- 你在 Windows Terminal / WezTerm / PowerShell / CMD 里安装/运行(例如 `winget`、PowerShell 安装脚本、Windows 版 `codex.exe`),并用 `powershell`/`cmd` 启动。
- 路径通常长这样:`C:\\Users\\\\...`,并且 `where codex`/`where claude` 返回的是 Windows 路径。
### 3) WSL 用户指南(推荐:WezTerm 承载,计算与工具在 WSL)
#### 3.1 让 WezTerm 启动时自动进入 WSL
在 Windows 上编辑 WezTerm 配置文件(通常是 `%USERPROFILE%\\.wezterm.lua`),设置默认进入某个 WSL 发行版:
```lua
local wezterm = require 'wezterm'
return {
default_domain = 'WSL:Ubuntu', -- 把 Ubuntu 换成你的发行版名
}
```
发行版名可在 PowerShell 里用 `wsl -l -v` 查看(例如 `Ubuntu-22.04`)。
#### 3.2 在 WSL 中运行 `install.sh` 安装
在 WezTerm 打开的 WSL shell 里执行:
```bash
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
./install.sh install
```
提示:
- 后续所有 `ccb/cask/cping/cpend` 也都请在 **WSL** 里运行(和你的 `codex/gemini` 保持一致)。
#### 3.3 安装后如何测试(`cping`)
```bash
ccb codex
cping
```
预期看到类似 `Codex connection OK (...)` 的输出;失败会提示缺失项(例如窗格不存在、会话目录缺失等)。
### 4) 原生 Windows 用户指南(WezTerm 承载,工具也在 Windows)
#### 4.1 在原生 Windows 中运行 `install.ps1` 安装
在 PowerShell 里执行:
```powershell
git clone https://github.com/bfly123/claude_code_bridge.git
cd claude_code_bridge
powershell -ExecutionPolicy Bypass -File .\install.ps1 install
```
提示:
- 安装脚本会明确提醒“`ccb/cask/cping/cpend` 必须与 `codex/gemini` 在同一环境运行”,请确认你打算在原生 Windows 运行 `codex/gemini`。
- 安装脚本优先使用 `pwsh.exe`(PowerShell 7+);如果没有则使用 `powershell.exe`。
- 如果检测到 WezTerm 配置文件,安装脚本会尝试设置 `config.default_prog` 为 PowerShell(会插入 `-- CCB_WEZTERM_*` 区块;若已有 `default_prog` 会先询问是否覆盖)。
#### 4.2 安装后如何测试
```powershell
ccb codex
cping
```
同样预期看到 `Codex connection OK (...)`。
### 5) 常见问题(尤其是 `cping` 不通)
#### 5.1 打开 ccb 后无法 ping 通 Codex 的原因
- **最主要原因:搞错 WSL 和原生环境(装/跑不在同一侧)**
- 例子:你在 WSL 里装了 `ccb`,但 `codex` 在原生 Windows 跑;或反过来。此时两边的路径、会话目录、管道/窗格检测都对不上,`cping` 大概率失败。
- **Codex 会话并没有启动或已退出**
- 先执行 `ccb codex`(或在 ccb.config 中启用 codex),并确认 Codex 对应的 WezTerm 窗格还存在、没有被手动关闭。
- **WezTerm CLI 不可用或找不到**
- `ccb` 在 WezTerm 模式下需要调用 `wezterm cli list` 等命令;如果 `wezterm` 不在 PATH,或 WSL 里找不到 `wezterm.exe`,会导致检测失败(可重开终端或按提示配置 `CODEX_WEZTERM_BIN`)。
- **PATH/终端未刷新**
- 安装后请重启终端(WezTerm),再运行 `ccb`/`cping`。
- **原生 Windows 的 WezTerm:能把文字发到 Codex,但没有“回车提交”**
- 设置环境变量 `CCB_WEZTERM_ENTER_METHOD=key`(用 `wezterm cli send-key` 发送真实按键事件;如果你的 WezTerm 版本太旧请升级)。
---
🍎 macOS 安装指南
### 安装后找不到命令
如果运行 `./install.sh install` 后找不到 `ccb`、`cask`、`cping` 等命令:
**原因:** 安装目录 (`~/.local/bin`) 不在 PATH 中。
**解决方法:**
```bash
# 1. 检查安装目录是否存在
ls -la ~/.local/bin/
# 2. 检查 PATH 是否包含该目录
echo $PATH | tr ':' '\n' | grep local
# 3. 检查 shell 配置(macOS 默认使用 zsh)
cat ~/.zshrc | grep local
# 4. 如果没有配置,手动添加
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# 5. 重新加载配置
source ~/.zshrc
```
### WezTerm 中找不到命令
如果普通 Terminal 能找到命令,但 WezTerm 找不到:
- WezTerm 可能使用不同的 shell 配置文件
- 同时添加 PATH 到 `~/.zprofile`:
```bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zprofile
```
然后完全重启 WezTerm(Cmd+Q 退出后重新打开)。
---
## 🗣️ 使用场景
安装完成后,直接用自然语言与 Claude 对话即可,它会自动检测并分派任务。
**常见用法:**
- **代码审查**:*"让 Codex 帮我 Review 一下 `main.py` 的改动。"*
- **多维咨询**:*"问问 Gemini 有没有更好的实现方案。"*
- **结对编程**:*"Codex 负责写后端逻辑,我来写前端。"*
- **架构设计**:*"让 Codex 先设计一下这个模块的结构。"*
- **信息交互**:*"调取 Codex 3 轮对话,并加以总结"*
### 🎴 趣味玩法:AI 棋牌之夜!
> *"让 Claude、Codex 和 Gemini 来一局斗地主!你来发牌,大家明牌玩!"*
>
> 🃏 Claude (地主) vs 🎯 Codex + 💎 Gemini (农民)
> **提示:** 底层命令 (`cask`, `cping` 等) 通常由 Claude 自动调用,需要显式调用见命令详情。
---
## 🛠️ 统一命令系统
### 旧命令(已废弃)
- `cask/gask/oask/dask/lask` - 各 provider 独立的 ask 命令
- `cping/gping/oping/dping/lping` - 各 provider 独立的 ping 命令
- `cpend/gpend/opend/dpend/lpend` - 各 provider 独立的 pend 命令
### 新统一命令
- **`ask `** - 统一请求命令(默认后台)
- 支持 provider: `gemini`, `codex`, `opencode`, `droid`, `claude`
- 默认后台;在 Codex 托管环境优先前台执行以避免后台被清理
- 可用 `--foreground` / `--background` 或 `CCB_ASK_FOREGROUND=1` / `CCB_ASK_BACKGROUND=1` 覆盖
- 前台执行使用同步发送,默认关闭 completion hook(除非设置 `CCB_COMPLETION_HOOK_ENABLED`)
- 支持 `--notify` 用于短消息同步通知
- 支持 `CCB_CALLER` 指定发起者(Codex 环境默认 codex,其它默认 claude)
- **`ccb-ping `** - 统一的连通性测试命令
- 测试指定 provider 的 daemon 是否在线
- **`pend [N]`** - 统一的查看回复命令
- 查看指定 provider 的最新回复
- 可选参数 N 指定查看最近 N 条
### 技能系统 (Skills)
- `/ask ` - 请求技能(默认后台;Codex 托管环境前台)
- `/cping ` - 连通性测试技能
- `/pend ` - 查看回复技能
### 跨平台支持
- **Linux/macOS/WSL**: 使用 `tmux` 作为终端后端
- **Windows WezTerm**: 使用 **PowerShell** 作为终端后端
- **Windows PowerShell**: 原生支持,使用 DETACHED_PROCESS 后台执行
### Completion Hook
- 任务完成后自动通知发起者
- 支持 `CCB_CALLER` 指定回调目标 (claude/codex/droid)
- 支持 tmux 和 WezTerm 两种终端后端
- 前台 ask 默认关闭 hook,除非设置 `CCB_COMPLETION_HOOK_ENABLED`
---
## 📧 邮件系统配置
邮件系统允许你通过电子邮件与 AI 交互,即使不在终端前也能远程访问。
### 工作原理
1. **发送邮件** 到 CCB 服务邮箱
2. **指定 AI Provider**:在邮件正文使用前缀(如 `CLAUDE: 你的问题`)
3. **CCB 路由请求** 到指定的 AI Provider
4. **通过邮件回复** 接收 AI 响应
### 快速设置
**第一步:运行配置向导**
```bash
maild setup
```
**第二步:选择邮箱服务商**
- Gmail
- Outlook
- QQ 邮箱
- 163 邮箱
- 自定义 IMAP/SMTP
**第三步:输入凭据**
- 服务邮箱地址(CCB 的邮箱)
- 应用专用密码(不是普通密码,见下方各服务商说明)
- 目标邮箱(接收回复的邮箱)
**第四步:启动邮件守护进程**
```bash
maild start
```
### 配置文件
配置存储在 `~/.ccb/mail/config.json`:
```json
{
"version": 3,
"enabled": true,
"service_account": {
"provider": "qq",
"email": "your-ccb-service@qq.com",
"imap": {"host": "imap.qq.com", "port": 993, "ssl": true},
"smtp": {"host": "smtp.qq.com", "port": 465, "ssl": true}
},
"target_email": "your-phone@example.com",
"default_provider": "claude",
"polling": {
"use_idle": true,
"idle_timeout": 300
}
}
```
### 各邮箱服务商设置
Gmail
1. 在 Google 账户中启用两步验证
2. 访问 [应用专用密码](https://myaccount.google.com/apppasswords)
3. 为"邮件"生成新的应用专用密码
4. 使用这个 16 位密码(不是 Google 密码)
Outlook / Office 365
1. 在 Microsoft 账户中启用两步验证
2. 访问 [安全 > 应用密码](https://account.live.com/proofs/AppPassword)
3. 生成新的应用密码
4. 使用此密码配置 CCB 邮件
QQ 邮箱
1. 登录 QQ 邮箱网页版
2. 进入 设置 > 账户
3. 开启 IMAP/SMTP 服务
4. 生成授权码
5. 使用授权码作为密码
163 邮箱
1. 登录 163 邮箱网页版
2. 进入 设置 > POP3/SMTP/IMAP
3. 开启 IMAP 服务
4. 设置客户端授权密码
5. 使用授权密码配置 CCB
### 邮件格式
**基本格式:**
```
主题:任意(会被忽略)
正文:
CLAUDE: 今天天气怎么样?
```
**支持的 Provider 前缀:**
- `CLAUDE:` 或 `claude:` - 路由到 Claude
- `CODEX:` 或 `codex:` - 路由到 Codex
- `GEMINI:` 或 `gemini:` - 路由到 Gemini
- `OPENCODE:` 或 `opencode:` - 路由到 OpenCode
- `DROID:` 或 `droid:` - 路由到 Droid
如果没有指定前缀,请求会发送到 `default_provider`(默认:`claude`)。
### 邮件守护进程命令
```bash
maild start # 启动邮件守护进程
maild stop # 停止邮件守护进程
maild status # 查看守护进程状态
maild config # 查看当前配置
maild setup # 运行配置向导
maild test # 测试邮件连接
```
---
## 🖥️ 编辑器集成:Neovim + 多模型代码审查
> 结合 **Neovim** 等编辑器,实现无缝的代码编辑与多模型审查工作流。在你喜欢的编辑器中编写代码,AI 助手实时审查并提供改进建议。
---
## 📋 环境要求
- **Python 3.10+**
- **终端软件:** [WezTerm](https://wezfurlong.org/wezterm/) (强烈推荐) 或 tmux
---
## 🗑️ 卸载
```bash
ccb uninstall
ccb reinstall
# 备用方式:
./install.sh uninstall
```
---
更新历史
### v5.0.5
- **Droid**:新增调度工具(`ccb_ask_*` 与 `cask/gask/lask/oask`),并提供 `ccb droid setup-delegation` 安装命令
### v5.0.4
- **OpenCode**:修复 `-r` 恢复在多项目切换后失效的问题
### v5.0.3
- **守护进程**:全新的稳定守护进程设计
### v5.0.1
- **技能更新**:新增 `/all-plan`(Superpowers 头脑风暴 + 可用性分发);Codex 侧新增 `lping/lpend`;`gask` 在 `CCB_DONE` 场景保留简要执行摘要。
- **状态栏**:从 `.autoflow/roles.json` 读取角色名(支持 `_meta.name`),并按路径缓存。
- **安装器**:安装技能时复制子目录(如 `references/`)。
- **CLI**:新增 `ccb uninstall` / `ccb reinstall`,并清理 Claude 配置。
- **路由**:项目/会话解析更严格(优先 `.ccb`,避免跨项目 Claude 会话)。
### v5.0.0
- **解除依赖**:无需先启动 Claude,Codex 也可以作为主 CLI
- **统一控制**:单一入口控制 Claude/OpenCode/Gemini
- **启动简化**:移除 `ccb up`,默认 `ccb.config` 自动生成
- **挂载更自由**:更灵活的 pane 挂载与会话绑定
- **守护进程自启**:`caskd`/`laskd` 在 WezTerm/tmux 按需启动
- **会话更稳**:PID 存活校验避免旧会话干扰
### v4.1.3
- **Codex 配置修复**: 自动迁移过期的 `sandbox_mode = "full-auto"` 为 `"danger-full-access"`,修复 Codex 无法启动的问题
- **稳定性**: 修复了快速退出的命令可能在设置 `remain-on-exit` 之前关闭 pane 的竞态条件
- **Tmux**: 更稳健的 pane 检测机制 (优先使用稳定的 `$TMUX_PANE` 环境变量),并增强了分屏目标失效时的回退处理
### v4.1.2
- **性能优化**: 为 tmux 状态栏 (git 分支 & ccb 状态) 增加缓存,大幅降低系统负载
- **严格模式**: 明确要求在 `tmux` 内运行; 移除不稳定的自动 attach 逻辑,避免环境混乱
- **CLI**: 新增 `--print-version` 参数用于快速版本检查
### v4.1.1
- **CLI 修复**: 修复 `ccb` 在 tmux 中重启时参数丢失 (如 `-a`) 的问题
- **体验优化**: 非交互式环境下提供更清晰的错误提示
- **安装**: 强制更新 skills 以确保应用最新版本
### v4.1.0
- **异步护栏**: `cask/gask/oask` 执行后输出护栏提示,防止 Claude 继续轮询
- **同步模式**: 添加 `--sync` 参数,Codex 调用时跳过护栏提示
- **Codex Skills 更新**: `oask/gask` 使用 `--sync` 静默等待
### v4.0
- **全部重构**:整体架构重写,更清晰、更稳定
- **tmux 完美支持**:分屏/标题/边框/状态栏一体化体验
- **支持任何终端**:除 Windows 原生环境外,强烈建议统一迁移到 tmux 下使用
### v3.0.0
- **智能守护进程**: `caskd`/`gaskd`/`oaskd` 支持 60秒空闲超时和并行队列
- **跨 AI 协作**: 支持多个 Agent (Claude/Codex) 同时调用同一个 Agent (OpenCode)
- **打断检测**: Gemini 现在支持智能打断处理
- **链式执行**: Codex 可以调用 `oask` 驱动 OpenCode
- **稳定性**: 健壮的队列管理和锁文件机制