Fish Shell
The user-friendly command line shell for macOS, Linux, and the rest of the family.
fish is an interactive shell with autosuggestions, syntax highlighting and tab completion that works out of the box. In Fish 4.0, the shell implementation was ported from C++ to Rust; supporting scripts and tools use other languages.
Fish, fish-lsp or rust-analyzer?
The shell and the language server are different projects. Fish 4.0 moved the shell’s C++ implementation to Rust; that does not make its scripts, supporting tools or editor integrations Rust programs. Read the Fish team’s account of the port.
- Want an interactive shell? Use Fish for running commands, with built-in autosuggestions and tab completion. After installing it, try a session by running
fish; useexitto return to your previous shell. You do not need to change your login shell for this trial. Fish setup instructions - Editing .fish scripts? fish-lsp adds editor features for the Fish language. It is a separate TypeScript language server, not the Rust rewrite of the shell. Follow its client-specific setup; Fish’s interactive completions are a different feature.
- Editing Rust source files? rust-analyzer provides language-server support for Rust code. Choose the server for the language you are editing, not the language your shell was built with.
Choosing the rest of your command-line setup? Compare terminal, shell, history and file-manager roles →
Sources checked .