How to Change the Default Terminal in VS Code

Switch VS Code's default integrated terminal from PowerShell or zsh to any shell you prefer. Pick from detected profiles or configure a custom shell path.

4 min read

To change the default terminal in VS Code, open the dropdown next to the + button in the terminal panel and select Select Default Profile. Pick any shell installed on your machine and VS Code uses it for every new terminal from then on.

If you need custom shell arguments or environment variables instead of just a different default shell, see how to create and configure terminal profiles.

The quick way: Select Default Profile

The fastest method picks from shells that VS Code has already detected.

Open the terminal dropdown

Click the dropdown arrow next to the + button in the top-right corner of the terminal panel. This opens a list of all detected shell profiles.

Choose Select Default Profile

At the bottom of the list, select Select Default Profile. A Quick Pick menu appears showing every available shell on your system.

Pick your shell

Select the shell you want as the default. Common options include Git Bash, Command Prompt, WSL, zsh, bash, fish, and PowerShell. VS Code saves your choice immediately.

Open a new terminal

Click the + button or press Ctrl+Shift+** (Windows/Linux) or **Cmd+Shift+ (macOS). The new terminal opens with your chosen default shell. Existing terminals are not affected.

The active shell name appears in the terminal tab label. You can confirm the change by running a shell version command like zsh --version or bash --version. For more ways to work with multiple shells at once, see how to split terminals and run multiple terminals.

The settings.json way

If you prefer to configure the default directly in settings, or you need to set a custom shell path that VS Code did not detect, use settings.json.

Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run Preferences: Open User Settings (JSON). Add one of these settings based on your platform:

jsonjson
{
  "terminal.integrated.defaultProfile.windows": "Git Bash",
  "terminal.integrated.defaultProfile.linux": "zsh",
  "terminal.integrated.defaultProfile.osx": "bash"
}

Each key takes the exact name of a profile already defined in your settings.

If you type a name that does not match an existing profile, the Settings editor rejects the value. If you enter a mismatched name by editing settings.json directly, opening a new terminal shows an error instead of launching a shell.

What shells VS Code detects automatically

VS Code scans for shells at well-known installation paths and adds them as detected profiles. Here is what it finds by default on each platform:

PlatformDetected shells
WindowsPowerShell, PowerShell 7 (pwsh), Command Prompt, Git Bash, WSL distributions
macOSbash, zsh, fish (if installed at standard paths)
Linuxbash, zsh, fish, sh (if installed at standard paths)

If your shell is installed at a non-standard location, VS Code may not detect it automatically. In that case, create a custom terminal profile with an explicit path.

Set a different default per workspace

You can set one default terminal for all projects and override it for a specific workspace.

Open Settings for the workspace

Open the workspace you want to customize, then open Settings with Ctrl+, (Windows/Linux) or Cmd+, (macOS).

Switch to the Workspace tab

Click the Workspace tab at the top of the Settings editor.

Set the profile

Search for terminal.integrated.defaultProfile and enter the profile name for your current platform.

The workspace setting takes priority over your user setting for that project only. VS Code applies the workspace default whenever you open that folder.

What to do if the new default does not work

If new terminals fail to open after changing the default, the profile name in your setting likely does not match an existing profile.

First, check what profiles are available. Open the Command Palette and run Terminal: Select Default Profile. The list shows the exact names of every available profile. Use one of those names in your settings.json or pick it from the list.

If your preferred shell is not in the list, it was not detected. Create a profile manually in settings.json with a path pointing to the shell executable, as described above.

Rune AI

Rune AI

Key Insights

  • Run Terminal: Select Default Profile from the Command Palette to pick a new default.
  • VS Code auto-detects PowerShell, Git Bash, WSL, zsh, bash, fish, and more.
  • Set terminal.integrated.defaultProfile.{platform} in settings.json for precise control.
  • The setting can be User-scoped or Workspace-scoped for per-project defaults.
  • Close existing terminals and open new ones to see the change take effect.
RunePowered by Rune AI

Frequently Asked Questions

Why does VS Code keep opening PowerShell when I want Git Bash instead?

The default terminal profile is set to PowerShell on Windows. Run Terminal: Select Default Profile from the Command Palette and pick Git Bash from the list. VS Code remembers this choice across sessions.

How do I set a different default terminal per workspace?

VS Code's terminal.integrated.defaultProfile settings can be set at the User level (applies everywhere) or the Workspace level (applies only to the current project). Open Settings, switch to the Workspace tab, and configure the setting there.

I changed the default but new terminals still open the old shell. What happened?

New terminals opened with the + button after changing the default will use the new profile. Terminals already open retain their original shell. Close existing terminals first, then open a new one.

Conclusion

Changing the default terminal takes one command and a single click. VS Code detects installed shells automatically and remembers your choice. Use Terminal: Select Default Profile for the quickest path, or edit settings.json directly when you need custom arguments.