How zhukunpenglinyutong/desktop-cc-gui works
ccgui is a cross-platform desktop client for running multiple AI coding CLIs against a project. The main workflow is selecting a workspace, engine, and model, sending a prompt, and viewing streamed responses and tool activity; sessions and usage are also tracked. The repository includes dedicated engine adapters plus broader plugin, skill, MCP, mission, Git, and browser features. README claims and the file tree support these branches, but sampled source is incomplete, so uncertain internal wiring is omitted.
Main entry points: ChatPage.tsx Chat interface · lib.rs Tauri commands · ipc.ts Native IPC · engine-events.ts Session and events
Components 22
Chat workflow
- Chat interface
src/features/chat/ChatPage.tsx - Prompt composer
src/components/application/ai-chat/ai-chat-composer.tsx - Session and events
src/features/chat/store/engine-events.ts - Chat state
src/features/chat/store.ts - Model selection
src/components/application/ai-chat/engine-model-panel.tsx
Engine backend
- Native IPC
src/lib/ipc.ts - Tauri commands
src-tauri/src/lib.rs - Engine registry
src-tauri/src/engine/registry.rs - Engine adapters
src-tauri/src/engine/mod.rs - Event delivery
src-tauri/src/event_sink.rs - Local state
src-tauri/src/db.rs
Project tools
- Files and Git
src-tauri/src/git.rs - Embedded browser
src/features/browser/BrowserPane.tsx - Terminal
src/features/terminal/TerminalView.tsx
Extensions
- Skills hub
src-tauri/src/skills_hub/mod.rs - MCP services
src-tauri/src/mcp/mod.rs - Plugin system
src/features/plugins/index.ts - Plugin management
src-tauri/src/plugins/mod.rs - Mission workflows
src/features/mission/runtime.ts
Desktop services
- Engine settings
src/features/settings/SettingsPage.tsx
Other components
- User
- AI CLI runtimes
Connections 25
- User → Chat interface: uses
- Chat interface → Prompt composer: collects prompt
- Prompt composer → Chat state: submits message
- Chat interface → Model selection: selects model
- Engine settings → Native IPC: reads and updates config
- Model selection → Native IPC: loads catalogs
- Chat state → Native IPC: sends chat actions
- Native IPC → Tauri commands: invokes commands
- Tauri commands → Engine registry: resolves engine
- Engine registry → Engine adapters: dispatches
- Engine adapters → AI CLI runtimes: runs CLI protocol
- AI CLI runtimes → Event delivery: streams events
- Event delivery → Native IPC: emits events
- Native IPC → Session and events: delivers events
- Session and events → Chat state: updates sessions
- Session and events → Local state: records usage
- Tauri commands → Local state: persists state
- Tauri commands → Files and Git: provides project operations
- Tauri commands → Skills hub: dispatches skill operations
- Tauri commands → MCP services: dispatches MCP operations
- Chat interface → Plugin system: hosts extensions
- Plugin system → Plugin management: manages plugins
- Chat interface → Mission workflows: opens workflows
- Chat interface → Embedded browser: opens browser
- Chat interface → Terminal: opens terminal