Tabs
Every terminal session in TermFlow lives in a tab. This page covers how to create, select, close, reorder, rename, and color tabs — and how to read the little indicators that tell you what each background tab is doing.
The tab strip
The tab strip runs along the top of the window. Each tab shows a shell icon, a title, any live-status indicators, and a × close button. On the right edge sit the tab tools: scroll arrows (only when tabs overflow), a layout button (📁), the new-tab button (+), and the profile dropdown (▼).
┌─ ‹ ─┬───────────────┬───────────────┬────────────────┬───────────────┬─ › ─┬─ 📁 ─┬─ + ─┬─ ▼ ─┐
│ │ pwsh │ server ● │ [ claude ▐ ]│ build 🔔 │ │ │ │ │
└─────┴───────────────┴───────────────┴────────────────┴───────────────┴─────┴──────┴─────┴─────┘
▲ idle tab MCP/API dot active tab finished, ▲ ▲ ▲ ▲
│ (running sweep) unseen output │ │ │ │
scroll scroll manage new choose
tabs left tabs right layouts tab profile
Tabs that don't fit are handled according to your Tab overflow behavior setting (shrink, scroll, or fixed — default fixed), configured in Appearance settings. The ‹ / › scroll arrows appear only in scroll mode.
Creating a tab
| Action | How |
|---|---|
| New tab with the default profile | Click + |
| New tab with a specific shell profile | Click ▼, then pick a profile from the list |
The ▼ dropdown lists every detected shell profile, each with its icon, and marks your default with a Default badge. It also has a shortcut to open Settings.
There is no Ctrl+T shortcut. That binding is intentionally left unbound in TermFlow — create tabs with the + button or the ▼ dropdown instead.
Agents can also open tabs for you through the MCP server or REST API. Whether those agent-created tabs steal focus is controlled by the Focus new tabs opened by API/MCP option (default off) in Terminal behavior settings.
Selecting a tab
| Shortcut | Result |
|---|---|
Ctrl/Cmd + 1…9 | Jump directly to tab 1 through 9 |
Ctrl + Tab | Next tab |
Ctrl + Shift + Tab | Previous tab |
Or just click a tab. Selecting a tab clears its unseen-output and background-activity indicators.
Closing a tab
There are several ways to close a tab:
| Action | How |
|---|---|
| Keyboard | Ctrl/Cmd + W (closes the active tab) |
| Mouse | Click the tab's × button |
| Middle-click | Click the tab with the mouse wheel/middle button |
| Right-click menu | Choose a close action (see below) |
Right-clicking a tab opens a context menu with four close actions, each with an underlined keyboard mnemonic. Actions that don't apply are disabled at the edges of the strip (for example, Close Tabs to the Right is disabled on the last tab, and all bulk options are disabled when only one tab is open).
| Menu item | Mnemonic | What it closes |
|---|---|---|
| Close Tab | C | The clicked tab |
| Close Tabs to the Right | R | Every tab after the clicked one |
| Close Tabs to the Left | L | Every tab before the clicked one |
| Close Other Tabs | O | Every tab except the clicked one |
The smart close-confirm
Before closing, TermFlow checks what is actually running so it never silently kills work. It queries the live foreground process of each affected tab and:
- Closes immediately, no prompt — when the tab holds only an idle shell, or a shell that has already exited cleanly. Bare shells (
pwsh,bash,cmd,zsh,sh) are filtered out, so an empty prompt never triggers a warning. - Shows a confirm dialog — when a real foreground process is running. The dialog lists those processes by name so you know exactly what will be terminated. For a bulk close, it lists each affected tab and flags the ones with something running.
The process check never blocks the close: if it can't reach the process info, TermFlow falls back to a generic "any running processes will be terminated" confirmation.
An honest note: the close-confirm dialogs are primarily mouse-driven. Use the
×, middle-click, or the right-click menu for the richest control over which tabs close.
Reordering and renaming
- Reorder — drag a tab left or right along the strip and drop it in place.
- Rename — double-click a tab's title to open an inline edit popup, type a new name, and confirm.
Renaming only changes the display label; it doesn't affect the underlying shell or profile.
Per-tab color scheme and title color
The tab right-click menu also lets you style an individual tab, which is handy for telling several similar sessions apart at a glance:
| Submenu | Effect |
|---|---|
| Color Schema 🎨 | Apply a terminal color scheme to just this tab, overriding the global scheme. Reset by re-selecting the default swatch. |
| Tab Color 🏷️ | Tint this tab's title text with an accent color. Choose a swatch, or Reset to Default to clear it. |
Per-tab color schemes are a manual override. TermFlow can also recolor a pane automatically based on which coding agent is running in it — see Agent color schemes.
Reading the tab indicators
An inactive tab can surface four different status glyphs so you know what's happening without switching to it:
| Indicator | Meaning |
|---|---|
| Running style (highlight/sweep) | The tab's process is actively producing output right now |
● (amber dot) | Background activity triggered by an external MCP or REST API call |
🔔 (bell) | The tab finished producing output and you haven't looked at it yet — appears only once the tab goes idle |
⊘ | The shell process exited, but the tab is kept open so you can review the final output |
The ● activity dot and 🔔 bell are distinct on purpose: the dot means "an agent or API is touching this tab," while the bell means "this tab is done and unseen." Focusing the tab clears both.
The ⊘ exited state only appears when you have not enabled "Close tab when its process exits" in Terminal behavior settings. With that option on, the tab closes automatically when its shell ends.
Next steps
- Split panes — divide any tab into multiple terminals side by side.
- Shell profiles — configure the shells that appear in the
▼dropdown and set your default.