# CCGUI

Claude Code 多项目会话管理 GUI。基于 Tauri 2（Rust + WebView）的桌面终端复用器，把多个项目、多个 Claude Code 会话统一到一个窗口管理，并延伸出手机远程映射与微信遥控：

- **桌面端**：多标签终端、会话新建/恢复、规则与指令管理、账号额度查看、内置代码符号索引、多模型路由（按模型名路由到不同自定义接口）与 Agents 管理。
- **移动端**：手机经局域网或公网中继实时镜像桌面终端并遥控（新建/恢复/关闭会话、回答确认、发图），可添加项目、按文件名搜索引用，还可在电脑端开关许可后管理电脑文件（浏览/编辑/复制/移动/zip 打包解压，删除进回收站）。
- **中继**：一台自有 VPS + 域名跑的 Node 撮合服务，让手机在外网连回桌面；桌面主动出站拨号，本机不开入站端口。支持把本机端口经子域名隧道映射到公网。
- **ClawBot（微信）**：扫码绑定微信，把通知/额度告警推到微信，并可从微信下达指令遥控会话。

## 目录结构

```
├─ src/                    桌面前端（React 19 + TypeScript + Vite）
├─ src-tauri/              桌面后端（Rust / Tauri 2）
│  ├─ src/
│  │  ├─ mobile/           移动端映射网关（LAN 网关 + 公网中继拨出）
│  │  ├─ wechat/           微信 ClawBot 对接（登录/收发消息/额度告警）
│  │  ├─ index/            代码符号索引（SQLite + tree-sitter）
│  │  └─ ...               pty / sessions / rules / quota 等
│  ├─ Cargo.toml           Rust 依赖清单
│  └─ tauri.conf.json      Tauri 配置（窗口/打包/版本）
├─ mobile-src.html         移动端 H5 源文件（引用 CDN，可编辑）
├─ mobile-test.html        由 mobile-src.html 内联 vendor 生成的自包含页（生成物）
├─ vendor/                 xterm 及插件的本地副本（供 H5 内联，离线可用）
├─ android/                安卓 WebView 壳工程（把 H5 打成 APK）
├─ relay/                  公网中继（Node：server.js + 落地页）
├─ build-mobile-html.ps1   生成 mobile-test.html
├─ build-android.ps1       一键出安卓 APK
└─ docs/                   文档（见下）
```

## 组件与文档

| 组件 | 说明 | 文档 |
| --- | --- | --- |
| 桌面端 | Tauri 桌面应用，编译出 Windows 安装包 | [docs/01-桌面端-编译.md](docs/01-桌面端-编译.md) |
| 移动端编译 | H5 与安卓 APK 的构建 | [docs/02-移动端-编译.md](docs/02-移动端-编译.md) |
| 中继 | 公网中继部署与对接 | [docs/03-中继-部署与使用.md](docs/03-中继-部署与使用.md) |
| ClawBot | 微信通知与遥控 | [docs/04-ClawBot-微信-使用.md](docs/04-ClawBot-微信-使用.md) |
| 移动端使用 | 手机端连接与操作 | [docs/05-移动端-使用.md](docs/05-移动端-使用.md) |
| 深入设计 | 架构方案（可选阅读） | [docs/design/](docs/design/) |

## 依赖安装总览

本包**不含任何依赖库**（node_modules、Rust crates、Android SDK 等均需自行安装）。各组件所需工具链：

- **桌面端**：Node.js 18+、Rust stable、平台构建工具（Windows 需 MSVC 生成工具 + WebView2）。详见 docs/01。
- **中继**：Node.js 18+（依赖仅 `ws`）。详见 docs/03。
- **移动端**：JDK 17、Android SDK（compileSdk 34）、Gradle 8.x、PowerShell。详见 docs/02。

各文档「依赖安装」小节给出具体命令与下载地址。

## 快速开始（桌面端）

```
npm install
npm run tauri build
```
产物在 `src-tauri/target/release/bundle/nsis/`。开发调试用 `npm run tauri dev`。

## 版本号同步

升级版本需同时改三处保持一致：`package.json`、`src-tauri/Cargo.toml`、`src-tauri/tauri.conf.json`。安卓 versionCode 由 build-android.ps1 从 package.json 自动推导（major×10000 + minor×100 + patch）。

## 安全说明

- 移动端遥控、微信遥控写入终端时，**不绕过** Claude Code 自身的权限确认。
- 公网中继**不做端到端加密**，转发内容对中继运营者可见；请只部署在自己信任的 VPS，并置于 HTTPS（Caddy/Nginx）之后。防闯入靠「高熵随机房间号 + 配对令牌」。
- 微信 ClawBot 的 bot_token 是可向本机写指令的遥控密钥，单独落盘于 `%APPDATA%/ccgui/wechat.json`，删文件即解绑。

## 许可

[MIT](LICENSE)。第三方组件许可见 [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md)。
