
fish
Interactive command line shell with syntax highlighting, autosuggestions, and tab completions that work without configuration
Fish is an interactive command line shell that provides enhanced usability features without requiring configuration. It includes syntax highlighting that colorizes commands as you type, autosuggestions that complete commands based on history and manual pages, and tab completions that work intelligently across different command contexts.
The shell maintains compatibility with standard shell operations while adding user-friendly enhancements. Fish automatically generates completions from manual pages using Python, provides a web-based configuration tool accessible through fish_config, and includes clipboard integration with standard Ctrl-V/Ctrl-X bindings. It supports advanced features like command substitution, job control, and custom functions while maintaining a focus on discoverability.
Fish targets users who want an enhanced shell experience without extensive configuration. It runs on macOS, Linux, and Windows (via WSL, Cygwin, or MSYS2), making it accessible across development environments. The shell is implemented in Rust with CMake build system, and provides both traditional package installation and standalone binary deployment options.
Installation
# via Homebrew
brew install fish
# via Ubuntu PPA
sudo apt-add-repository ppa:fish-shell/release-4 && sudo apt update && sudo apt install fish
# via Cargo
cargo install --path .
Alternatives & related tools
atuin
Shell history management with SQLite storage, search interface, and encrypted sync across machines
zoxide
Smart cd replacement that remembers frequently used directories for quick navigation
Nushell
Structured data shell that treats commands and files as typed data rather than raw text streams
genact
Terminal program that prints fake activity output (compilers, builds, botnets, downloads) to look busy. Runs natively or in a browser via WebAssembly.
starship
Cross-shell prompt that displays contextual information about Git repos, programming languages, and system status
add a badge to your README
Maintain fish? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/fish?utm_source=badge)<a href="https://www.trmn.sh/tools/fish?utm_source=badge"><img src="https://www.trmn.sh/badge/fish.svg" alt="Featured on trmn" height="20"></a>