A modern terminal multiplexer for macOS, Windows, and Linux
Built with Tauri, Rust, and xterm.js — with Claude AI integration baked in.
Website • Download • Features • Installation • Shortcuts
Terminal multiplexers like tmux are powerful but stuck in the 80s. PaneStreet brings multi-pane terminal management into a native desktop app with GPU-accelerated rendering, drag-and-drop window management, 16 built-in themes, and deep integration with Claude AI tools.
No config files. No arcane keybindings to memorize. Just open it and start working.
- Multi-pane layouts — Auto-grid, freeform drag-and-drop, or edge-snap split modes
- GPU-accelerated rendering — Powered by xterm.js with WebGL
- Session persistence — Layout and scrollback history survive restarts
- Process status detection — Know what's running in each pane at a glance
- Directional navigation — Move between panes with
⌘ ⌥ Arrowkeys - Shift+Enter support — Native CSI u keyboard protocol for Claude Code and other modern CLI tools
- Three layout modes — Auto-grid for quick setups, freeform for full control, snap-to-edge for tiling
- Maximize / minimize panes — Focus on one task, restore when ready
- Minimized pane pills — Quick access to backgrounded terminals in the footer
- Notification sidebar — Slide-in panel showing terminal alerts in plain language
- Notification rings — Pulsing glow on unfocused panes that need attention
- Mascot notification relay — When you're in the app, the mascot announces alerts from other terminals
- Sidebar metadata — CWD, listening ports, and PR status shown per session
- OSC notification support — Handles OSC 9, 99, and 777 terminal notifications
- Native desktop notifications — Per-status toggle with sound control
- Built-in file viewer — Browse directories without leaving the app
- CWD tracking — File browser follows your terminal's working directory
- File preview — Peek at file contents inline
- Open in Finder — One click to jump to the file system
- Unix socket server — Control PaneStreet from external scripts and CLI tools
- Commands — List sessions, write to terminals, send notifications, focus sessions
- CLI tool included —
cli/panestreetscript for quick terminal access
- Plugin viewer — See installed Claude plugins with version and scope info
- MCP browser — View configured Model Context Protocol servers
- Memory inspector — Browse project-specific and global Claude memory
- Scheduled tasks — Monitor active Claude Code sessions and scheduled tasks
- Config reader — Reads your Claude configuration automatically
- Branch display — Current branch shown in the footer with dirty indicator
- Expandable branch timeline — Drag-resizable footer showing all branches with ahead/behind counts and commit history
- File diff indicators — Green/red +N/-N counts per file in the file browser
- Inline diff highlighting — Added/deleted lines highlighted when viewing changed files
- Interactive companion — An animated robot that lives in the footer, walks around, and reacts to your work
- Contextual awareness — Detects terminal activity (builds, tests, deploys, errors) and comments on what it sees
- Personality-driven easter eggs — Click the mascot for escalating reactions with attitude
- Configurable frequency — Low, medium, or high activity levels, or disable entirely
- 16 built-in themes — Dark, Midnight Blue, Dracula, Nord, Solarized Dark, Gruvbox Dark, Tokyo Night, One Dark, Catppuccin Mocha, Rose Pine, Kanagawa, Everforest, Synthwave 84, Ayu Dark, Horizon, Moonlight
- Custom themes — Full color editor for every UI and terminal color
- Rebindable keyboard shortcuts — Customize every shortcut with conflict detection
brew tap ben4mn/panestreet
brew install --cask panestreetGrab the latest .dmg from the Releases page.
Note: The app is not yet code-signed. On first launch, macOS Gatekeeper will block it. To open:
- Right-click the app → Open → click Open in the dialog
- Or go to System Settings → Privacy & Security → click Open Anyway
You only need to do this once.
Requires Node.js (18+), Rust, and the Tauri CLI.
git clone https://github.com/ben4mn/PaneStreet.git
cd PaneStreet
npm install
npm run tauri buildThe .dmg (macOS), .msi (Windows), or .AppImage (Linux) will be in src-tauri/target/release/bundle/.
npm run tauri devAll shortcuts are rebindable in Settings → Keyboard Shortcuts.
| Action | Default Shortcut |
|---|---|
| New Terminal | ⌘ N |
| Close Terminal | ⌘ W |
| Settings | ⌘ , |
| Toggle Sidebar | ⌘ B |
| File Browser | ⇧ ⌘ E |
| Maximize Pane | ⇧ ⌘ Enter |
| Minimize Pane | ⌘ M |
| Restore All | ⇧ ⌘ M |
| Toggle Layout Mode | ⇧ ⌘ G |
| Previous Pane | ⇧ ⌘ [ |
| Next Pane | ⇧ ⌘ ] |
| Navigate Up/Down/Left/Right | ⌘ ⌥ Arrow |
| Notifications | ⌘ I |
| Switch to Pane 1–9 | ⌘ 1 – ⌘ 9 |
| Close Panel / Overlay | Escape |
| Layer | Technology |
|---|---|
| Framework | Tauri 2.x |
| Backend | Rust (tokio, portable-pty, git2, keyring) |
| Frontend | Vanilla HTML/CSS/JS |
| Terminal | xterm.js 6.0 with WebGL addon |
| Icons | Custom robot mascot + SVG terminal icon |
PaneStreet/
├── src/ # Frontend (HTML/CSS/JS)
│ ├── index.html # App shell
│ ├── css/main.css # Styles + 16 theme definitions
│ └── js/
│ ├── app.js # Core: layout engine, sessions, shortcuts
│ ├── config-panels.js # Settings, themes, plugins, MCPs, memory
│ ├── file-viewer.js # File browser panel
│ └── terminal.js # xterm.js session wrapper
├── src-tauri/ # Backend (Rust)
│ └── src/
│ ├── lib.rs # Tauri command registry
│ ├── pty_manager.rs # PTY spawning, I/O, resize
│ ├── config_reader.rs # Claude config/plugin/MCP reader
│ ├── worktree_manager.rs # Git operations
│ ├── status_detector.rs # Process status detection
│ ├── socket_server.rs # Unix socket API for external control
│ ├── file_viewer.rs # Directory & file reading
│ └── auth_manager.rs # Keyring-based API key storage
├── cli/ # CLI tool for socket API
└── docs/ # GitHub Pages site
Freeform window management with interactive robot companion
Built-in file viewer with syntax highlighting and markdown rendering
Claude session monitor and scheduled tasks
Project memory and CLAUDE.md viewer
Fully rebindable keyboard shortcuts with conflict detection
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 (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
MIT — free to use, modify, and distribute. Attribution required (keep the copyright notice).
Built by ben4mn

