Skip to main content

Interface Tour

A guided look at the TermFlow window — the overlay title bar, the pane area, and the banners you'll meet along the way — so every glyph and control has a name before you start driving it.

TermFlow renders its own chrome on top of the OS window. Instead of a traditional menu bar, everything lives in one slim overlay title bar across the top, with the terminal panes filling the rest of the window.

The whole window at a glance

The markers [1][7] below are keyed to the descriptions in the next section.

  [1]      [2]                  [3]                     [4]        [5]
| | | | |
__v________v____________________v_______________________v__________v_____
| (( )) ( )API pwsh | bash *!| node (X)| claude* | [F] + v _ [] X |
|_________________________________________________________________________|
| | |
| Pane A | Pane B |
| $ npm run dev | $ claude |
| | |
| |------------------------------------[7]---|
| | Pane C |
| | $ ./build.sh |
| | .------------------------------------. |
| | | X Session closed (exit 0) | |
| | | Press Ctrl+R for a new session | | [6]
| | | [ Restart ][ Dismiss ] |
| | '------------------------------------' |
|______________________________|__________________________________________|
[7] split divider (drag to resize, 10-90%)

An honest note: the glyphs in the box above are ASCII stand-ins for the real icons (a broadcast/signal mark, a status dot, , 🔔, ). Their exact meanings are spelled out in the tables below.

The overlay title bar

Reading left to right:

MarkerRegionWhat it does
[1]Server-health glyphA small broadcast/signal mark (deliberately not a round dot) that reflects the combined health of the API and MCP servers. It polls every 15 seconds and re-checks the moment you stop or start a server in Settings. Colour carries the state (see below).
[2]"API" target pillA dot + the label API. It shows whether this window receives terminals that agents create over the API/MCP. Click it to make this window the target (a confirmation dialog appears first).
[3]Tab stripThe active tabs, plus the tab-actions on its right: a Manage Layouts button (📁), the New tab button (+), and the profile dropdown ().
[4]New-tab controls+ opens a tab with your default shell profile; opens a menu listing every detected shell profile (the default is badged) and a shortcut to Settings. There is intentionally no Ctrl+T binding.
[5]Window controlsMinimize, maximize/restore, and close. On Windows/Linux these are drawn by TermFlow (as shown). On macOS the OS provides the native traffic-light buttons on the left instead.

Between the tab strip and the window controls sits a draggable gap, so a full row of tabs never butts up against the minimize button — you can always grab there to move the window.

Server-health glyph states [1]

StateColourMeaning
CheckingneutralStatus is being determined on startup.
OnlinegreenBoth the API and MCP servers are up.
PartialamberOne server is stopped (the tooltip names which one — API or MCP).
OfflineredBoth servers are stopped.

Hover the glyph for the exact wording, e.g. "Servers online (API + MCP)" or "Partly offline — MCP server is stopped".

The "API" target pill [2]

When agents create terminals through the local API or the MCP server, those terminals have to land in some window. The API pill marks the window that currently receives them. In a single-window session this is always the window you're looking at, so the pill just confirms it. It matters once you have more than one window open: click the pill in another window and confirm, and new API/MCP terminals start opening there instead.

tip

This is the same "active target" idea as the Focus new tabs opened by API/MCP option in Settings → Terminal Behavior — the pill picks where they open, that setting decides whether they steal focus.

Tabs and their activity indicators

Each tab shows its shell icon (the real binary icon when available), its title, a close ×, and — depending on what's happening inside — one or more indicators. Reorder tabs by dragging; double-click a tab to rename it; right-click for the close menu (Close / Close to Right / Left / Others).

IndicatorAppears asMeaning
RunningThe tab takes on a running styleA foreground process is active in that tab.
External activity dot after the titleBackground activity arrived from an external MCP/API call, on a tab that isn't the active one.
Unseen output🔔 bell after the titleNew output you haven't looked at yet, on an inactive tab.
Exited replaces the tab's iconThe process has exited, but the tab is kept open for review.
note

The activity dot and 🔔 bell only show on tabs that aren't currently focused — once you switch to a tab, there's nothing "unseen" to flag.

The pane area

Below the title bar, the window is filled by the pane area. A tab starts as a single terminal pane and can be split into a recursive tree of panes — split right or split bottom, nested as deep as you like. Drag the divider between two panes ([7]) to resize them, anywhere from 10% to 90%. Each pane runs its own terminal; a small chip in a pane names the coding agent detected running inside it, when there is one.

The session-closed banner [6]

When a pane's process exits but the pane is kept open — every split pane, and tab terminals when Close tab when process exits is off — a session-closed banner slides in at the bottom of that pane. It is purely a prompt; the pane stays put so you can read the final output.

.--------------------------------------------------.
| X Session closed (exit 0) |
| Press Ctrl+R to start a new session |
| [ Restart ][ Dismiss ]|
'--------------------------------------------------'
  • The title reads Session closed, with the exit code appended when there is one (e.g. Session closed (exit 0)).
  • Restart starts a fresh session in place. While the banner is visible, Ctrl+R does the same thing.
  • Dismiss (or the ×) clears the banner and leaves the pane empty.

Next steps

  • Tabs — creating, reordering, renaming, and the smart close confirm.
  • Split panes — splitting, resizing, maximizing, and tearing panes into new windows.