@seemseam/ccb 8.0.11 → 8.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -1358
- package/README_zh.md +132 -793
- package/VERSION +1 -1
- package/package.json +3 -3
- package/readme_ar.md +312 -0
- package/readme_de.md +312 -0
- package/readme_en.md +312 -0
- package/readme_es.md +312 -0
- package/readme_fr.md +312 -0
- package/readme_ja.md +312 -0
- package/readme_ko.md +312 -0
- package/readme_pt.md +312 -0
- package/readme_ru.md +312 -0
package/readme_ko.md
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# CCB - 모바일 앱이 도착했습니다!
|
|
4
|
+
|
|
5
|
+
**탈중앙 멀티 에이전트 협업을 위해 설계됨**
|
|
6
|
+
**보이고 제어 가능한 멀티 에이전트 TUI 작업 공간**
|
|
7
|
+
|
|
8
|
+
<p>
|
|
9
|
+
<img src="https://img.shields.io/badge/version-8.0.12-orange.svg" alt="version">
|
|
10
|
+
<img src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey.svg" alt="platform">
|
|
11
|
+
<img src="https://img.shields.io/badge/providers-15%20CLI%20families-0B7285.svg" alt="providers">
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p>
|
|
15
|
+
<img src="https://img.shields.io/badge/Codex-111111?style=flat-square&logo=openai&logoColor=white" alt="Codex">
|
|
16
|
+
<img src="https://img.shields.io/badge/Claude-D97757?style=flat-square&logo=anthropic&logoColor=white" alt="Claude">
|
|
17
|
+
<img src="https://img.shields.io/badge/Gemini-4285F4?style=flat-square&logo=googlegemini&logoColor=white" alt="Gemini">
|
|
18
|
+
<img src="https://img.shields.io/badge/Kimi-111111?style=flat-square&logo=moonshotai&logoColor=white" alt="Kimi">
|
|
19
|
+
<img src="https://img.shields.io/badge/MiMo-FF6900?style=flat-square&logo=xiaomi&logoColor=white" alt="MiMo">
|
|
20
|
+
<img src="https://img.shields.io/badge/Qwen-6A5CFF?style=flat-square" alt="Qwen">
|
|
21
|
+
<img src="https://img.shields.io/badge/Cursor-111111?style=flat-square" alt="Cursor">
|
|
22
|
+
<img src="https://img.shields.io/badge/Copilot-111111?style=flat-square&logo=githubcopilot&logoColor=white" alt="GitHub Copilot">
|
|
23
|
+
<img src="https://img.shields.io/badge/Crush-FF5A5F?style=flat-square" alt="Crush">
|
|
24
|
+
<img src="https://img.shields.io/badge/Kiro-6D5EF6?style=flat-square" alt="Kiro">
|
|
25
|
+
<img src="https://img.shields.io/badge/Pi-111111?style=flat-square" alt="Pi">
|
|
26
|
+
<img src="https://img.shields.io/badge/Z.ai-111111?style=flat-square" alt="Z.ai">
|
|
27
|
+
<img src="https://img.shields.io/badge/OpenCode-111111?style=flat-square" alt="OpenCode">
|
|
28
|
+
<img src="https://img.shields.io/badge/Antigravity-6D5EF6?style=flat-square&logo=google&logoColor=white" alt="Antigravity">
|
|
29
|
+
<img src="https://img.shields.io/badge/Droid-3DDC84?style=flat-square&logo=android&logoColor=white" alt="Droid">
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
[中文](README.md) | [English](readme_en.md) | [日本語](readme_ja.md) | [Français](readme_fr.md) | [Deutsch](readme_de.md) | [العربية](readme_ar.md) | [Español](readme_es.md) | [Português](readme_pt.md) | **한국어** | [Русский](readme_ru.md)
|
|
33
|
+
|
|
34
|
+
[빠른 시작](#quick-start) · [Mobile App](#mobile-app) · [Rich 모드](#rich-mode) · [에이전트 설정](#configure-agents) · [사용자 가이드](docs/manuals/user-guide/) · [개발자 가이드](docs/manuals/developer-guide/)
|
|
35
|
+
|
|
36
|
+
<p align="center">
|
|
37
|
+
<img src="assets/readme_v7/ccb-hero-en-light.png" alt="CCB의 보이는 멀티 에이전트 CLI 작업 공간" width="960">
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<a id="supported-clis"></a>
|
|
43
|
+
|
|
44
|
+
## 지원 CLI
|
|
45
|
+
|
|
46
|
+
`.ccb/ccb.config`에서 agent마다 다른 CLI를 섞어 사용할 수 있습니다. 실제 사용 가능 여부는 로컬 CLI 설치 상태와 계정 권한에 따라 달라집니다.
|
|
47
|
+
|
|
48
|
+
| CLI family | Provider id |
|
|
49
|
+
| :--- | :--- |
|
|
50
|
+
| Codex | `codex` |
|
|
51
|
+
| Claude | `claude` |
|
|
52
|
+
| Gemini | `gemini` |
|
|
53
|
+
| Kimi | `kimi` |
|
|
54
|
+
| MiMo | `mimo` |
|
|
55
|
+
| Qwen | `qwen` |
|
|
56
|
+
| Cursor | `cursor` |
|
|
57
|
+
| GitHub Copilot CLI | `copilot` |
|
|
58
|
+
| Crush | `crush` |
|
|
59
|
+
| Kiro CLI | `kiro` |
|
|
60
|
+
| Pi | `pi` |
|
|
61
|
+
| Z.ai CLI | `zai` |
|
|
62
|
+
| OpenCode | `opencode` |
|
|
63
|
+
| Antigravity | `agy` |
|
|
64
|
+
| Droid | `droid` |
|
|
65
|
+
|
|
66
|
+
<a id="why-ccb"></a>
|
|
67
|
+
|
|
68
|
+
## 왜 CCB인가?
|
|
69
|
+
|
|
70
|
+
- `A -> B -> C`, `A,B -> C`, `A -> B,C` 같은 복잡한 협업 그래프를 위한 안정적인 agent 간 통신.
|
|
71
|
+
- 모든 agent는 완전한 네이티브 터미널이며, 배치를 눈으로 확인하고 직접 개입할 수 있습니다.
|
|
72
|
+
- 백그라운드 daemon이 실행되어 전면 UI를 닫아도 프로젝트 상태를 유지합니다.
|
|
73
|
+
- Hub 기능: 하나의 명령으로 여러 CLI provider를 병렬 실행합니다.
|
|
74
|
+
- 모바일 원격 컨트롤러: provider를 넘나드는 음성 제어, 파일 전송, 원격 터미널 접근.
|
|
75
|
+
|
|
76
|
+
<a id="how-to-install"></a>
|
|
77
|
+
|
|
78
|
+
## 설치 방법
|
|
79
|
+
|
|
80
|
+
npm으로 설치하거나 업데이트합니다.
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install -g @seemseam/ccb
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
CCB 설치 후에는 내장 updater를 사용합니다.
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
ccb update
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
<details>
|
|
93
|
+
<summary><b>GitHub release 패키지와 소스 설치 대체 경로</b></summary>
|
|
94
|
+
|
|
95
|
+
npm을 쓰기 어려운 환경이라면 [Releases](https://github.com/SeemSeam/claude_codex_bridge/releases)에서 맞는 패키지를 내려받고 압축을 푼 뒤 설치합니다.
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
tar -xzf ccb-*.tar.gz
|
|
99
|
+
cd ccb-*
|
|
100
|
+
./install.sh install
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
소스 설치는 개발이나 임시 대체 용도로만 권장합니다.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
git clone https://github.com/SeemSeam/claude_codex_bridge.git
|
|
107
|
+
cd claude_codex_bridge
|
|
108
|
+
./install.sh install
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
소스 설치는 전역 `ccb` / `ask` 명령을 현재 checkout으로 연결합니다. 일반 사용자는 npm 패키지를 권장합니다.
|
|
112
|
+
|
|
113
|
+
</details>
|
|
114
|
+
|
|
115
|
+
<a id="quick-start"></a>
|
|
116
|
+
|
|
117
|
+
## 빠른 시작
|
|
118
|
+
|
|
119
|
+
### 1. 실행
|
|
120
|
+
|
|
121
|
+
작업 디렉터리에서 실행합니다.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
ccb
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
시작 시 `.ccb`를 자동으로 만들 수 없거나 프로젝트 앵커가 없다고 나오면 `.ccb`를 직접 만듭니다.
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
mkdir -p .ccb
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
<a id="configure-agents"></a>
|
|
134
|
+
|
|
135
|
+
### 2. 프로젝트 설정 만들기
|
|
136
|
+
|
|
137
|
+
프로젝트 루트에 `.ccb/ccb.config`를 만듭니다. 권장 v2 `[windows]` 토폴로지는 각 window 안에서 `,`와 `;`로 세로 쌓기와 가로 분할을 제어합니다. 예를 들어 `A,B;C,D`는 네 개 pane 배치에 가깝습니다.
|
|
138
|
+
|
|
139
|
+
```toml
|
|
140
|
+
version = 2
|
|
141
|
+
|
|
142
|
+
[windows]
|
|
143
|
+
main = "main:codex"
|
|
144
|
+
work = "worker1:codex(worktree), worker2:claude(worktree)"
|
|
145
|
+
review = "reviewer:claude, qa:gemini"
|
|
146
|
+
|
|
147
|
+
[ui.sidebar]
|
|
148
|
+
mode = "every_window"
|
|
149
|
+
width = "15%"
|
|
150
|
+
bottom_height = 20
|
|
151
|
+
agents_height = "50%"
|
|
152
|
+
comms_height = "15%"
|
|
153
|
+
tips_height = "35%"
|
|
154
|
+
comms_limit = 3
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
설정을 검증하고 작업 공간을 시작합니다.
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
ccb config validate
|
|
161
|
+
ccb
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 3. 협업 시작
|
|
165
|
+
|
|
166
|
+
원하는 agent pane에 직접 입력하거나 agent들이 협업하게 할 수 있습니다.
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
/ask reviewer review the latest parser changes and list blocking issues.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
workflow orchestration 중 agent가 `/ask`를 호출해 위임과 인계를 수행할 수도 있습니다. 지속적인 조율에는 agent memory 또는 프로젝트 공유 메모리 파일 `.ccb/ccb_memory.md`를 사용하세요.
|
|
173
|
+
|
|
174
|
+
<a id="mobile-app"></a>
|
|
175
|
+
|
|
176
|
+
## 모바일 원격 제어 (Android)
|
|
177
|
+
|
|
178
|
+
휴대폰에서 CCB를 제어하는 권장 방식은 모든 CCB 프로젝트에 연결하고, 각 agent를 제어하며, 음성 입력과 파일 전송을 사용할 수 있습니다.
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
ccb update mobile
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
이 명령은 설치와 설정을 안내합니다.
|
|
185
|
+
|
|
186
|
+
<p align="center">
|
|
187
|
+
<img src="assets/readme_v7/mobile-control-chat.jpg" alt="CCB Mobile agent 대화" width="180">
|
|
188
|
+
<img src="assets/readme_v7/mobile-control-terminal.jpg" alt="CCB Mobile 터미널 제어" width="180">
|
|
189
|
+
<img src="assets/readme_v7/mobile-control-files.jpg" alt="CCB Mobile 파일 전송" width="180">
|
|
190
|
+
<img src="assets/readme_v7/mobile-control-pairing.jpg" alt="CCB Mobile 페어링과 연결" width="180">
|
|
191
|
+
</p>
|
|
192
|
+
|
|
193
|
+
<details>
|
|
194
|
+
<summary><b>Mobile App 세부 정보, 안전 경계, 소스</b></summary>
|
|
195
|
+
|
|
196
|
+
CCB 8.0.12은 Flutter CCB Mobile 소스를 [`mobile/`](mobile/)에 포함하며 Android APK를 GitHub Releases로 배포합니다.
|
|
197
|
+
|
|
198
|
+
- [CCB Mobile v8.0.12 APK 다운로드](https://github.com/bfly123/claude_code_bridge/releases/download/v8.0.12/ccb-mobile-v8.0.12.apk)
|
|
199
|
+
- 앱 소스: [`mobile/app`](mobile/app)
|
|
200
|
+
- 서버 gateway 소스: [`lib/mobile_gateway`](lib/mobile_gateway)
|
|
201
|
+
|
|
202
|
+
휴대폰 앱은 서버에서 실행 중인 실제 CCB 프로젝트의 원격 컨트롤러입니다. server-wide mobile gateway에서 마운트된 프로젝트를 찾고, window/agent를 전환하며, agent 대화 컨텍스트를 표시하고, pane-native 입력으로 텍스트를 보내고, terminal view를 열며, 인증된 gateway로 이미지와 문서를 업로드/다운로드할 수 있습니다.
|
|
203
|
+
|
|
204
|
+
안전 경계:
|
|
205
|
+
|
|
206
|
+
- CCB gateway는 `127.0.0.1:8787` 같은 loopback에만 bind합니다.
|
|
207
|
+
- 원격 접근은 Tailscale Serve를 사용하며 Tailscale Funnel은 사용하지 않습니다.
|
|
208
|
+
- CCB는 Tailscale 비밀번호, OAuth token, admin API token을 저장하지 않고 tailnet ACLs/grants를 자동 수정하지 않습니다.
|
|
209
|
+
- 휴대폰은 pairing profile에서 허용한 scope만 받습니다. 예: view, content, terminal, file upload, file download.
|
|
210
|
+
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
<a id="rich-mode"></a>
|
|
214
|
+
|
|
215
|
+
## Rich 미디어 터미널
|
|
216
|
+
|
|
217
|
+
터미널 안에서 파일 트리를 탐색하고, 파일을 열고, 문서를 편집하고, 미디어를 미리 볼 수 있습니다.
|
|
218
|
+
|
|
219
|
+
<p align="center">
|
|
220
|
+
<img src="assets/readme_v7/rich-workbench.png" alt="WezTerm에서 Yazi preview를 사용하는 CCB rich media workbench" width="860">
|
|
221
|
+
</p>
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
ccb update rich
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
rich mode가 활성화되면 일반 `ccb`는 이미 CCB-managed rich WezTerm 세션 안에서 실행 중인 경우를 제외하고 rich WezTerm launcher를 자동으로 엽니다. 일반 터미널 시작으로 돌아가려면 `ccb uninstall rich`를 실행합니다.
|
|
228
|
+
|
|
229
|
+
<a id="agent-roles"></a>
|
|
230
|
+
|
|
231
|
+
## Agent Roles Spec 및 역할 카탈로그
|
|
232
|
+
|
|
233
|
+
CCB는 전문 agent를 패키징하기 위한 host-neutral 명세인 [Agent Roles Spec](https://github.com/SeemSeam/agent-roles-spec)을 지원합니다. skills, memory, tool dependencies를 설치 가능하고 마운트 가능하며 제거 가능한 Role Pack으로 묶을 수 있습니다. 해당 저장소는 공개 role catalog 역할도 합니다.
|
|
234
|
+
|
|
235
|
+
| Role | 목적 |
|
|
236
|
+
| :--- | :--- |
|
|
237
|
+
| `agentroles.ccb_self` | CCB 자체 유지관리, 설정 지원, runtime 진단, 보호된 복구, workflow orchestration. |
|
|
238
|
+
| `agentroles.archi` | 아키텍처 리뷰, 경계 점검, 결합도 분석, 유지보수성 위험, 후속 gate 조언. |
|
|
239
|
+
| `agentroles.frontend_engineer` | 프론트엔드 설계와 구현, design systems, 접근성, 브라우저 QA, 검토된 AGY 위임. |
|
|
240
|
+
| `agentroles.mobile_app_engineer` | iOS, Android, React Native, Expo, Flutter, SwiftUI, Jetpack Compose 등 모바일 설계와 구현. |
|
|
241
|
+
| `agentroles.mother` | Role 생성, role source 감사, role research, blueprint 설계, Agent Roles 명세 준수 점검. |
|
|
242
|
+
| `agentroles.su_ccb` | 요구사항 분석, 계획, dispatch, review gates, 보관, 복구를 포함한 SU-CCB workflow 운영. |
|
|
243
|
+
|
|
244
|
+
<a id="config-memory"></a>
|
|
245
|
+
|
|
246
|
+
## 설정과 공유 메모리
|
|
247
|
+
|
|
248
|
+
windows를 어떻게 묶을지, workers가 몇 명 필요한지, 어떤 agents가 worktrees를 써야 하는지, 어떤 agents가 별도 모델이나 API routes가 필요한지 확실하지 않다면 현재 작업 공간의 `ccb_self`에 물어보세요. `ccb_self`는 CCB 내장 self-agent로, CCB 명령, 설정 권한, roles, windows, reload 경계, 일반적인 복구 경로를 이해하며 전용 `ccb-config` skill로 함께 설정을 설계할 수 있습니다. 빈 프로젝트에는 `ccb_self`가 포함됩니다. 기존 사용자 설정에는 `ccb roles add agentroles.ccb_self:codex`로 추가할 수 있습니다.
|
|
249
|
+
|
|
250
|
+
`.ccb/ccb_memory.md`는 프로젝트 전체 공유 메모리 문서입니다. 팀 협업 규칙, 프로젝트 제약, 장기 컨텍스트, agent 인계 규칙을 기록하는 데 사용하세요. 여러 provider private memory에 같은 내용을 복사하기보다 안정적인 cross-agent 정보는 여기에 두는 편이 더 안정적입니다.
|
|
251
|
+
|
|
252
|
+
<a id="contact"></a>
|
|
253
|
+
|
|
254
|
+
## 연락처
|
|
255
|
+
|
|
256
|
+
- Email: `bfly123@126.com`
|
|
257
|
+
- [Telegram group & contact / TG 群与联系](https://t.me/+BKn03v8I_ehmYzRk)
|
|
258
|
+
- WeChat: `seemseam-com`
|
|
259
|
+
|
|
260
|
+
<p align="center">
|
|
261
|
+
<img src="assets/weixin.jpg" alt="WeChat 그룹" width="240">
|
|
262
|
+
</p>
|
|
263
|
+
|
|
264
|
+
<a id="community"></a>
|
|
265
|
+
|
|
266
|
+
## 커뮤니티와 감사
|
|
267
|
+
|
|
268
|
+
테스트, 피드백, 토론을 지원해 준 [Linux.do community](https://linux.do)에 감사드립니다.
|
|
269
|
+
|
|
270
|
+
sidebar 아이디어와 영감을 준 [tmux-agent-sidebar](https://github.com/hiroppy/tmux-agent-sidebar)에 감사드립니다.
|
|
271
|
+
|
|
272
|
+
<a id="release-notes"></a>
|
|
273
|
+
|
|
274
|
+
## 릴리스 노트
|
|
275
|
+
|
|
276
|
+
<details open>
|
|
277
|
+
<summary><b>v8.0.12</b> - Release CI 이식성과 README 다국어화</summary>
|
|
278
|
+
|
|
279
|
+
- mobile host registry 테스트는 이제 임시 Unix sockets를 짧은 `/tmp/ccb-sock-*` 경로 아래에 두어 macOS CI의 `AF_UNIX path too long` 실패를 피합니다.
|
|
280
|
+
- `ccb update mobile`, README 링크, package metadata, mobile release manifest가 이제 8.0.12 APK를 가리킵니다.
|
|
281
|
+
- 중국어 README가 GitHub 기본 README가 되었고 영어는 `readme_en.md`로 이동했습니다. 일본어, 프랑스어, 독일어, 아랍어, 스페인어, 포르투갈어, 한국어, 러시아어 버전도 같은 section 구조로 추가했습니다.
|
|
282
|
+
|
|
283
|
+
</details>
|
|
284
|
+
|
|
285
|
+
<details>
|
|
286
|
+
<summary><b>v8.0.0</b> - CCB Mobile Monorepo 릴리스</summary>
|
|
287
|
+
|
|
288
|
+
- Flutter CCB Mobile 소스가 공식적으로 이 저장소에 들어왔고 Android APK가 GitHub Releases로 배포되었습니다.
|
|
289
|
+
- server-wide mobile project discovery, pairing, authenticated gateway routes, pane-native message input, conversation context rendering, terminal access, 이미지/문서 업로드 및 다운로드가 추가되었습니다.
|
|
290
|
+
- `ccb update mobile`을 통합 Tailscale Tailnet onboarding 진입점으로 승격하면서 gateway는 loopback-only로 유지하고 Funnel을 쓰지 않으며 token을 저장하지 않고 ACLs/grants를 자동 수정하지 않습니다.
|
|
291
|
+
|
|
292
|
+
</details>
|
|
293
|
+
|
|
294
|
+
<details>
|
|
295
|
+
<summary><b>v7.7.0</b> - Runtime Accelerator 릴리스 강화</summary>
|
|
296
|
+
|
|
297
|
+
- release artifacts에 선택적 Rust `ccb-runtime-accelerator`가 포함되며, sidecar가 예상되는 설치형 Codex agent가 Python hot path로 조용히 fallback하지 않습니다.
|
|
298
|
+
- 프로젝트 경로 때문에 Unix socket path가 너무 길어지면 accelerator socket은 짧은 per-user runtime socket root로 자동 이동합니다.
|
|
299
|
+
- callback repair와 Codex binding cache invalidation을 강화하고 regression, long-idle Codex soak, Claude callback, mixed-provider integration 증거를 기록했습니다.
|
|
300
|
+
|
|
301
|
+
</details>
|
|
302
|
+
|
|
303
|
+
<details>
|
|
304
|
+
<summary><b>v7.6.19</b> - 장시간 ask 기본 대기 정책</summary>
|
|
305
|
+
|
|
306
|
+
- 일반적인 장시간 `ask`는 heartbeat 진단만으로 `incomplete/heartbeat_timeout`으로 종료하지 않고 실제 provider/completion 결과를 계속 기다립니다.
|
|
307
|
+
- Codex, Claude, Gemini의 pane-backed no-terminal timeout은 기본적으로 명시적 opt-in이 되었고, 명시적 reliability timeout policy는 계속 사용할 수 있습니다.
|
|
308
|
+
- 32분 source-runtime ask smoke로 작업이 30분 넘게 running 상태를 유지한 뒤 `result_message`로 완료되고 `heartbeat_timeout` 또는 `incomplete` 증거가 없음을 확인했습니다.
|
|
309
|
+
|
|
310
|
+
</details>
|
|
311
|
+
|
|
312
|
+
전체 기록은 [CHANGELOG.md](CHANGELOG.md)를 참조하세요.
|
package/readme_pt.md
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# CCB - O app móvel chegou!
|
|
4
|
+
|
|
5
|
+
**Projetado para colaboração multiagente descentralizada**
|
|
6
|
+
**Um workspace TUI multiagente visível e controlável**
|
|
7
|
+
|
|
8
|
+
<p>
|
|
9
|
+
<img src="https://img.shields.io/badge/version-8.0.12-orange.svg" alt="version">
|
|
10
|
+
<img src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey.svg" alt="platform">
|
|
11
|
+
<img src="https://img.shields.io/badge/providers-15%20CLI%20families-0B7285.svg" alt="providers">
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p>
|
|
15
|
+
<img src="https://img.shields.io/badge/Codex-111111?style=flat-square&logo=openai&logoColor=white" alt="Codex">
|
|
16
|
+
<img src="https://img.shields.io/badge/Claude-D97757?style=flat-square&logo=anthropic&logoColor=white" alt="Claude">
|
|
17
|
+
<img src="https://img.shields.io/badge/Gemini-4285F4?style=flat-square&logo=googlegemini&logoColor=white" alt="Gemini">
|
|
18
|
+
<img src="https://img.shields.io/badge/Kimi-111111?style=flat-square&logo=moonshotai&logoColor=white" alt="Kimi">
|
|
19
|
+
<img src="https://img.shields.io/badge/MiMo-FF6900?style=flat-square&logo=xiaomi&logoColor=white" alt="MiMo">
|
|
20
|
+
<img src="https://img.shields.io/badge/Qwen-6A5CFF?style=flat-square" alt="Qwen">
|
|
21
|
+
<img src="https://img.shields.io/badge/Cursor-111111?style=flat-square" alt="Cursor">
|
|
22
|
+
<img src="https://img.shields.io/badge/Copilot-111111?style=flat-square&logo=githubcopilot&logoColor=white" alt="GitHub Copilot">
|
|
23
|
+
<img src="https://img.shields.io/badge/Crush-FF5A5F?style=flat-square" alt="Crush">
|
|
24
|
+
<img src="https://img.shields.io/badge/Kiro-6D5EF6?style=flat-square" alt="Kiro">
|
|
25
|
+
<img src="https://img.shields.io/badge/Pi-111111?style=flat-square" alt="Pi">
|
|
26
|
+
<img src="https://img.shields.io/badge/Z.ai-111111?style=flat-square" alt="Z.ai">
|
|
27
|
+
<img src="https://img.shields.io/badge/OpenCode-111111?style=flat-square" alt="OpenCode">
|
|
28
|
+
<img src="https://img.shields.io/badge/Antigravity-6D5EF6?style=flat-square&logo=google&logoColor=white" alt="Antigravity">
|
|
29
|
+
<img src="https://img.shields.io/badge/Droid-3DDC84?style=flat-square&logo=android&logoColor=white" alt="Droid">
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
[中文](README.md) | [English](readme_en.md) | [日本語](readme_ja.md) | [Français](readme_fr.md) | [Deutsch](readme_de.md) | [العربية](readme_ar.md) | [Español](readme_es.md) | **Português** | [한국어](readme_ko.md) | [Русский](readme_ru.md)
|
|
33
|
+
|
|
34
|
+
[Início rápido](#quick-start) · [Mobile App](#mobile-app) · [Modo Rich](#rich-mode) · [Configurar agentes](#configure-agents) · [Guia do usuário](docs/manuals/user-guide/) · [Guia do desenvolvedor](docs/manuals/developer-guide/)
|
|
35
|
+
|
|
36
|
+
<p align="center">
|
|
37
|
+
<img src="assets/readme_v7/ccb-hero-en-light.png" alt="Workspace CLI multiagente visível do CCB" width="960">
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<a id="supported-clis"></a>
|
|
43
|
+
|
|
44
|
+
## CLIs suportadas
|
|
45
|
+
|
|
46
|
+
Você pode misturar diferentes CLIs por agent em `.ccb/ccb.config`. A disponibilidade real depende da instalação local da CLI e do acesso da conta.
|
|
47
|
+
|
|
48
|
+
| CLI family | Provider id |
|
|
49
|
+
| :--- | :--- |
|
|
50
|
+
| Codex | `codex` |
|
|
51
|
+
| Claude | `claude` |
|
|
52
|
+
| Gemini | `gemini` |
|
|
53
|
+
| Kimi | `kimi` |
|
|
54
|
+
| MiMo | `mimo` |
|
|
55
|
+
| Qwen | `qwen` |
|
|
56
|
+
| Cursor | `cursor` |
|
|
57
|
+
| GitHub Copilot CLI | `copilot` |
|
|
58
|
+
| Crush | `crush` |
|
|
59
|
+
| Kiro CLI | `kiro` |
|
|
60
|
+
| Pi | `pi` |
|
|
61
|
+
| Z.ai CLI | `zai` |
|
|
62
|
+
| OpenCode | `opencode` |
|
|
63
|
+
| Antigravity | `agy` |
|
|
64
|
+
| Droid | `droid` |
|
|
65
|
+
|
|
66
|
+
<a id="why-ccb"></a>
|
|
67
|
+
|
|
68
|
+
## Por que CCB?
|
|
69
|
+
|
|
70
|
+
- Comunicação estável entre agentes para grafos complexos como `A -> B -> C`, `A,B -> C` e `A -> B,C`.
|
|
71
|
+
- Cada agente é um terminal nativo completo, com controle visível de layout e intervenção direta.
|
|
72
|
+
- O daemon em segundo plano mantém o estado do projeto mesmo quando a UI de primeiro plano é fechada.
|
|
73
|
+
- Capacidade Hub: execute vários CLI providers em paralelo a partir de um único comando.
|
|
74
|
+
- Controle remoto móvel: controle por voz entre providers, transferência de arquivos e acesso a terminal remoto.
|
|
75
|
+
|
|
76
|
+
<a id="how-to-install"></a>
|
|
77
|
+
|
|
78
|
+
## Como instalar
|
|
79
|
+
|
|
80
|
+
Instale ou atualize com npm:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm install -g @seemseam/ccb
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Depois de instalar o CCB, use o updater integrado:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
ccb update
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
<details>
|
|
93
|
+
<summary><b>Pacote GitHub release e instalação por fonte como fallback</b></summary>
|
|
94
|
+
|
|
95
|
+
Se npm não for conveniente no seu ambiente, baixe o pacote adequado em [Releases](https://github.com/SeemSeam/claude_codex_bridge/releases), descompacte e instale:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
tar -xzf ccb-*.tar.gz
|
|
99
|
+
cd ccb-*
|
|
100
|
+
./install.sh install
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
A instalação por fonte é indicada apenas para desenvolvimento ou fallback temporário:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
git clone https://github.com/SeemSeam/claude_codex_bridge.git
|
|
107
|
+
cd claude_codex_bridge
|
|
108
|
+
./install.sh install
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
A instalação por fonte aponta os comandos globais `ccb` / `ask` de volta para o checkout. Usuários comuns devem preferir o pacote npm.
|
|
112
|
+
|
|
113
|
+
</details>
|
|
114
|
+
|
|
115
|
+
<a id="quick-start"></a>
|
|
116
|
+
|
|
117
|
+
## Início rápido
|
|
118
|
+
|
|
119
|
+
### 1. Iniciar
|
|
120
|
+
|
|
121
|
+
Execute a partir do seu diretório de trabalho:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
ccb
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Se a inicialização informar que `.ccb` não pode ser criado automaticamente ou que a âncora do projeto está ausente, crie `.ccb` manualmente:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
mkdir -p .ccb
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
<a id="configure-agents"></a>
|
|
134
|
+
|
|
135
|
+
### 2. Criar configuração do projeto
|
|
136
|
+
|
|
137
|
+
Crie `.ccb/ccb.config` na raiz do projeto. A topologia v2 `[windows]` recomendada usa `,` e `;` para controlar empilhamento vertical e divisões horizontais dentro de cada window; `A,B;C,D` se aproxima de um layout de quatro panes.
|
|
138
|
+
|
|
139
|
+
```toml
|
|
140
|
+
version = 2
|
|
141
|
+
|
|
142
|
+
[windows]
|
|
143
|
+
main = "main:codex"
|
|
144
|
+
work = "worker1:codex(worktree), worker2:claude(worktree)"
|
|
145
|
+
review = "reviewer:claude, qa:gemini"
|
|
146
|
+
|
|
147
|
+
[ui.sidebar]
|
|
148
|
+
mode = "every_window"
|
|
149
|
+
width = "15%"
|
|
150
|
+
bottom_height = 20
|
|
151
|
+
agents_height = "50%"
|
|
152
|
+
comms_height = "15%"
|
|
153
|
+
tips_height = "35%"
|
|
154
|
+
comms_limit = 3
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Valide a configuração e inicie o workspace:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
ccb config validate
|
|
161
|
+
ccb
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 3. Colaborar
|
|
165
|
+
|
|
166
|
+
Você pode digitar diretamente em qualquer agent pane ou deixar os agentes colaborarem:
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
/ask reviewer review the latest parser changes and list blocking issues.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Agentes também podem chamar `/ask` durante a orquestração de workflows para delegar e passar trabalho adiante. Use a memória de agent ou o arquivo compartilhado do projeto `.ccb/ccb_memory.md` para coordenação durável.
|
|
173
|
+
|
|
174
|
+
<a id="mobile-app"></a>
|
|
175
|
+
|
|
176
|
+
## Controle remoto móvel (Android)
|
|
177
|
+
|
|
178
|
+
A forma recomendada de controlar o CCB pelo telefone pode conectar-se a todos os projetos CCB, controlar cada agent, aceitar entrada por voz e transferir arquivos.
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
ccb update mobile
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Esse comando orienta a instalação e a configuração.
|
|
185
|
+
|
|
186
|
+
<p align="center">
|
|
187
|
+
<img src="assets/readme_v7/mobile-control-chat.jpg" alt="Chat de agent no CCB Mobile" width="180">
|
|
188
|
+
<img src="assets/readme_v7/mobile-control-terminal.jpg" alt="Controle de terminal no CCB Mobile" width="180">
|
|
189
|
+
<img src="assets/readme_v7/mobile-control-files.jpg" alt="Transferência de arquivos no CCB Mobile" width="180">
|
|
190
|
+
<img src="assets/readme_v7/mobile-control-pairing.jpg" alt="Pareamento e conexão no CCB Mobile" width="180">
|
|
191
|
+
</p>
|
|
192
|
+
|
|
193
|
+
<details>
|
|
194
|
+
<summary><b>Detalhes do Mobile App, limite de segurança e fonte</b></summary>
|
|
195
|
+
|
|
196
|
+
O CCB 8.0.12 inclui o código Flutter do CCB Mobile em [`mobile/`](mobile/) e publica o APK Android pelo GitHub Releases:
|
|
197
|
+
|
|
198
|
+
- [Baixar CCB Mobile v8.0.12 APK](https://github.com/bfly123/claude_code_bridge/releases/download/v8.0.12/ccb-mobile-v8.0.12.apk)
|
|
199
|
+
- Fonte do app: [`mobile/app`](mobile/app)
|
|
200
|
+
- Fonte do gateway servidor: [`lib/mobile_gateway`](lib/mobile_gateway)
|
|
201
|
+
|
|
202
|
+
O app do telefone é um controlador remoto para projetos CCB reais rodando em um servidor. Ele pode descobrir projetos montados pelo mobile gateway server-wide, trocar windows e agents, renderizar contexto de conversa, enviar texto via entrada pane-native, abrir uma visão terminal e enviar/baixar imagens e documentos pelo gateway autenticado.
|
|
203
|
+
|
|
204
|
+
Limite de segurança:
|
|
205
|
+
|
|
206
|
+
- O gateway CCB faz bind apenas em loopback, por exemplo `127.0.0.1:8787`.
|
|
207
|
+
- O acesso remoto usa Tailscale Serve, não Tailscale Funnel.
|
|
208
|
+
- O CCB não armazena senhas Tailscale, OAuth tokens, admin API tokens, nem modifica ACLs/grants do tailnet automaticamente.
|
|
209
|
+
- O telefone recebe apenas os scopes autorizados pelo pairing profile, como view, content, terminal, file upload e file download.
|
|
210
|
+
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
<a id="rich-mode"></a>
|
|
214
|
+
|
|
215
|
+
## Terminal multimídia Rich
|
|
216
|
+
|
|
217
|
+
Explore árvores de arquivos, abra arquivos, edite documentos e visualize mídia dentro do terminal.
|
|
218
|
+
|
|
219
|
+
<p align="center">
|
|
220
|
+
<img src="assets/readme_v7/rich-workbench.png" alt="Workbench multimídia Rich do CCB com preview Yazi no WezTerm" width="860">
|
|
221
|
+
</p>
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
ccb update rich
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Depois que rich mode é ativado, `ccb` normal abre automaticamente o rich WezTerm launcher, a menos que já esteja rodando dentro de uma sessão rich WezTerm gerenciada pelo CCB. Execute `ccb uninstall rich` para voltar ao início normal no terminal.
|
|
228
|
+
|
|
229
|
+
<a id="agent-roles"></a>
|
|
230
|
+
|
|
231
|
+
## Agent Roles Spec e catálogo de roles
|
|
232
|
+
|
|
233
|
+
O CCB suporta [Agent Roles Spec](https://github.com/SeemSeam/agent-roles-spec), uma especificação host-neutral para empacotar agentes especialistas. Ela pode agrupar skills, memória e dependências de ferramentas em Role Packs instaláveis, montáveis e removíveis. Esse repositório também serve como catálogo público de roles.
|
|
234
|
+
|
|
235
|
+
| Role | Propósito |
|
|
236
|
+
| :--- | :--- |
|
|
237
|
+
| `agentroles.ccb_self` | Automanutenção do CCB, ajuda de configuração, diagnóstico runtime, recuperação protegida e orquestração de workflow. |
|
|
238
|
+
| `agentroles.archi` | Revisão de arquitetura, checagem de limites, análise de acoplamento, riscos de manutenção e recomendações de gates. |
|
|
239
|
+
| `agentroles.frontend_engineer` | Design e implementação frontend, design systems, acessibilidade, QA de navegador e delegação AGY revisada. |
|
|
240
|
+
| `agentroles.mobile_app_engineer` | Design e implementação mobile para iOS, Android, React Native, Expo, Flutter, SwiftUI, Jetpack Compose e mais. |
|
|
241
|
+
| `agentroles.mother` | Criação de roles, auditoria de role source, pesquisa de roles, design de blueprint e checagens de conformidade Agent Roles. |
|
|
242
|
+
| `agentroles.su_ccb` | Operações workflow SU-CCB para análise de requisitos, planejamento, dispatch, review gates, arquivamento e recuperação. |
|
|
243
|
+
|
|
244
|
+
<a id="config-memory"></a>
|
|
245
|
+
|
|
246
|
+
## Configuração e memória compartilhada
|
|
247
|
+
|
|
248
|
+
Se você não tiver certeza de como agrupar windows, quantos workers precisa, quais agents devem usar worktrees ou quais agents precisam de modelos ou rotas API separadas, pergunte ao `ccb_self` no workspace atual. Ele é o self-agent integrado do CCB: entende comandos CCB, autoridade de configuração, roles, windows, limites de reload e caminhos comuns de recuperação, e pode usar seu skill privado `ccb-config` para desenhar uma configuração com você. Projetos vazios incluem `ccb_self`; configurações personalizadas existentes podem adicioná-lo com `ccb roles add agentroles.ccb_self:codex`.
|
|
249
|
+
|
|
250
|
+
`.ccb/ccb_memory.md` é o documento de memória compartilhada de todo o projeto. Use-o para regras de colaboração da equipe, restrições do projeto, contexto durável e convenções de handoff entre agents. Informações estáveis entre agents devem ficar ali, em vez de serem copiadas para várias memórias privadas de providers.
|
|
251
|
+
|
|
252
|
+
<a id="contact"></a>
|
|
253
|
+
|
|
254
|
+
## Contato
|
|
255
|
+
|
|
256
|
+
- Email: `bfly123@126.com`
|
|
257
|
+
- [Telegram group & contact / TG 群与联系](https://t.me/+BKn03v8I_ehmYzRk)
|
|
258
|
+
- WeChat: `seemseam-com`
|
|
259
|
+
|
|
260
|
+
<p align="center">
|
|
261
|
+
<img src="assets/weixin.jpg" alt="Grupo WeChat" width="240">
|
|
262
|
+
</p>
|
|
263
|
+
|
|
264
|
+
<a id="community"></a>
|
|
265
|
+
|
|
266
|
+
## Comunidade e créditos
|
|
267
|
+
|
|
268
|
+
Obrigado à [comunidade Linux.do](https://linux.do) pelos testes, feedback e discussão.
|
|
269
|
+
|
|
270
|
+
Obrigado ao [tmux-agent-sidebar](https://github.com/hiroppy/tmux-agent-sidebar) pelas ideias e inspiração de sidebar.
|
|
271
|
+
|
|
272
|
+
<a id="release-notes"></a>
|
|
273
|
+
|
|
274
|
+
## Notas de versão
|
|
275
|
+
|
|
276
|
+
<details open>
|
|
277
|
+
<summary><b>v8.0.12</b> - Portabilidade do Release CI e localização do README</summary>
|
|
278
|
+
|
|
279
|
+
- Testes mobile host registry agora colocam Unix sockets temporários em um caminho curto `/tmp/ccb-sock-*`, evitando falhas `AF_UNIX path too long` no macOS CI.
|
|
280
|
+
- `ccb update mobile`, links do README, package metadata e o mobile release manifest agora apontam para o APK 8.0.12.
|
|
281
|
+
- O README em chinês agora é o README principal do GitHub; o inglês foi movido para `readme_en.md`, e versões em japonês, francês, alemão, árabe, espanhol, português, coreano e russo foram adicionadas com a mesma estrutura de seções.
|
|
282
|
+
|
|
283
|
+
</details>
|
|
284
|
+
|
|
285
|
+
<details>
|
|
286
|
+
<summary><b>v8.0.0</b> - Lançamento do CCB Mobile Monorepo</summary>
|
|
287
|
+
|
|
288
|
+
- O código Flutter do CCB Mobile entrou oficialmente neste repositório, com o APK Android publicado via GitHub Releases.
|
|
289
|
+
- Foram adicionados descoberta server-wide de projetos mobile, pairing, rotas gateway autenticadas, entrada pane-native, renderização de contexto de conversa, acesso terminal e upload/download de imagens e documentos.
|
|
290
|
+
- `ccb update mobile` virou o ponto de entrada unificado de onboarding Tailscale Tailnet, mantendo o gateway loopback-only, sem Funnel, sem armazenar tokens e sem modificar ACLs/grants automaticamente.
|
|
291
|
+
|
|
292
|
+
</details>
|
|
293
|
+
|
|
294
|
+
<details>
|
|
295
|
+
<summary><b>v7.7.0</b> - Endurecimento de release do Runtime Accelerator</summary>
|
|
296
|
+
|
|
297
|
+
- Os release artifacts agora incluem o Rust `ccb-runtime-accelerator` opcional; agents Codex instalados não retornam silenciosamente ao Python hot path quando o sidecar é esperado.
|
|
298
|
+
- Quando o caminho do projeto torna o Unix socket path longo demais, o accelerator socket migra automaticamente para uma raiz runtime curta por usuário.
|
|
299
|
+
- Callback repair e invalidação do cache de binding Codex foram reforçados, com evidências de regressão, long-idle Codex soak, callback Claude e integração mixed-provider.
|
|
300
|
+
|
|
301
|
+
</details>
|
|
302
|
+
|
|
303
|
+
<details>
|
|
304
|
+
<summary><b>v7.6.19</b> - Política padrão de espera para ask longo</summary>
|
|
305
|
+
|
|
306
|
+
- Chamadas `ask` longas agora continuam aguardando resultados reais de provider/completion, em vez de terminar como `incomplete/heartbeat_timeout` apenas por diagnósticos heartbeat.
|
|
307
|
+
- No-terminal timeouts pane-backed de Codex, Claude e Gemini agora são opt-in explícito por padrão, mantendo disponíveis políticas explícitas de reliability timeout.
|
|
308
|
+
- Um smoke source-runtime ask de 32 minutos confirmou que uma tarefa pode permanecer running por mais de 30 minutos e depois concluir com `result_message`, sem evidência de `heartbeat_timeout` ou `incomplete`.
|
|
309
|
+
|
|
310
|
+
</details>
|
|
311
|
+
|
|
312
|
+
Veja o histórico completo em [CHANGELOG.md](CHANGELOG.md).
|