Fish (Friendly Interactive Shell) is a smart, user-friendly command-line shell designed to be feature-rich by default without requiring extensive configuration. Unlike Bash or Zsh, Fish prioritizes discoverability and ease of use, providing syntax highlighting, autosuggestions, and tab completions that work immediately after installation with nothing to learn or configure. Fish addresses the common complaint that traditional Unix shells are hostile to newcomers and require significant setup to become productive.
Fish stands out with its always-on autosuggestions based on command history and the current directory, real-time syntax highlighting that colors incorrect commands in red, and feature-rich tab completion supporting file paths, wildcards, brace expansion, and command-specific completions. It includes a web-based configuration interface for customizing colors and settings without editing files, supports scripting with a cleaner syntax than Bash, and provides searchable command history. Fish intentionally departs from POSIX shell standards to offer a more intuitive scripting language.
Fish is ideal for developers, system administrators, and command-line users who want a productive shell experience out of the box without investing time in configuration. It is particularly well-suited for users transitioning from graphical interfaces to the command line, as its interactive features reduce the learning curve significantly. Fish runs on Linux, macOS, and other Unix-like systems, and has a growing ecosystem of plugins through frameworks like Fisher and Oh My Fish, though most users find it complete enough without additional configuration.