A multi-session Claude Code workbench — run multiple Claude Code sessions in one window.
Website · 中文文档 · License (GPL-3.0)
- Split Panes — Vertical and horizontal splits with draggable dividers. Navigate between panes with
Alt+Arrowkeys. - Tabs — Multiple tabs per pane, reorderable, with tab prewarming for instant creation.
- Workspaces — Save and restore your entire layout (splits, tabs, working directories, window state) as
.ccpad-workspacefiles. Auto-detects workspace files on startup. - Project Quick-Access — Pin frequently-used directories for one-click new tabs.
- Windows ConPTY — Native pseudo-console integration. Runs any CLI tool — PowerShell, cmd, bash, python, node, git, etc.
- xterm.js Rendering — Full terminal emulation via xterm.js hosted in WebView2, with Cascadia Code font.
- Mica Backdrop — Native Windows 11 translucent material.
- Web Remote Terminal — Built-in HTTP/WebSocket server lets you view and control any session from a browser on the same LAN. Optional token authentication. Touch-friendly UI with on-screen keys for mobile devices.
- Context Menu Integration — Right-click any folder in Explorer to open it in CC Pad.
- File Association — Double-click
.ccpad-workspacefiles to open them directly.
Download the latest CCPad-Setup-x64.exe from the Releases page and run it.
Prerequisites:
- .NET 8.0 SDK
- Windows App SDK 1.8+
- Windows 10 (Build 17763) or later
# Clone
git clone https://github.com/nuomiaa/CCPad.git
cd CCPad
# Build (Debug)
dotnet build CCPad/CCPad.csproj
# Build (Release, x64)
dotnet publish CCPad/CCPad.csproj -c Release -r win-x64
Supported targets: win-x64, win-x86, win-arm64.
# Open in current directory
CCPad.exe
# Open a specific folder
CCPad.exe "C:\Projects\my-app"
# Open a workspace file
CCPad.exe my-project.ccpad-workspaceWhen launched without arguments, CC Pad auto-detects .ccpad-workspace files in the current directory and enters workspace mode.
| Action | Shortcut |
|---|---|
| New tab | Ctrl+T |
| Close tab | Ctrl+W |
| Copy selection | Ctrl+C |
| Split right | Alt+Shift+= |
| Split down | Alt+Shift+- |
| Navigate panes | Alt+Arrow Keys |
| Close pane | Ctrl+Shift+W |
Right-click the terminal or a tab header for additional options.
Access your terminal sessions from any browser on the same network:
- Click the remote terminal button in the toolbar
- Select your LAN address and optionally enable token authentication
- Open the displayed URL on another device (phone, tablet, another PC)
- Select a session from the sidebar to view and control it in real-time
Features:
- Live mirroring — See exactly what's on the desktop terminal
- Full keyboard input — Type commands remotely
- Touch controls — On-screen arrow keys, backspace, and enter for mobile devices
- Session replay — Recent terminal output is buffered for instant display when connecting
- Secure — Optional 16-byte token authentication
Workspaces save your complete layout as a JSON file:
- Split layout — Pane tree structure with orientations and ratios
- Tab states — Name and working directory for each tab
- Window state — Size, position, and maximized state
Use the workspace button (top-right, visible in workspace mode) or the context menu to save/load workspaces. The default filename is the current directory name.
Click the Projects button in any tab strip footer to manage pinned directories. Adding a project makes it available as a quick-launch option across all panes.
CCPad/
├── App.xaml.cs # Entry point, startup, context menu registration
├── MainWindow.xaml.cs # Window management, workspace mode, update UI
├── SplitHost.xaml.cs # Binary split-tree layout engine
├── TabPanel.xaml.cs # Tab lifecycle, project menu
├── TerminalPane.xaml.cs # WebView2 + xterm.js host, session registration
├── UpdateChecker.cs # GitHub release checker, auto-update
├── Terminal/
│ ├── ConPtySession.cs # Windows ConPTY process management
│ └── PseudoConsoleApi.cs # P/Invoke bindings for ConPTY
├── Web/
│ ├── WebTerminalServer.cs # ASP.NET Core Kestrel HTTP/WebSocket server
│ ├── WebTerminalSession.cs# WebSocket handler for remote mirroring
│ ├── TerminalSessionRegistry.cs # Session tracking + output ring buffer
│ └── WebTerminalHtml.cs # Embedded web UI with xterm.js
├── Controls/
│ └── GridSplitter.cs # Draggable split ratio control
├── Settings/
│ ├── WorkspaceConfig.cs # .ccpad-workspace file I/O
│ └── ProjectConfig.cs # Project list persistence
└── Assets/
└── xterm/ # xterm.js terminal emulator
Rendering pipeline: xterm.js (JavaScript) → WebView2 (Chromium) → WinUI 3 window
Layout model: Binary tree of SplitNode — each leaf is a PaneNode containing a TabPanel, each internal node is a SplitContainerNode with orientation and ratio.
- Windows 10 version 1809 (Build 17763) or later
- WebView2 Runtime (bundled with Windows 11, auto-installed on Windows 10)
This project is licensed under the GNU General Public License v3.0.
Contributions are welcome! Please open an issue first to discuss what you'd like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push to the branch and open a Pull Request

