Features
Pane Management
Split your terminal into multiple independent panes, each running its own PTY shell.
Ctrl+D— Split vertically (left/right)Ctrl+E— Split horizontally (top/bottom)Ctrl+W— Close the focused pane- Mouse drag on pane borders to resize
Panes can be nested: split a pane, then split one of the halves again. Up to 16 panes.
Minimum pane size is enforced (20 columns wide, 5 rows tall). If a split would create panes too small, the operation is silently ignored.
Tabs
Each tab is an independent workspace with its own panes, file tree, and preview.
Alt+T/Ctrl+T— New tab- Click a tab to switch
- Double-click a tab to rename
Alt+R— Rename tab (session only; submit empty to reset to auto name)Ctrl+W— Close tab (when only one pane in the tab)
The tab name automatically updates when you cd to a different directory. A custom name takes precedence over the auto-derived name.
Status Bar
The status bar at the bottom shows available shortcuts for the current mode. The right side displays Claude Code model name, context usage, and other session info.
Alt+S— Toggle status bar visibility (reclaims 1 row for panes)
File Tree
A sidebar showing your project’s file structure.
Ctrl+F— Toggle the file treej/k— Navigate up/downEnter— Expand directory / open file preview.— Toggle hidden files (.gitis always hidden)- Mouse click — Select entry
- Mouse scroll — Scroll the tree
- Drag the right border to resize
File icons
Files are shown with language-specific icons:
| Icon | Extensions |
|---|---|
| 🦀 | .rs |
| ⚡ | .js, .ts, .jsx, .tsx |
| 🐍 | .py |
| 📄 | .md |
{ | .json |
| ⚙ | .toml |
$ | .sh, .bash, .zsh |
Syntax-Highlighted Preview
Select a file in the file tree to see its contents with syntax highlighting.
- Powered by syntect (base16-eighties theme)
- Line numbers with separator
- Scroll vertically with mouse wheel,
j/k, orPageUp/PageDown - Scroll horizontally with
h/l,Left/Right, orHome(for long lines) - Line position indicator at the bottom (
42/156) Ctrl+Wto close preview (when preview is focused)Ctrl+Pto swap preview and terminal positions
Files larger than 10MB are not previewed. Binary files show a placeholder message.
Claude Detection
When you run claude (Claude Code) inside a terminal pane, ccmux automatically detects it:
- Pane border turns orange (Claude’s brand color
#D97757) - Pane title changes from
shell [N]toclaude [N]
Detection works by monitoring the terminal’s window title (OSC 0/2 escape sequences).
cd Tracking
When you cd to a different directory in the shell:
- File tree updates to show the new directory
- Tab name updates to the new directory name
This is powered by OSC 7 (operating system command for current directory reporting), injected via PROMPT_COMMAND.
Text Selection & Copy
- Mouse drag in a terminal pane to select text (highlighted in blue)
- Text is automatically copied to clipboard when you release the mouse
- Click anywhere to clear selection
- Selection stays within a single pane
Terminal Scrollback
Each pane stores 10,000 lines of history.
- Mouse scroll up in a pane to browse history
↑ SCROLLindicator appears at the bottom of the pane- Any key press automatically scrolls back to the latest output
Mouse Support
| Action | Effect |
|---|---|
| Click pane | Focus that pane |
| Click tab | Switch tab |
Click + | New tab |
| Drag panel border | Resize (file tree, preview, or between panes) |
| Scroll in file tree | Scroll entries |
| Scroll in preview | Scroll file content |
| Scroll in pane | Browse terminal history |
| Drag in pane | Text selection → clipboard |
Small Terminal Handling
- If the terminal is smaller than 40×10, a “Terminal too small” message is shown
- Panels auto-hide when the terminal is too narrow to fit them