Skip to main content

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.

The session is handed over, not respawned

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

ActionHow
Open a new empty windowRight-click a tab or pane → Open New Window · on macOS also Cmd+N
Tear a tab into its own windowDrag the tab out of the window and drop it on empty space
Tear a pane into its own windowDrag the pane out of the window and drop it on empty space
Move a tab/pane by menuRight-click → Move to New Window
ReattachDrag 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.

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 / gestureResultPlatforms
Cmd+NOpen New WindowmacOS (native menu)
Right-click → Open New WindowNew empty windowAll
Right-click → Move to New WindowLive-move tab/pane to a new windowAll
Drag tab/pane to empty spaceTear off into a new windowAll
Drag tab/pane onto another windowReattachAll
Esc (mid-drag)Cancel the dragAll

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.