
Command line shell with syntax highlighting, autosuggestions, and tab completions that work without configuration.
fish is a command line shell for macOS, Linux, and Unix systems that serves as an alternative to bash, zsh, and other traditional shells. It provides built-in syntax highlighting, autosuggestions as you type, and intelligent tab completions without requiring configuration files or setup.
The shell includes several user-friendly features that distinguish it from other shells: commands are highlighted in real-time to show syntax errors, previously entered commands are suggested automatically based on history and current input, and tab completion works across commands, files, and command-line options. fish also includes a web-based configuration tool (fish_config) and generates completions automatically from manual pages.
fish runs on major Unix-like platforms and requires basic POSIX utilities plus optional dependencies for advanced features like clipboard integration and completion generation. The shell is built with Rust and CMake, with packages available through system package managers like Homebrew, apt, and the openSUSE Build Service. It can also be compiled from source or installed via Cargo for users who need custom builds.
# via Homebrew
brew install fish
# via Ubuntu/Debian
sudo apt-add-repository ppa:fish-shell/release-4 && sudo apt update && sudo apt install fish
# via Cargo
cargo install --path .