![]()
English · 简体中文
ccgui 是一个开源的 AI 编程桌面客户端。简单说:它把 Claude Code、Codex CLI、OpenCode 这些命令行 AI 编程工具,装进了一个好看好用的图形界面里。
你不用再盯着黑乎乎的终端敲命令——打开 ccgui,选好项目,像聊天一样让 AI 帮你写代码、改 Bug、提交 Git。AI 改了哪些文件、跑了什么命令、花了多少钱,全都看得清清楚楚。
应用基于 Tauri 2 + React 19 + TypeScript + Rust 开发,所有数据都存在你自己的电脑上,支持 macOS / Windows / Linux。
本项目最初源自 CodexMonitor,现在已经成长为一个功能完整的多引擎 AI 编程客户端。

@ 引用项目文件、斜杠命令、粘贴图片、上传附件。每个版本的详细更新内容,见 CHANGELOG.md。
直接去 Releases 页面 下载对应平台的安装包:
| 平台 | 安装包 |
|---|---|
| macOS(M 系列芯片) | aarch64.dmg |
| macOS(Intel 芯片) | x64.dmg |
| Windows | .exe / .msi 安装包 |
| Linux | .AppImage |
装好之后,在设置里配置好你的 AI 引擎(比如 Claude Code 的 API Key 或本地 CLI),添加一个项目文件夹,就可以开始用了。
想自己编译、或者参与开发?跟着下面三步走。
需要装这三样东西:
| 工具 | 版本要求 | 用来干嘛 |
|---|---|---|
| Node.js | 20 或更新 | 跑前端 |
| Rust | stable(用 rustup 装) | 编译后端 |
| CMake | 较新版本即可 | 编译部分依赖 |
不同系统还需要一点额外准备(这是 Tauri 框架的要求,详见 Tauri 官方环境文档):
xcode-select --install;CMake 用 brew install cmake。webkit2gtk 等系统库,照着 Tauri 官方文档抄命令就行。git clone https://github.com/zhukunpenglinyutong/desktop-cc-gui.git
cd desktop-cc-gui
npm install
注意:必须用 npm。用 pnpm 或 yarn 会被脚本拦下来(为了保证所有人的依赖版本一致)。
# macOS / Linux
npm run tauri:dev
# Windows
npm run tauri:dev:win
几个小提示:
npm run doctor,它会告诉你缺什么、怎么装。1420 端口。端口被占了不用管,脚本会自动清理。npm run dev 可以在浏览器里调前端(但调不了和后端相关的功能)。npm run build:mac-arm64 # macOS Apple Silicon
npm run build:mac-x64 # macOS Intel
npm run build:mac-universal # macOS 通用包
npm run build:win-x64 # Windows x64
npm run build:linux-x64 # Linux x64
npm run build:linux-arm64 # Linux arm64
| 部分 | 用的什么 |
|---|---|
| 界面 | React 19 + TypeScript + Tailwind CSS 4 |
| 构建 | Vite 7 |
| 桌面框架 | Tauri 2(后端是 Rust) |
| 测试 | Vitest(前端)+ cargo test(Rust) |
desktop-cc-gui/
├── src/ # 前端代码
│ ├── features/ # ★ 功能模块(50+ 个),按功能分目录,开发主战场
│ │ ├── composer/ # 输入框
│ │ ├── messages/ # 消息流
│ │ ├── git/ # Git 面板
│ │ ├── project-map/ # 项目知识地图
│ │ └── ... # 每个目录就是一个独立功能
│ ├── components/ # 跨功能共享的通用 UI 组件
│ ├── services/ # 业务逻辑;其中 tauri.ts 是前端调用 Rust 的桥梁
│ ├── i18n/ # 中英文界面文案
│ ├── styles/ # 全局样式
│ └── lib/ utils/ # 工具函数
├── src-tauri/ # Rust 后端
│ └── src/ # 按模块分目录:engine / codex / git / terminal / files ...
├── scripts/ # 构建、检查、诊断脚本
└── docs/ # 架构文档、性能基线
src/features/ 下对应的模块改就行。新组件直接放在该模块自己的目录里。src-tauri/src/ 对应模块里加一个 #[tauri::command],再到 src/services/tauri.ts 里加一个调用封装,前端就能用了。src/i18n/ 里把中文和英文都加上,界面文字不允许硬编码。| 命令 | 干嘛的 |
|---|---|
npm run tauri:dev |
启动完整应用(开发模式) |
npm run dev |
只启动前端(浏览器调试) |
npm run lint |
代码风格检查 |
npm run typecheck |
TypeScript 类型检查 |
npm run test |
跑单元测试 |
npm run test:watch |
监听模式跑测试(边改边测) |
npm run test:integration |
跑包含重型集成测试的完整测试 |
xxx.test.ts / xxx.test.tsx。xxx.integration.test.tsx,默认不跑,npm run test:integration 才跑。cargo test 跑。规矩不多,但都有原因,提交前过一遍:
npm run lint && npm run typecheck && npm run test,全绿再提。CI 也会跑,本地先过省得来回折腾。src/i18n/ 取,中英文都要加,不许硬编码。src/components/。git-history-* 开头,避免不同功能的样式互相打架。npm run check:large-files)卡这个,文件太大就拆。any 糊弄,类型写明白。storage.rs 提供的原子写入,不要直接 write,避免写一半断电把用户数据写坏。command_registry 里可能已经有现成的,别重复造。格式:type(scope): 做了什么(Conventional Commits 规范)。描述用中文或英文都行,格式对就好。
| type | 什么时候用 |
|---|---|
feat |
加新功能 |
fix |
修 Bug |
refactor |
重构(行为不变) |
docs |
改文档 |
test |
加/改测试 |
chore |
杂活(版本号、依赖、脚本) |
perf / style / ci |
性能优化 / 格式 / CI |
真实例子:
feat(composer): 支持粘贴图片自动转附件
fix(git): 修复 diff 面板滚动位置丢失
docs(readme): update setup guide
不要在 commit 信息里写 emoji,也不要带 AI 生成署名。
main 切一个分支,名字按 feat/xxx、fix/xxx 这种风格起。lint / typecheck / test)。main 分支。标题按 commit 格式写,描述里说清楚:改了什么、为什么改、怎么验证的。不知道从哪下手?看看 Issues,挑一个感兴趣的开干。发现 Bug 或有新点子,也欢迎直接开 Issue 聊。
AGENTS.md — 仓库规则总入口(用 AI 辅助开发本项目时必读)。.trellis/spec/ — 前端、后端的详细实现规范。openspec/ — 功能变更的提案与规格记录。docs/architecture/ — 架构治理文档。感谢 LINUX DO 用户的支持与反馈。
感谢所有帮助 ccgui 变得更好的贡献者。
$ claude mcp add desktop-cc-gui \
-- python -m otcore.mcp_server <graph>