A Claude Code first, multi-agent workspace for running parallel coding sessions side by side.
Download · 中文文档 · 📖 User Guide · Report an Issue
CC-Panes is a desktop control center for AI coding work. It keeps projects, terminals, launch profiles, providers, todos, file browsing, Git status, local history, and session resume in one place so you can drive several coding agents without losing the thread.
It is built around Claude Code, with adapters for Codex, Gemini, Kimi, GLM, OpenCode, Cursor, and provider profiles that can be selected at launch time.
- Run multiple AI coding sessions in a split-pane terminal layout.
- Keep workspaces, projects, tasks, todos, and launch history organized.
- Resume previous Claude/Codex/Gemini sessions from the app instead of hunting through shells.
- Switch providers, config profiles, runtimes, and skill policies per launch.
- Inspect files, edit code, compare local history, and manage Git without leaving the workspace.
- Capture screenshots, use voice input, receive notifications, and keep long-running work visible.
| Multi-pane workspace | Focused terminal workspace |
|---|---|
| Todo and task planning | Light workspace view |
|---|---|
Parallel Terminals
- Flexible split panes and tabbed terminals backed by xterm.js and portable-pty.
- Launch Claude Code, Codex, Gemini, Kimi, GLM, OpenCode, and Cursor sessions.
- Resume historical sessions and keep launch history attached to projects.
- Built-in terminal input tools, paste handling, clipboard support, and terminal diagnostics.
Workspaces And Projects
- Workspace and project sidebar with pin, hide, reorder, scan, import, and create flows.
- Per-project metadata, launch history, tasks, todos, and MCP configuration.
- Project file browser with create, rename, delete, copy, move, search, and editor open.
- Monaco editor with Markdown preview and image preview.
Launch Profiles And Providers
- Launch profiles for repeatable CLI, runtime, provider, skill, and environment choices.
- Provider support for Anthropic, Bedrock, Vertex, OpenAI-compatible proxies, Gemini, Kimi, GLM, OpenCode, Cursor, and local config profiles.
- Launch-time provider selection modes for inheriting, selecting explicitly, or running without provider injection.
- Bundled Claude Code commands, agents, hooks, and CC-Panes skills for orchestrated workflows.
Git, History, And Review
- Git branch status, fetch, pull, push, stash, clone, and worktree helpers.
- Branch-aware local history snapshots with labels and diff view.
- File version recovery tools for comparing and restoring local edits.
Desktop Workflow
- Dev and release build isolation for data directories, identifiers, shortcuts, and window titles.
- Global screenshot shortcut with region capture and multi-monitor support.
- Tray behavior, notifications, voice input, mini view, fullscreen focus, and configurable shortcuts.
- Cross-platform packages for Windows, macOS, and Linux.
Prebuilt installers are published on the latest release page.
- Windows:
*_x64-setup.exeor*_arm64-setup.exe - macOS:
*_aarch64.dmgor*_x64.dmg - Linux:
*_amd64.debor*_amd64.AppImage
- Node.js 22+
- Rust 1.83+
- Platform-specific Tauri 2 prerequisites
- Claude Code, Codex, Gemini, or other CLI tools you want to launch from CC-Panes
git clone https://github.com/wuxiran/cc-pane.git
cd cc-pane
npm install
npm run tauri:devThe development build uses src-tauri/tauri.dev.conf.json and stores data under ~/.cc-panes-dev/.
Build the frontend only:
npm run buildBuild the production desktop app:
cargo build -p cc-panes-cli-hook --release
node scripts/copy-hook.cjs
npm run tauri buildFrontend:
npx tsc --noEmit
npm run test:runRust:
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace -- -D warnings
cargo test --workspaceCC-Panes uses a layered desktop architecture:
React component
-> Zustand store
-> frontend service
-> Tauri IPC command
-> Rust service
-> repository
-> SQLite / file system / PTY
| Layer | Technology | Purpose |
|---|---|---|
| Desktop | Tauri 2 | Rust backend with system WebView |
| Frontend | React 19, TypeScript 5.6, Vite 6 | Application UI |
| State | Zustand 5, Immer | Predictable state updates |
| UI | shadcn/ui, Radix UI, Tailwind CSS 4 | Components and styling |
| Terminal | xterm.js, portable-pty | Terminal rendering and PTY management |
| Storage | SQLite, rusqlite | Local persistence |
| Testing | Vitest, jsdom, Rust tests | Frontend and backend verification |
cc-pane/
├── web/ # React frontend
│ ├── components/ # UI, panes, sidebar, settings
│ ├── stores/ # Zustand stores
│ ├── services/ # Tauri invoke wrappers
│ ├── hooks/ # React hooks
│ ├── types/ # TypeScript types
│ └── i18n/ # Translations
├── src-tauri/ # Tauri app entry, commands, services, repositories
├── cc-panes-core/ # Framework-independent core logic
├── cc-panes-api/ # HTTP/WebSocket API adapter
├── cc-panes-web/ # Web terminal server
├── cc-cli-adapters/ # Claude/Codex/Gemini/etc adapter layer
├── cc-memory/ # Local memory system
├── cc-memory-mcp/ # Memory MCP server
├── cc-notify/ # Notification crate
├── docs/ # Documentation and screenshots
└── scripts/ # Build and utility scripts
Frontend imports use the @/ alias, which resolves to web/.
Dev and release builds are intentionally isolated:
| Dev | Release | |
|---|---|---|
| Command | npm run tauri:dev |
npm run tauri build |
| Data directory | ~/.cc-panes-dev/ |
~/.cc-panes/ |
| Identifier | com.ccpanes.dev |
com.ccpanes.app |
| Window title | CC-Panes [DEV] |
CC-Panes |
| Screenshot shortcut | Ctrl+Alt+Shift+S |
Ctrl+Shift+S |
When behavior depends on the Windows desktop host, validate on Windows. WSL or Linux checks are useful for code and preflight verification, but they do not prove WebView2, tray, global shortcut, screenshot, updater, installer, or Windows PTY behavior.
- GitHub Issues: https://github.com/wuxiran/cc-pane/issues
- GitHub Discussions: https://github.com/wuxiran/cc-pane/discussions
WeChat chat group:
Add WeChat yemaofeng66 and mention CC-Panes chat.
Bug feedback group:
Add WeChat yemaofeng66 and mention CC-Panes bug feedback.
Contributions are welcome. Please open an issue before large changes so the scope and design can be discussed.
Commit messages follow Conventional Commits:
feat: add launch profile import
fix: repair Windows PTY resize handling
docs: update README screenshots
CC-Panes is licensed under GPL-3.0.