DeepSeek Harness Hub
← 返回列表

多引擎编程客户端zhukunpenglinyutong/desktop-cc-gui

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

ccgui 是一个开源的 multi-engine AI 编程桌面客户端。简单说:它把 Claude…

暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/9/18 · 已提供中文文档

多引擎 AI 编程桌面客户端(Tauri)。Claude Code、Codex、Gemini、OpenCode、DeepSeek Harness 等集于一个 GUI。

综合分
71
GitHub 分
71
用户评分
★ Stars
4234
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add zhukunpenglinyutong/desktop-cc-gui
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
⚠︎ 实装验证未通过(dep_tree_unresolvable · 2026/9/16) ——可能是 CI 环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包ccgui-next(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/16 05:59:04

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

CC GUI 客户端

English · 简体中文

![][github-contributors-shield] ![][github-forks-shield] ![][github-stars-shield] ![][github-issues-shield]

ccgui 是一个开源的 multi-engine AI 编程桌面客户端。简单说:它把 Claude Code、Codex CLI、Kimi CLI、Grok CLI、Pi CLI、OMP CLI、DeepSeek Harness(DSH) 等命令行 AI 编程 runtime,放进一个统一的图形界面里。

你不用再盯着黑乎乎的终端敲命令——打开 ccgui,选好项目,像聊天一样让 AI 帮你写代码、改 Bug、提交 Git。流式输出、思考过程和工具调用都会实时展示;token 用量在引擎上报时同步呈现。

应用基于 Tauri 2 + React 18 + TypeScript + Rust 开发,支持 macOS / Windows / Linux。设置与状态默认在本机持久化;发送给 AI provider 的内容,遵循你为对应 CLI 配置的渠道边界。

ccgui 能干什么

一个客户端,装下七个 AI 引擎

- 注册了 Claude Code、Codex CLI、Kimi CLI、Grok CLI、Pi CLI、OMP CLI、DeepSeek Harness 的 runtime adapter——在输入框里按会话切换引擎。
- 供应商渠道直接写入各 CLI 自己的原生配置文件(不搞平行的凭证存储),内置 GLM、Kimi、DeepSeek、MiniMax、MiMo、百炼、LongCat、OpenCode Go、OpenRouter 等精选预设;Claude / Codex / Grok 的渠道还能从 CC Switch 一键导入。
- Pi 系引擎(Pi / OMP)支持在设置页内完成 API Key 与 OAuth 登录。
- 支持按标签页覆盖模型与 effort 档位:同一个窗口里,不同标签页可以跑不同模型或思考强度。
- 会话历史不丢:历史扫描器直接读取各 CLI 的原生会话文件并保持标题同步,关掉应用再打开还能接着聊。

聊天框是为写代码设计的

- 流式回复按动画帧逐步展示,配合语法高亮缓存——长输出也保持流畅,不会每来一个 token 就重排一遍 markdown。
- 思考流与正文合并展示,结束后自动折叠,需要时一键展开看全文。
- 工具调用以实时行呈现,参数与结果可展开查看,内置美化的 Git Diff、Bash 查看器和每次运行的完成元数据。
- 运行状态条实时镜像引擎进度(含 todo 快照),消息锚点导航栏让你在用户消息之间快速跳转。
- 粘贴图片自动转附件;@ 文件引用基于感知 .gitignore 的项目文件索引;回复中的文件链接能处理 URL 编码路径,并支持右键菜单。
- 权限被拒时可以在对话内直接为引擎追加授权目录;输入框还内置提示词历史与可选的 Codex Fast 开关。

不只是聊天,是一整套开发面板

- 文件树:虚拟化渲染,带 Git 状态颜色、嵌套仓库徽标、右键菜单与拖拽——内置 CodeMirror 编辑器面板,支持 Markdown 预览。
- 内置终端:真正的 PTY 终端坞(xterm + WebGL),不用切窗口。
- Git 面板:暂存、提交、分支搜索、看 diff、翻提交历史。
- 命令面板:一个键盘驱动的入口,调起应用内所有命令。

插件系统

- 自研 插件 SDK(@ccgui/plugin-sdk),配套应用内运行时、管理界面与信任边界。
- 声明式插件无需编写前端代码即可新增设置区块与配置驱动的界面;应用内建界面(包括设置页本身)也走同一套扩展点注册。
- 完整开发指南见 docs/plugin-development-guide.zh-CN.md。

设置、网络与更新

- 代理设置:为应用与引擎流量配置代理。
- 局域网网页访问:通过 token 鉴权的 WebSocket 桥接,把界面共享给局域网内其他设备,设置页提供二维码入口。
- 工作区管理:给项目分组,快速切换。
- 应用内自动更新(Tauri updater,对接 GitHub Releases)、版本记录对话框、macOS 签名构建。
- 中英双语界面。

下载安装

直接去 Releases 页面 下载对应平台的安装包:

| 平台 | 安装包 |
| --- | --- |
| macOS(M 系列芯片,已签名) | aarch64.dmg |
| Windows | .exe(NSIS)安装包 |
| Linux | .AppImage |

装好之后,打开设置,为要用的 CLI 配置供应商渠道(或直接登录),添加一个项目文件夹,就可以开始聊了。

使用 DeepSeek Harness(DSH)

1. 在本机安装 DSH CLI,并在 DSH 自身中配置模型与 API key——不要把它当成 ccgui 里的另一套 vendor preset。
2. 在设置 → DeepSeek Harness 中,ccgui 可以接管本机已运行的 dsh web host,也可以自动拉起一个。
3. 在输入框引擎选择器中选中 DeepSeek Harness。对话走 DSH 的 headless profile;模型与凭证仍归 DSH 管理。

把项目跑起来(启动教程)

想自己编译、或者参与开发?跟着下面三步走。

第一步:准备环境

| 工具 | 版本要求 | 用来干嘛 |
| --- | --- | --- |
| Node.js | 20 或更新 | 跑前端工具链 |
| pnpm | 10(packageManager 字段已锁定) | 安装依赖 |
| Rust | stable(用 rustup 装) | 编译后端 |

不同系统还需要一点额外准备(这是 Tauri 框架的要求,详见 Tauri 官方环境文档):

- macOS:装 Xcode 命令行工具:xcode-select --install。
- Windows:装 Microsoft C++ Build Tools 和 WebView2(Win 11 自带 WebView2)。
- Linux:装 webkit2gtk 等系统库,照着 Tauri 官方文档抄命令就行。

第二步:装依赖

git clone https://github.com/zhukunpenglinyutong/desktop-cc-gui.git
cd desktop-cc-gui
pnpm install

注意:这是一个 pnpm workspace(插件 SDK 在 packages/plugin-sdk),锁定文件是 pnpm-lock.yaml。

第三步:启动

pnpm dev

几个小提示:

- 第一次启动要编译整个 Rust 后端,可能等上几分钟,去倒杯水。之后是增量编译,很快。
- 前端开发服务器跑在 1420 端口。

打安装包

pnpm build:mac                 # macOS 签名构建(scripts/build-signed-macos.sh)
pnpm build:mac:skip-notarize   # 同上,但跳过公证

Windows 与 Linux 安装包由 .github/workflows/ 下的 CI 工作流产出(release.yml、build-windows-artifact.yml)。

怎么改代码(开发教程)

技术栈一览

| 部分 | 用的什么 |
| --- | --- |
| 界面 | React 18 + TypeScript + Tailwind CSS 4 + zustand |
| 构建 | Vite 6 |
| 桌面框架 | Tauri 2(Rust 后端:git2、rusqlite、portable-pty、axum) |
| 测试 | Vitest(前端)+ cargo test(Rust) |

目录结构

desktop-cc-gui/
├── src/                    # 前端代码
│   ├── features/           # ★ 功能模块:chat / files / git / terminal /
│   │                       #   settings / plugins / commands / update / open-app
│   ├── components/         # 跨功能共享的通用 UI 组件(含引擎品牌图标)
│   ├── i18n/               # zh + en 两套 locale bundle
│   ├── styles/             # 全局样式
│   └── lib/ utils/         # 工具函数
├── src-tauri/              # Rust 后端
│   └── src/                # engine/(每个 CLI 一个模块)、history/、plugins/、
│                           # git.rs、terminal.rs、web.rs(局域网桥接)……
├── packages/plugin-sdk/    # @ccgui/plugin-sdk —— 插件开发套件
├── tests/                  # 前端集成向测试(Vitest)
├── scripts/                # 构建与打包脚本
└── docs/                   # 插件开发指南、引擎模式说明

改一个功能的套路

1. 只改界面:找到 src/features/ 下对应的模块改就行。新组件直接放在该模块自己的目录里。
2. 需要后端配合:在 src-tauri/src/ 对应模块里加 #[tauri::command],前端通过 Tauri API 调用。
3. 改了界面文字:必须走 i18n,并同步两套 bundle(src/i18n/zh.ts、src/i18n/en.ts);界面文字不允许硬编码。

常用命令

| 命令 | 干嘛的 |
| --- | --- |
| pnpm dev | 启动完整应用(Tauri 开发模式) |
| pnpm build | TypeScript 类型检查 + 前端生产构建 |
| pnpm test | 跑 Vitest 测试套件 |
| pnpm preview | 预览生产构建的前端 |
| cargo test --manifest-path src-tauri/Cargo.toml | 跑 Rust 测试 |

测试怎么写

- 前端测试用 Vitest——源码旁边放 xxx.test.ts(x) 同位测试,较重的套件统一放 tests/ 目录。
- Rust 端测试照常写在模块里,用 cargo test --manifest-path src-tauri/Cargo.toml 跑。

开发规范

规矩不多,但都有原因,提交前过一遍:

1. 提 PR 前跑通本地验证:pnpm build(类型检查)和 pnpm test 全绿;动了 Rust 再加 cargo test。
2. 界面文字必须走 i18n:所有用户可见文案都从 src/i18n/ 取,并保持两套 locale bundle 同步,不许硬编码。
3. 组件就近放:新组件先放自己 feature 的目录里;确实被多个功能复用了,再挪到 src/components/。
4. TypeScript 严格模式:别用 any 糊弄,类型写明白。
5. 优先通过插件 SDK 扩展:新增设置区块与界面,尽量走内建界面同款扩展点注册。
6. 永远不要提交密钥:API Key、token 这类东西绝对不能进代码和提交记录。

Commit 信息怎么写

默认使用中文主体的 Conventional Commits:type(scope): 中文动宾短句。

| type | 什么时候用 |
| --- | --- |
| feat | 加新功能 |
| fix | 修 Bug |
| refactor | 重构(行为不变) |
| docs | 改文档 |
| test | 加/改测试 |
| chore | 杂活(版本号、依赖、脚本) |
| perf / style / ci | 性能优化 / 格式 / CI |

仓库里的真实例子:

feat(chat): 支持工具调用参数与结果展开、Git Diff/Bash美化及完成元数据展示
fix(codex): Windows .cmd shim 下多行提示词只送达第一行
perf(chat): reveal streamed text per frame without reparsing markdown

不要在 commit 信息里写 emoji,也不要带 AI 生成署名。

怎么提交你的代码(贡献流程)

1. Fork 本仓库,clone 到本地。
2. 从 main 切一个分支,名字按 feat/xxx、fix/xxx 这种风格起。
3. 改代码,本地把 pnpm build + pnpm test 跑绿。
4. 提 PR 到本仓库的 main 分支。标题按 commit 格式写,描述里说清楚:改了什么、为什么改、怎么验证的。

不知道从哪下手?看看 Issues,挑一个感兴趣的开干。发现 Bug 或有新点子,也欢迎直接开 Issue 聊。

想深入了解项目内部?

- 插件开发指南 — SDK、manifest、权限模型与信任边界。
- docs/omp-fast-mode.md — Codex Fast / OMP 快速模式说明。

License

MIT

友链

感谢 LINUX DO 用户的支持与反馈。

AtomGit:在国内托管本项目,帮助中国大陆用户更快访问项目与下载 Release。

感谢 AtomGit 平台 G-Star 认证

贡献者列表

感谢所有帮助 ccgui 变得更好的贡献者。

参考项目说明

本项目最初源自 CodexMonitor。自 v1.0.0 起代码库已从零完全重写,不再包含 CodexMonitor 的任何代码,但仍感谢其最初带来的启发。

Star History

Star History Chart

[github-contributors-shield]: https://img.shields.io/github/contributors/zhukunpenglinyutong/desktop-cc-gui?color=c4f042&labelColor=black&style=flat-square
[github-forks-shield]: https://img.shields.io/github/forks/zhukunpenglinyutong/desktop-cc-gui?color=8ae8ff&labelColor=black&style=flat-square
[github-issues-link]: https://github.com/zhukunpenglinyutong/desktop-cc-gui/issues
[github-issues-shield]: https://img.shields.io/github/issues/zhukunpenglinyutong/desktop-cc-gui?color=ff80eb&labelColor=black&style=flat-square
[github-license-link]: https://github.com/zhukunpenglinyutong/desktop-cc-gui/blob/main/LICENSE
[github-stars-shield]: https://img.shields.io/github/stars/zhukunpenglinyutong/desktop-cc-gui?color=ffcb47&labelColor=black&style=flat-square

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群