Windows & Tear-Off
TermFlow is a multi-window terminal. You can pull a tab or a split pane out into its own operating-system window, drop it back onto another window to reattach it, and open fresh empty windows on demand — all without restarting the shell that's running inside.
The one thing that makes tear-off different
When you tear a tab or pane out of its window, TermFlow hands over the live PTY to the new window. The running process, its scrollback, and its working directory all move across intact.
Tearing off does not kill your shell and start a fresh one. A long-running build, an SSH session, a tail -f, or a coding agent mid-task keeps running through the move. You are relocating the same live terminal, not opening a new copy of it.
Ways to work with windows
| Action | How |
|---|---|
| Open a new empty window | Right-click a tab or pane → Open New Window · on macOS also Cmd+N |
| Tear a tab into its own window | Drag the tab out of the window and drop it on empty space |
| Tear a pane into its own window | Drag the pane out of the window and drop it on empty space |
| Move a tab/pane by menu | Right-click → Move to New Window |
| Reattach | Drag the tab/pane and drop it onto another TermFlow window |
Open New Window
Open New Window creates a fresh, empty TermFlow window with a new terminal — nothing is moved out of your current window. It's available from the right-click menu on any tab or pane.
On macOS it's also wired to the native menu shortcut Cmd+N. Windows and Linux don't have a native application menu, so use the right-click Open New Window item there.
Tear off by dragging
Grab a tab (or a pane) and drag it out past the edge of its window. When you release over empty space, a new OS window opens and the terminal is handed over to it. If the tab you dragged was one of several in the window, the others stay where they are; if it was the last one, the original window closes with it.
Window A Window B (new)
┌───────────────────────────┐ ┌───────────────────────────┐
│ [ build ] [ logs ] [ ssh]│ drag │ [ ssh ] │
│ ┌─────────────────────┐ │ ─────► │ ┌─────────────────────┐ │
│ │ $ ssh prod │ │ "ssh" │ │ $ ssh prod │ │
│ │ (live session) │ │ torn off │ │ (SAME live session) │ │
│ └─────────────────────┘ │ │ └─────────────────────┘ │
└───────────────────────────┘ └───────────────────────────┘
Move to New Window (right-click)
If dragging is awkward — a trackpad, a precise layout you don't want to disturb — right-click the tab or pane and choose Move to New Window. It performs the same live handoff without the drag gesture.
An honest note: for tabs, Move to New Window is hidden when the tab is the only tab in its window — there'd be nothing to move it away from, so the menu simply doesn't offer it.
Reattach by dropping onto another window
To merge windows back together, drag a tab or pane and drop it onto another TermFlow window instead of onto empty space. The terminal reattaches to that window — again, with the live PTY carried over.
The drag preview
While you drag, a small window-shaped preview follows your cursor so you can see what you're carrying and where it will land. On Windows and macOS this is a real floating OS preview window.
An honest note — graceful degradation: on Linux, and in non-native builds (browser/dev), the native floating preview is replaced by an in-app "ghost" card that follows the cursor instead. This is a deliberate fallback — the native preview can misbehave in the Linux windowing event loop — and the tear-off and reattach behavior itself works the same everywhere. You just see a lighter-weight preview.
Related: dropping panes to split across windows
Tear-off shares the same drag machinery as split-pane rearranging. When you drop a pane onto another pane rather than onto empty space, TermFlow reads the drop zone — the outer edge of the target splits on that side, the center swaps the two panes — and this works within a tab, across tabs, and across windows. Press Esc at any time during a drag to cancel it. See Split Panes for the full drop-zone behavior.
Quick reference
| Shortcut / gesture | Result | Platforms |
|---|---|---|
| Cmd+N | Open New Window | macOS (native menu) |
| Right-click → Open New Window | New empty window | All |
| Right-click → Move to New Window | Live-move tab/pane to a new window | All |
| Drag tab/pane to empty space | Tear off into a new window | All |
| Drag tab/pane onto another window | Reattach | All |
| Esc (mid-drag) | Cancel the drag | All |
Next steps
- Tabs — create, reorder, rename, and close the tabs you'll be tearing off.
- Split Panes — split, resize, and rearrange panes, including drop-zone splitting across windows.