← All open source projects

fish shell

fish-shell/fish-shell

fish shell is a friendly interactive command-line shell for macOS, Linux, and Unix-like systems.

Forks 2,315
Author fish-shell
Language Rust
License NOASSERTION
Synced 2026-06-27

In Short

fish shell makes the command line friendlier without a long setup: syntax highlighting, autosuggestions while typing, and useful completions work immediately.

What It Is

fish shell is an interactive command-line shell that aims to be smart and friendly from the first launch. It serves the same role as bash or zsh, but puts more weight on user experience.

What Is Inside

The project contains the shell itself, documentation, tests, and the fishshell.com site. The modern codebase is developed in Rust, while users see features such as syntax highlighting, history suggestions, and practical completions.

How People Use It

fish is often used as a daily shell on a local machine. It gives clearer command entry, fewer mistakes in long lines, and fast history access without forcing users to assemble a large configuration file.

Example

Changing The Shell

The example shows the cautious order: add fish to the allowed shell list and make it the user shell.

Language: Bash
command -v fish | sudo tee -a /etc/shells
chsh -s "$(command -v fish)"

Strengths

fish’s strength is its default behavior. A new user does not need to start with themes, extension sets, and dozens of settings before the shell becomes useful.

Limits

The main limitation is POSIX shell compatibility. Scripts written for `/bin/sh` or bash cannot always be pasted into fish, so fish is best used interactively while portable scripts stay separate.

Project Context

fish shell is maintained in the fish-shell/fish-shell repository; its public history starts on 2012-05-10. The primary metadata language is Rust, and the license is NOASSERTION. The project also has a dedicated site: https://fishshell.com.

This context keeps the page grounded in a specific repository: the project has an owner, technical base, license, change history, and real constraints of its ecosystem.

fish shell should be evaluated through a concrete scenario: who will maintain it, where it fits in the existing stack, which updates must be tracked, and what happens if it fails. That view is more useful than installing a project just because it is popular, because open source helps only when its role in the system is clear to the team.