Shell Profiles
A shell profile tells TermFlow which shell to launch in a new tab — and where to start it. Profiles are detected automatically from the shells already installed on your machine; you pick one per tab and choose which is the default.
What a shell profile is
On startup TermFlow scans your system for installed shells and turns each one it finds into a profile. A profile is just a small record — a display name and the path to the shell executable (plus launch arguments and an optional start directory) — so you never have to type an executable path to open a terminal.
Because profiles are detected, not invented, the list you see reflects what is actually on your machine. If a shell isn't installed, it won't appear.
| Operating system | Profiles TermFlow detects | Initial default |
|---|---|---|
| Windows | PowerShell 7 (or Windows PowerShell if 7 isn't installed), Command Prompt, Git Bash (if installed), Cygwin Bash (if installed), one entry per installed WSL distribution | PowerShell |
| macOS | Zsh, Bash, Fish (if installed) | Zsh |
| Linux | Zsh (if installed), Bash, Fish (if installed) | Zsh when present, otherwise Bash |
On Windows, each WSL distribution shows up as its own profile named like WSL - Ubuntu (v2). The * that WSL marks on its own default distribution has no effect on which TermFlow profile is the default — that's set separately (see below).
Picking a profile for a new tab
The new-tab control on the tab strip has two parts:
- The
+button opens a tab with your default profile. - The
▼button opens a dropdown listing every detected profile. The default profile carries a Default badge. Click any profile to open a new tab running that shell.
┌─ New tab dropdown (▼) ──────────────┐
│ PROFILES │
│ 🔷 PowerShell 7 [Default] │
│ ⬛ Command Prompt │
│ 🌿 Git Bash │
│ 🐧 WSL - Ubuntu (v2) │
│ ───────────────────────────────── │
│ ⚙️ Settings │
└─────────────────────────────────────┘
The dropdown also has a Settings shortcut at the bottom that jumps straight to the Settings tab.
There is no Ctrl+T binding for new tabs — it's intentionally left unbound. Use the + button (default profile) or the ▼ dropdown (any profile). See Tabs for the full set of tab shortcuts.
Setting the default and a start directory
Open Settings (Ctrl/Cmd+,) and select the Shell Profiles tab. Each detected profile appears as a card showing its name, its executable path, whether it's the default, and a Start In Directory field.
┌─ Settings › Shell Profiles ─────────────────────────────┐
│ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ PowerShell 7 [ Default ] │ │
│ │ C:\Program Files\PowerShell\7\pwsh.exe │ │
│ │ │ │
│ │ Start In Directory │ │
│ │ [ C:\Users\Dev\projects ] │ │
│ │ Enter absolute path (e.g. C:\Users\Dev) │ │
│ └───────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Command Prompt [ Set as Default ]│ │
│ │ cmd.exe │ │
│ │ Start In Directory [ Leave empty to use default ]│ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
Set the default. On any non-default profile, click Set as Default. That profile gains the Default badge and becomes the shell the + button (and the dropdown's badged entry) opens from then on.
Set a start directory. Type an absolute path into a profile's Start In Directory field to make tabs opened with that profile begin there. Leave the field empty to use the default working directory. This is per-profile, so you can, for example, start your PowerShell tabs in a projects folder while Git Bash starts elsewhere.
Splitting a pane is different from opening a new tab: new panes inherit the live working directory of the pane they split from, rather than the profile's Start In Directory. The Start In Directory setting applies when a tab is created from a profile. See Split panes.
An honest note: The Shell Profiles tab edits the shells TermFlow already found — it does not add new ones from the UI. If a shell you use isn't listed, install it (or make sure it's on the standard path) and restart TermFlow so it re-scans. Programmatic profile management (creating and editing profiles) is available through the Profiles REST API.
Profiles and agents
When an agent opens a terminal for you, it can request a specific profile by id. The MCP create_terminal tool and the REST create-terminal call both accept a profile (shell profile id) parameter — for example powershell, git-bash, or zsh — so an agent can open exactly the shell a task needs. If none is given, TermFlow falls back to your default profile. See How agents drive the terminal.
Next steps
- Settings → Shell Profiles — the full reference for the Shell Profiles settings tab.
- Terminals, panes, and profiles — how profiles fit into TermFlow's core model.