Paneful

Terminal multiplexer,
in your browser

Split panes, organize by project, drag & drop from Finder, sync with your editor — all from a single npm install.

Paneful — split pane terminal in the browser

Everything you need from a terminal

All the power of a dedicated multiplexer with the convenience of a web app.

Split Pane Layouts

Five layout presets: columns, rows, main + stack, main + row, and grid. Cycle through them with Cmd+T or auto-reorganize with Cmd+R.

📁

Project Sidebar

Organize terminals by project. Each project gets its own layout, panes, and working directory. Switch instantly from the sidebar.

Drag & Drop

Drag folders from Finder into the sidebar to create projects. Drag files into terminal panes to paste their paths as shell-escaped arguments.

🔗

Editor Sync

Automatically switches the active project when you focus a different editor window. Click into VS Code, and your terminals follow. Learn how to set it up ↓

Favourites

Save workspace layouts as favourites — name, preset, and per-pane commands. Restore any setup with a single click.

Native macOS App

Install as a standalone app with its own Dock icon and WebKit window. No browser tab needed.

Keyboard Shortcuts

Full keyboard control: split, close, focus by index, move focus, swap panes, toggle sidebar, and cycle layouts — all without touching the mouse.

Auto-Reorganize

Press Cmd+R to let Paneful pick the best layout for your current pane count. Smart defaults, zero effort.

Your terminals follow your editor

Focus a VS Code window and Paneful instantly switches to that project's terminals. Zero clicking, zero context-switching.

VS Code Cursor Zed Windsurf

How it works

You focus an editor window

Switch to your VS Code window for my-api

Paneful detects the change

Reads the frontmost app and window title via the macOS Accessibility API

Matches to a project

Compares the folder name in the title against your Paneful projects

Terminals switch instantly

Sidebar, layout, and all panes switch to my-api

Setup

  1. Grant Accessibility permission

    Add Paneful (native app) or Terminal (CLI) in:

    System Settings Privacy & Security Accessibility
  2. Editor window title includes folder name

    This is the default in VS Code and Cursor. If you've customised your title bar, make sure ${rootName} is present:

    "window.title": "${dirty}${activeEditorShort}${separator}${rootName}"
  3. Toggle on in sidebar

    Click the monitor icon in the sidebar header. Enabled by default.

💡 After updating Paneful, you may need to remove and re-add it in Accessibility settings.

Install in seconds

One command to install. One command to run.

1. Install from npm

Install the CLI globally — this is required for everything else.

$ npm i -g paneful

2. Run

Start the server and open Paneful in your browser.

$ paneful

3. Optional: macOS app

Get a native Dock icon and WebKit window — no browser tab needed.

$ paneful --install-app

CLI commands

Everything runs from the paneful command.

$ paneful # Start server and open browser $ paneful --spawn # Add current directory as a project $ paneful --port 8080 # Use a specific port $ paneful --list # List all projects $ paneful --kill my-project # Kill a project by name $ paneful --install-app # Install as a native macOS app $ paneful update # Update to the latest version

Stay current

$ paneful update

Checks npm for the latest version, installs it globally, and rebuilds the native .app if one exists. The Dock icon stays valid automatically.

Full keyboard control

Never take your hands off the keyboard.

Shortcut Action
Cmd+N New pane (vertical split)
Cmd+Shift+N New pane (horizontal split)
Cmd+W Close focused pane
Cmd+1-9 Focus pane by index
Cmd+Arrow Line start / end in terminal
Ctrl+Shift+Arrow Move focus to adjacent pane
Shift+Arrow Swap focused pane with adjacent
Cmd+D Toggle sidebar
Cmd+T Cycle through layout presets
Cmd+R Auto reorganize panes