fish

A user-friendly interactive command-line shell for Linux, macOS and other Unix-like systems.

Liked for working well out of the box with little configuration,1234 with built-in autosuggestions, tab completions and syntax highlighting,567 and for syntax with fewer footguns than Bash.89 The main caveats are its lack of `!`-style history expansion1011 and that it is not POSIX-compatible.12
The HN verdict, written from 12 cited comments
13recommend
1warn against
Jan 7, 2026first mention
Oct 17, 2026latest mention
Nov 25 – Oct 26
Used forfor Zsh switchersfor Bash switchersfor scriptingfor serversshelldaily shell

Why people recommend it

Good defaults · 3

Commenters say fish mostly works out of the box, so they rarely need plugins, configs or dotfiles.

kklFeb 25, 2026recommends

“Fish is such a wonderful shell. It’s been my daily driver for many years now”

“I moved to the fish shell 5 years ago.”

Show 1 more

“Exactly why I switched to fish. Fish doesn't come preconfigured exactly how I would like, but it's close enough”

Long-term favorite · 3

Several commenters have used it as their daily driver for years and strongly prefer it to Bash and Zsh.

kklFeb 25, 2026recommends

“Fish is such a wonderful shell. It’s been my daily driver for many years now”

“I love it so much that I pity people that use Bash, Zsh.”

Show 1 more

“I moved to fish for 1 year and I like it even more”

Built-in completions · 3

Autosuggestions, tab completions and syntax highlighting come built in, without Oh My Zsh-style add-ons.

“Fish has autocomplete and syntax highlighting out of the box which is quite neat”

“now I know about `fish` and am learning there are some nice features I never had in ZSH”

Show 1 more

“I moved to fish for 1 year and I like it even more”

Saner syntax · 3

Commenters praise its syntax and functions, and say variables are not split into words unexpectedly.

“No implicit word splitting : spaces in variables won't unexpectedly become separate arguments.”

“I moved to fish for 1 year and I like it even more”

Show 1 more

“For most scripts I use fish, which is my preferred interactive shell too.”

User experience · 2

Commenters value its careful focus on interactive use, even on servers.

“I use fish as my regular shell. Big fan of fish's careful focus on user experience”

“If I'm manually running commands on a server it means I'll likely use it interactively a lot, might as well not suffer”

Caveats and dissent

No history expansion · 2

It does not support `!`-style history expansion, so tcsh and Bash users need workarounds.

“I switched to Fish recently and I continue to be annoyed by its refusal to implement this feature.”

Not POSIX · 1

Fish is not POSIX- or Bourne-compatible, so its syntax differs from standard shells.

“fish is not POSIX-compatible, and not Bourne-compatible”

Imperfect defaults · 1

One commenter says the defaults were not exactly what they wanted, though they adapted to them.

“Exactly why I switched to fish. Fish doesn't come preconfigured exactly how I would like, but it's close enough”

Often compared with

All comments 20

“No implicit word splitting : spaces in variables won't unexpectedly become separate arguments.”

“If I'm manually running commands on a server it means I'll likely use it interactively a lot, might as well not suffer”

“I switched to Fish recently and I continue to be annoyed by its refusal to implement this feature.”

“fish is not POSIX-compatible, and not Bourne-compatible”

“I use fish as my regular shell. Big fan of fish's careful focus on user experience”

“I moved to fish for 1 year and I like it even more”

“I use fish shell and have done a bunch of optimization around async git statuses too.”

“plays nicely with my setup of fish+alac”

“Fish, zoxide, tmux, helix, ripgrep, fd-find, htop. There are many more, but these are the ones that I enjoy using.”

“I love it so much that I pity people that use Bash, Zsh.”

kklFeb 25, 2026recommends

“Fish is such a wonderful shell. It’s been my daily driver for many years now”

“I moved to the fish shell 5 years ago.”

“I do use fish as my default shell.”

“I use fish on my local (mac + homebrew) machine”

“now I know about `fish` and am learning there are some nice features I never had in ZSH”

“Exactly why I switched to fish. Fish doesn't come preconfigured exactly how I would like, but it's close enough”

“Fish has autocomplete and syntax highlighting out of the box which is quite neat”

“For most scripts I use fish, which is my preferred interactive shell too.”

Threads where it came up

Also written as Fish. Data: fish.json. Quotes are verbatim; the verdict and theme labels are written by a model from these comments, and every clause links to its sources.

Keyboard shortcuts
j / kNext / previous item
o or EnterOpen selected item
/Search
g hHome
g tTop
g rRising
g cCategories
tToggle dark mode
?This help