Before you start: Create a System Restore Point for your C:/ drive. Always do this before modifying Windows system settings.
Before
After
Fish (Friendly Interactive Shell) is one of several command-line interpreters — alongside bash, zsh, and PowerShell — that sit between you and the operating system. What sets Fish apart is that autocompletion and inline suggestions work out of the box, with zero configuration.
Since Fish is a Unix shell, it doesn't run natively on Windows. You'll need Windows Subsystem for Linux (WSL) to bridge that gap — that's what this guide covers.
Open Command Prompt as Administrator and run:
wsl --installTip: If
Ctrl+Vdoesn't paste in the terminal, use the right mouse button instead.
This command will:
- Enable the WSL and Virtual Machine Platform components
- Download and install the latest Linux kernel
- Download and install the Ubuntu distribution
Once it finishes, restart your machine.
If
wsl --installshows the help menu instead of installing, WSL is already present — skip to Step 2.
If the automatic installation fails, follow Microsoft's manual install guide.
WSL 2 (the recommended version) requires Hyper-V / Virtualization support. Check whether it's enabled in Task Manager under the Performance tab.
If it shows Disabled, restart and enable it in your BIOS — usually found under Advanced or CPU Configuration.
No Hyper-V? You can still install WSL 1, though WSL 2 is strongly recommended.
Open Ubuntu from the Start Menu. If it doesn't appear, find your installed version in the Microsoft Store and click Open.
Wait for the initial setup to finish, then create a username and password when prompted.
Open cmd and run the command bash or wsl to access your Linux (Ubuntu) environment
Add the Fish repository, update your package list, and install:
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update && sudo apt upgrade
sudo apt install fishIf
apt-add-repositoryreturns "not found command" runsudo apt install software-properties-common
That's it — Fish is installed. Launch it by running fish in Linux Terminal (bash or wsl)
Ditch the default terminal. Install Windows Terminal from the Microsoft Store for a modern, tabbed experience.
Oh My Fish (omf) is the plugin and theme manager for Fish. First, make sure Git is available:
sudo apt install gitThen install omf:
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fishThis guide uses bobthefish — a powerline-style theme with Git integration and a clean layout. Browse all available themes here.
omf install bobthefishOpen the Fish config folder in Windows Explorer:
cd ~/.config/fish/ && explorer.exe .Open config.fish and replace its contents with the following, then save:
if status is-interactive
set -g theme_display_git_default_branch yes
set -g theme_title_display_process yes
set -g theme_title_display_path no
set -g theme_title_use_abbreviated_path no
set -g theme_date_format "+%d/%m/%y %H:%M"
set -g theme_display_user yes
set -g theme_display_hostname yes
set -g fish_prompt_pwd_dir_length 6
set -g theme_display_jobs_verbose yes
endResult:
The theme uses special glyphs that require a Nerd Font. Without one, you'll see placeholder boxes [] instead of icons.
This guide uses SauceCodePro Nerd Font. Download the variants you need:
Open each .ttf file and click Install.
In Windows Terminal, click the ∨ arrow next to the tab bar → Settings → Open JSON file (bottom-left corner).
- Under
"profiles"→"defaults":- Rename "Ubuntu" to Fish (or your preferred name)
- Add the theme (colorScheme) "Campbell"
- Set the Fish
"guid"as the default profile for Windows Terminal.
If you want your Terminal to be translucent, add opacity and useAcrylic under "defaults":
"defaults": {
"font": {
"face": "SauceCodePro Nerd Font"
},
"opacity": 50,
"useAcrylic": true
},
"list": [
{
"colorScheme": "Campbell",
"icon": "https://avatars.githubusercontent.com/u/11728505?s=48&v=4",
"guid": "{51855cb2-8cce-5362-8f54-464b92b32386}",
"name": "Fish",
"hidden": false,
"source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc"
}
]Note: Transparency requires Transparency effects to be enabled in Windows:
Start → Settings → Personalization → Colors → Transparency effects On
Run this inside your WSL session to make Fish the default shell for your user:
chsh -s /usr/bin/fishYou may need to restart your WSL session for the change to take effect
Pick one of the two symbol rendering modes and run the corresponding command inside Fish:
PowerLine style:
set -g theme_powerline_fonts yes
set -g theme_nerd_fonts noNerd Fonts style:
set -g theme_powerline_fonts no
set -g theme_nerd_fonts yes| Resource | Link |
|---|---|
| Fish Shell | fishshell.com |
| Fish on GitHub | fish-shell/fish-shell |
| Oh My Fish | oh-my-fish/oh-my-fish |
| omf Themes | Themes Gallery |
| bobthefish | theme-bobthefish |
| Nerd Fonts | ryanoasis/nerd-fonts |
| WSL Install | Microsoft Docs |
| Windows Terminal | Microsoft Store |
Originally written in 2022. Contributions and corrections are welcome via pull request.








