| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions that just work, with no configuration required.
For downloads, screenshots and more, go to https://fishshell.com/.
fish generally works like other shells, like bash or zsh. A few important differences can be found at https://fishshell.com/docs/current/tutorial.html by searching for the magic phrase “unlike other shells”.
Detailed user documentation is available by running help within fish, and also at https://fishshell.com/docs/current/index.html
fish can be installed:
Note: The minimum supported macOS version is 10.12.
Packages for Debian, Fedora, openSUSE, and Red Hat Enterprise Linux/CentOS are available from the openSUSE Build Service.
Packages for Ubuntu are available from the fish PPA, and can be installed using the following commands:
sudo apt-add-repository ppa:fish-shell/release-4 sudo apt update sudo apt install fish
Instructions for other distributions may be found at fishshell.com.
If packages are not available for your platform, GPG-signed tarballs are available from fishshell.com and fish-shell on GitHub. See the Building section for instructions.
Once installed, run fish from your current shell to try fish out!
Running fish requires:
The following optional features also have specific requirements:
Compiling fish requires:
Sphinx is also optionally required to build the documentation from a cloned git repository.
Additionally, running the full test suite requires diff, git, Python 3.5+, pexpect, less, tmux and wget.
Rather than building from source, consider using a packaged build for your platform. Using the steps below makes fish difficult to uninstall or upgrade. Release packages are available from the links above, and up-to-date development builds of fish are available for many platforms
To install into /usr/local, run:
mkdir build; cd build
cmake ..
cmake --build .
sudo cmake --install .The install directory can be changed using the -DCMAKE_INSTALL_PREFIX parameter for cmake.
In addition to the normal CMake build options (like CMAKE_INSTALL_PREFIX), fish's CMake build has some other options available to customize it.
You can also build fish with Cargo. This example uses uv to install Sphinx (which is used for man-pages and --help options). You can also install Sphinx another way and drop the uv run --no-managed-python prefix.
git clone https://github.com/fish-shell/fish-shell
cd fish-shell
# Optional: check out a specific version rather than building the latest
# development version.
git checkout "$(git for-each-ref refs/tags/ | awk '$2 == "tag" { print $3 }' | tail -1)"
uv run --no-managed-python \
cargo install --path .This will place standalone binaries in ~/.cargo/bin/, but you can move them wherever you want.
To disable translations, disable the localize-messages feature by passing --no-default-features --features=embed-manpages to cargo.
You can also link this build statically (but not against glibc) and move it to other computers.
Here are the remaining advantages of a full installation, as currently done by CMake:
See the Guide for Developers.
Questions, comments, rants and raves can be posted to the official fish mailing list at https://lists.sourceforge.net/lists/listinfo/fish-users or join us on our matrix channel. Or use the fish tag on Unix & Linux Stackexchange. There is also a fish tag on Stackoverflow, but it is typically a poor fit.
Found a bug? Have an awesome idea? Please open an issue.
| Back | FazBrowse Home | New Git URL |