Multi-instance split-pane manager for Claude Code — a cross-platform desktop app built with Tauri 2.
Pre-built Windows installer is available on the GitHub Releases page. Download the latest .exe installer and run it to get started.
For other platforms, you can build from source.
CC-Panes lets you run multiple Claude Code CLI instances side by side in a split-pane terminal layout. Organize your AI-powered development workflow with workspaces, projects, and tasks — all from a single desktop app.
- Split-Pane Terminal — Run multiple terminals in flexible horizontal/vertical split layouts with drag-to-resize
- Workspace Management — Organize projects into workspaces with pinning, hiding, and reordering
- Built-in Terminal — Full-featured terminal (xterm.js + PTY) with multi-tab support
- Claude Code Integration — Launch Claude Code sessions, resume conversations, manage providers, and self-dialogue mode
- Git Integration — Branch status, pull/push/fetch/stash, worktree management, and git clone
- Session Management — Track launch history with recent launches panel, clean broken sessions, and resume previous work
- Local History — File version tracking with diff view, labels, branch-aware snapshots, and restore
- File Browser — Project file tree with search, create, rename, delete, copy, and move operations
- Code Editor — Monaco-based editor with 60+ language support, Markdown preview, and image preview
- Quick Search — Global file search (Ctrl+K) across all workspace projects
- Screenshot — Region capture with global shortcut, multi-monitor support, and clipboard copy
- Session Journal — Workspace-level session logging
- Todo & Plans — Task management with priorities, subtasks, and plan archiving
- Memory & Skills — Manage Claude memories and custom skills per project
- MCP Server Config — Configure MCP servers per project
- Hooks/Workflows — Workspace-level hook system for automation
- Provider Management — Multiple API provider support (Anthropic, Bedrock, Vertex, proxy, config profiles)
- Directory Scan Import — Batch import Git repositories from a directory
- Theme Support — Light/dark mode with glassmorphism design
- Borderless, Mini & Fullscreen — Frameless window mode, compact mini view, and F11 fullscreen toggle
- System Tray — Minimize to tray with status monitoring
- Desktop Notifications — Session exit, waiting-for-input, and todo reminder alerts with debounce
- Keyboard Shortcuts — Customizable shortcuts for all major actions
- i18n — English and Chinese (Simplified) interface
┌─────────────────────────────────────────────────────────────┐
│ React Frontend │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
│ │ Sidebar │ │ Panes │ │ Panels │ │ UI Components │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └───────────────┘ │
│ │ │ │ │
│ ┌────┴─────────────┴────────────┴────┐ │
│ │ Services (invoke) + Stores │ │
│ └────────────────┬───────────────────┘ │
├───────────────────┼─────────────────────────────────────────┤
│ Tauri IPC │ │
├───────────────────┼─────────────────────────────────────────┤
│ Rust Backend │ │
│ ┌────────────────┴───────────────────┐ │
│ │ Commands → Services → Repository │ │
│ └────────────────┬───────────────────┘ │
│ ┌────────────────┴───────────────────┐ │
│ │ SQLite / File System / PTY │ │
│ └────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
| Layer | Technology | Purpose |
|---|---|---|
| Desktop Framework | Tauri 2 | Rust backend + system WebView |
| Frontend | React 19 + TypeScript | UI components |
| State Management | Zustand 5 + Immer | Immutable state updates |
| UI Library | shadcn/ui + Radix UI | Component library |
| Styling | Tailwind CSS 4 | Utility-first CSS |
| Terminal | xterm.js + portable-pty | Frontend rendering + backend PTY |
| Split Panes | Allotment | Resizable split layout |
| Data Storage | SQLite (rusqlite) | Local persistence |
| Icons | Lucide React | SVG icons |
| Build Tool | Vite 6 | Frontend bundler |
# Clone the repository
git clone https://github.com/wuxiran/cc-pane.git
cd cc-pane
# Install frontend dependencies
npm install
# Run in development mode (frontend + Rust backend)
npm run tauri:dev# Build the production app
npm run tauri buildThe built application will be in src-tauri/target/release/bundle/.
# Frontend type check
npx tsc --noEmit
# Run frontend tests
npm run test:run
# Rust check
cargo check --workspace
# Rust lint
cargo clippy --workspace -- -D warnings
# Rust format check
cargo fmt --all -- --check
# Run Rust tests
cargo test --workspaceDev and release builds are fully isolated via cfg!(debug_assertions) and can run simultaneously:
Dev (npm run tauri:dev) |
Release (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 |
cc-panes/
├── web/ # React frontend source
│ ├── components/ # React components
│ │ ├── panes/ # Split-pane terminal components
│ │ ├── sidebar/ # Sidebar components
│ │ ├── providers/ # Provider management UI
│ │ └── ui/ # shadcn/ui base components
│ ├── stores/ # Zustand state management
│ ├── services/ # Frontend service layer (invoke wrappers)
│ ├── hooks/ # Custom React hooks
│ ├── types/ # TypeScript type definitions
│ ├── i18n/ # Internationalization
│ ├── lib/ # Shared frontend helpers
│ └── utils/ # Utility functions
│
├── src-tauri/ # Tauri Rust backend
│ └── src/
│ ├── commands/ # Tauri IPC command handlers
│ ├── services/ # Business logic layer
│ ├── repository/ # Data access layer (SQLite)
│ ├── models/ # Data models
│ └── utils/ # Utilities (AppPaths, AppError)
│
├── cc-panes-*/ # Shared Rust workspace crates
└── docs/ # Architecture docs, examples, and assets
Frontend imports use the @/ alias, which resolves to web/.
Found a bug or have a suggestion? Join the WeChat group:
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
This project is licensed under the GNU General Public License v3.0.
- Tauri — Desktop application framework
- Claude Code — AI coding assistant by Anthropic
- xterm.js — Terminal emulator for the web
- shadcn/ui — UI component library
