← Downloads

fish 4.8.1

Package v4.8.1 x86_64 TAR.XZ July 20, 2026

An interactive shell with autosuggestions, syntax highlighting, and completions generated from man pages, all working with no configuration. Deliberately not POSIX compatible.

Download TAR.XZ Project website ↗

Download Mirrors

Mirror Region Download
fish shell (Official) Primary Global Download
GitHub Releases Global Download

fish is the most pleasant shell out of the box, and it achieves that partly by not being POSIX compatible. Both halves of that sentence are the whole story.

What works with zero configuration

Autosuggestions from your history as you type, shown in grey and accepted with the right arrow.

Syntax highlighting that shows an invalid command in red before you press enter.

Completions generated from man pages, so options are completed with their descriptions for commands nobody wrote completions for.

A web configuration interface via fish_config.

No plugins, no framework, no .fishrc to assemble. This is the argument for fish, and it is a strong one.

The incompatibility is real

# bash
export VAR=value
if [ -f file ]; then echo yes; fi
for i in $(seq 5); do echo $i; done

# fish
set -x VAR value
if test -f file; echo yes; end
for i in (seq 5); echo $i; end

Simple commands paste and run fine. Anything with a variable assignment, an export, or command substitution needs translating, and documentation everywhere assumes bash.

Whether that is a small tax or a constant irritation depends on how often you paste commands from the internet, which for most people is often.

Scripts are a separate question

chsh -s "$(which fish)"

Changing your login shell does not affect scripts, which run under their shebang. A common and sensible arrangement is fish interactively and bash for scripting, because they solve different problems.

Our shell comparison covers the choice, and bash quoting applies to the scripts you write regardless.

Installing

sudo apt install fish        # Debian and Ubuntu
sudo dnf install fish        # Fedora
sudo pacman -S fish          # Arch

Try it without committing:

fish        # just run it, exit to return to your normal shell

Verify Your Download

Release archives on GitHub are published with checksums and signatures.