Skip to main content

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 systemProfiles TermFlow detectsInitial default
WindowsPowerShell 7 (or Windows PowerShell if 7 isn't installed), Command Prompt, Git Bash (if installed), Cygwin Bash (if installed), one entry per installed WSL distributionPowerShell
macOSZsh, Bash, Fish (if installed)Zsh
LinuxZsh (if installed), Bash, Fish (if installed)Zsh when present, otherwise Bash
note

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.

tip

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.

info

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