Splits for VS Code

Splits is a high-performance multi-monitor split terminal orchestrator built specifically for Visual Studio Code. It combines an interactive visual blueprint canvas with native VS Code theme integration, POSIX pseudo-terminal line discipline, and multi-display topology management.
Whether you run dual 4K monitors, an ultra-wide display, or a laptop on the go, Splits allows you to design, persist, and launch tailored split terminal workspaces for every project.
🚀 Key Features
🖥️ Multi-Monitor Display Topology
- Hardware Display Detection: Automatically identifies connected physical monitors with accurate resolutions, positioning, and scaling factors.
- Per-Monitor Split Layouts: Design custom split grids for Screen 1 (VS Code editor tab) and auxiliary displays (Screen 2, Screen 3, etc.) within the same workspace.
- Single-Click Multi-Screen Launch: Launching a workspace opens your primary terminal layout inside VS Code and deploys dedicated companion terminal windows directly onto your extended monitors.
📐 Interactive Visual Blueprint Canvas
- Drag & Move Split Terminals: Drag split panes around the canvas to swap positions or dock to any edge (left, right, top, bottom). Remaining splits automatically adjust to fill available space.
- Draw-to-Split Laser Lines: Click and drag across any pane vertically or horizontally to split it in seconds with magnetic snapping (25%, 33%, 50%, 66%, 75%).
- Interactive Divider Resizing: Drag split divider hairlines to fine-tune width and height ratios with live visual feedback.
- Instant Preset Layouts: One-click 2×2 quad presets and horizontal/vertical quick-splits.
⚡ Startup Commands & Per-Pane Configurations
- Auto-Run Startup Sequences: Configure commands (e.g.,
npm run dev, cargo watch -x run, docker compose up) that execute automatically when the workspace launches.
- Custom Working Directory (CWD): Specify distinct working directories per pane with folder browsing dialogs.
- Environment Variables: Inject custom environment variables (
PORT=3000, NODE_ENV=development) into individual terminal sessions.
- Per-Pane Shell Selection: Assign distinct shells per pane (Zsh, Bash, PowerShell, Command Prompt, or custom binaries).
🎨 Native VS Code Look & Feel
- Adaptive Theme Engine: Automatically inherits your active VS Code color theme, syntax highlighting, and editor font configurations.
- IntelliSense-Style Suggestions: Contextual command suggestions with symbol palettes (
$, >_, fx, {}) rendered with native VS Code IntelliSense geometry.
- Distraction-Free Focus: High-contrast active headers, 2px top accent line, and clean 1px hairline dividers with zero outer margins or gutters.
- True POSIX PTY: macOS/Linux execution uses a genuine Python 3 pseudo-terminal bridge (
pty.openpty() + TIOCSWINSZ) for complete login shell and line-discipline fidelity.
Splits contributes a dedicated view container to the VS Code Activity Bar:
- Workspaces View:
- Manage, create, rename, duplicate, and delete project workspaces.
- One-click Launch (
▶) and Stop (⏹) buttons synced live with running terminal sessions.
- Dedicated Workspace Editor action to open the Blueprint Canvas.
- Displays Detected View:
- Live hardware status showing connected physical monitors, resolutions, and primary display tags.
- Manage configured screen layouts per workspace and add/remove extended monitor splits.
- Pane Inspector View:
- Inspect and edit selected split pane title, CWD, shell profile, startup commands, and environment variables.
⌨️ Keyboard Shortcuts & Commands
| Command |
Title |
Default Shortcut |
splits.openBeside |
Splits: Launch Workspace |
Cmd+Shift+\`` / Ctrl+Shift+`` |
splits.openStudio |
Splits: Open Workspace Editor |
Command Palette |
splits.newWorkspace |
Splits: New Workspace |
Command Palette / Sidebar Header |
splits.splitVertical |
Splits: Split Active Pane Vertically |
Editor Title Menu |
splits.splitHorizontal |
Splits: Split Active Pane Horizontally |
Editor Title Menu |
splits.presetQuad |
Splits: Apply 2×2 Quad Preset |
Editor Title Menu |
splits.stopWorkspace |
Splits: Stop Workspace Terminals |
Sidebar / Editor Title |
splits.refreshMonitors |
Splits: Refresh Connected Displays |
Displays View Header |
⚙️ Configuration Settings
Configure Splits via VS Code Settings (Cmd+, or Ctrl+,):
{
// Default shell executable path (empty string inherits VS Code terminal default shell)
"splits.defaultShell": "",
// Terminal font size
"splits.fontSize": 13,
// Terminal font family (empty string inherits VS Code editor font)
"splits.fontFamily": "JetBrains Mono, Menlo, Monaco, Consolas, monospace",
// Number of scrollback buffer lines retained per split pane
"splits.scrollback": 5000,
// Automatically copy selected terminal text to clipboard
"splits.copyOnSelect": false,
// Enable contextual shell suggestions and completions
"splits.autoSuggestions": true,
// Suggestion source filter ("all", "sources", "ai")
"splits.suggestionSourceFilter": "all"
}
👤 Author & Organization
📄 License
Splits is licensed under the MIT License.
| |