Tabs
Independent terminal tabs, each with its own panes and working directory.
Tabs are Mel's top-level workspaces. Each tab holds its own pane layout — one pane or a whole split tree — and every pane in every tab keeps running whether it's visible or not, so a build in a background tab finishes while you work elsewhere.
Shortcuts
| Action | Windows and Linux | Mac |
|---|---|---|
| New tab | Ctrl+Shift+T | ⌘T |
| Close active pane (closes the tab on its last pane) | Ctrl+Shift+W | ⌘W |
| Next tab | Ctrl+PageDown or Ctrl+Tab | ⌘PageDown or ⌃Tab |
| Previous tab | Ctrl+PageUp or Ctrl+Shift+Tab | ⌘PageUp or ⌃⇧Tab |
| Go to tab 1 to 8 / the last tab | Ctrl+1 … Ctrl+8 / Ctrl+9 | ⌘1 … ⌘8 / ⌘9 |
| Rename the current tab | F2 | F2 |
These work even while the prompt is focused, and tab switching works inside full-screen TUI sessions too — Mel takes the key and it never reaches the underlying program. Any of them can be changed in Settings → Keyboard shortcuts.
If you've starred a tab config as your default, the new-tab key opens that config — panes, directories, and startup commands included — instead of a blank tab.
Where tabs live
Tabs render in the left sidebar (the vertical tabs rail), not a horizontal strip. Each pane gets its own row there: click to focus, hover ✕ or middle-click to close, double-click to rename, right-click for the context menu with rename, close, and color options. A color you pick tints the owning tab.
The + button in the titlebar opens the new-tab menu: a plain new tab, your saved tab configs, git worktree entries for tracked repos, and "New Tab Config" to author a new recipe.
Titles
A tab's title follows the active pane's working directory by default. Titles can also be set by:
- You — double-click the pane's sidebar row and type.
- An agent conversation — starting one retitles the tab to the conversation's title.
- A tab config — the
titlefield (with{{param}}substitution) names tabs it opens.
After a restart
With Settings → Features → Restore tabs and panes on start on, Mel reopens your tabs, panes and folders when it starts — the layout only (plus the conversation a pane held), never the commands that were running. Warn before quitting asks before Mel closes while a command, a background job or an agent is still running.
Independence
Each tab is a fully independent pane tree. Pane IDs are globally unique, splits in one tab never affect another, and closing a tab cleans up its PTYs and agents. See Split panes for working within a tab and Sessions for per-pane state.
Related
- Vertical tabs — the sidebar rail
- Tab configs — reusable TOML tab recipes
- Tab customization — density and row content