The integrated terminal is one of the most used parts of VS Code, but on Windows it opens PowerShell by default. Many tutorials, older projects and personal habits assume Command Prompt, while others prefer Git Bash. Constantly switching the shell by hand every time you open a terminal wastes time and breaks your flow. The good news is that VS Code lets you choose exactly which shell opens first, and the setting takes less than a minute.
This guide shows you how to change the default terminal shell on Windows using the visual picker, how to do the same thing in the settings file, and how to fix the situations where VS Code seems to ignore your choice.
Quick Answer
To change the default terminal shell in VS Code on Windows, open a terminal, click the small arrow next to the + button in the terminal panel, and choose Select Default Profile. Pick Command Prompt, PowerShell, Git Bash or any listed shell, and every new terminal will open with that shell from now on. The same choice is stored in settings as terminal.integrated.defaultProfile.windows.
How VS Code Chooses a Terminal Shell
VS Code does not have one built-in shell. Instead it uses profiles, which are named shortcuts to shells installed on your computer. On Windows the usual profiles are PowerShell, Command Prompt and Git Bash, and VS Code can also detect WSL distributions. When you press Ctrl+` to open a terminal, VS Code simply launches whichever profile is marked as the default.
Because a profile is just a pointer to a program, changing the default does not install or remove anything. PowerShell stays on your PC; you are only telling VS Code which one to start first. You can still open any other shell afterwards from the same dropdown menu, side by side with the first.
Method 1: Change the Default Shell with the Profile Picker
This is the easiest and safest route, because you pick from shells VS Code has already detected:
- Open VS Code and show the terminal panel with Terminal > New Terminal or
Ctrl+`. - Look at the top-right of the terminal panel and click the small downward arrow next to the + icon.
- Choose Select Default Profile from the menu.
- Click the shell you want, for example Command Prompt.
- Close the current terminal with the trash icon and open a fresh one. It should start in the shell you picked.
If the shell you want is missing from the list, it is probably not installed, or it is installed somewhere unusual. Git Bash, for example, only appears when Git for Windows is installed on the machine.
Method 2: Set the Default Shell in settings.json
If you prefer working in the settings file, or you want to copy the setup to another machine later, you can set the profile directly:
- Open the Command Palette with
Ctrl+Shift+P. - Run Preferences: Open User Settings (JSON).
- Add this line inside the settings object:
"terminal.integrated.defaultProfile.windows": "Command Prompt" - Save the file and open a new terminal to test.
The name must match the profile name exactly, including spaces and capital letters. "Command Prompt", "PowerShell" and "Git Bash" are the standard names. A typo here is the number one reason the setting appears to do nothing. Microsoft’s documentation on terminal profiles in VS Code lists the built-in profile names and shows how to define custom ones with your own paths and arguments.
How to Open a Different Shell Without Changing the Default
Changing the default does not lock you in. Click the arrow next to the + button at any time and choose another profile to open that shell in a new tab. You can even split the terminal with the split icon so PowerShell and Command Prompt sit next to each other. This is handy when a guide gives commands for one shell but your daily work happens in another, for instance when you follow steps for running a Python file from the Windows terminal step by step and want to compare how each shell behaves.
Make a Folder Use Its Own Shell with Workspace Settings
Sometimes one project needs a different shell from everything else, for example a legacy project whose build scripts only work in Command Prompt. Instead of changing your global default back and forth, add the setting to the workspace:
- Open the project folder in VS Code.
- Open the Command Palette and run Preferences: Open Workspace Settings (JSON).
- Add the same
terminal.integrated.defaultProfile.windowsline with that project’s shell. - Terminals opened while this folder is active will use the workspace choice, while other folders keep your global default.
Troubleshooting: VS Code Ignores Your Default Shell
The old terminal is still open
Changing the default only affects new terminals. A terminal that is already running keeps the shell it started with. Close it with the trash icon and open a new one before deciding the setting failed.
An old setting is overriding the new one
Very old VS Code setups used a setting called terminal.integrated.shell.windows, which is now deprecated. If that line still exists in your settings file it can confuse things. Delete it and keep only the modern defaultProfile setting.
The profile name is misspelled
Compare your settings value character by character with the name shown in the profile picker. "CommandPrompt" or "cmd" will not match the profile called "Command Prompt".
A workspace or remote setting wins
Workspace settings override user settings, and remote settings override both when you are connected to WSL or a server. If the default changes back in one folder only, check that folder’s .vscode/settings.json file.
Common Mistakes to Avoid
- Editing the wrong settings file. Make sure you are in User Settings (JSON), not the read-only default settings view.
- Forgetting the comma. JSON settings need commas between lines; a missing comma makes VS Code ignore the whole block.
- Expecting open terminals to switch. They never do; always test with a brand-new terminal.
- Uninstalling PowerShell. There is no need. Other tools on Windows depend on it, and changing a default is not a reason to remove a shell.
Conclusion
Your default terminal shell in VS Code is controlled by one profile setting, and changing it takes under a minute through the Select Default Profile menu. Set it once to Command Prompt, Git Bash or whichever shell matches your workflow, use workspace settings for special projects, and remember that only new terminals reflect the change. With that friction gone, the terminal becomes a tool you open without thinking twice.
Frequently Asked Questions
What is the default terminal shell in VS Code on Windows?
On a fresh install, VS Code uses PowerShell as the default profile on Windows. You can change it to Command Prompt, Git Bash or a WSL distribution at any time through the terminal dropdown.
How do I make Git Bash my default VS Code terminal?
Install Git for Windows first so the profile exists. Then open the terminal dropdown, choose Select Default Profile, and pick Git Bash. New terminals will open in Git Bash from that point on.
Why does my terminal still open PowerShell after I changed the setting?
Usually because the terminal you are looking at was opened before the change, or because a workspace setting overrides your user setting. Close all terminals, open a new one, and check the folder’s .vscode/settings.json if the problem only happens in one project.
Can I have two different shells open at the same time?
Yes. Use the dropdown next to the + button to launch any profile in a new tab, and use the split button to view two shells side by side in the same panel.
Does changing the default shell affect Windows itself?
No. The setting only controls what opens inside VS Code. Windows Terminal, Command Prompt and PowerShell outside VS Code keep their own defaults, completely separate from this choice.


Leave a Reply