Release Notes for fish 2.5.0 (released February 3, 2017)

Platform Changes

Starting with version 2.5, fish requires a more up-to-date version of C++, specifically C++11 (from 2011). This affects some older platforms:


For users building from source, GCC's g++ 4.8 or later, or LLVM's clang 3.3 or later, are known to work. Older platforms may require a newer compiler installed. Unfortunately, because of the complexity of the toolchain, binary packages are no longer published by the fish-shell developers for the following platforms: Installing newer version of fish on these systems will require building from source.

OS X SnowLeopard

Starting with version 2.5, fish requires a C++11 standard library on OS X 10.6 ("SnowLeopard"). If this library is not installed, you will see this error: dyld: Library not loaded: /usr/lib/libc++.1.dylib MacPorts is the easiest way to obtain this library. After installing the SnowLeopard MacPorts release from the install page, run: sudo port -v install libcxx Now fish should launch successfully. (Please open an issue if it does not.) This is only necessary on 10.6. OS X 10.7 and later include the required library by default.

Other significant changes

Notable fixes and improvements

Release Notes for fish 2.4.0 (released November 8, 2016)

Significant changes

Notable fixes and improvements

Release Notes for fish 2.3.1 (released July 3, 2016)

This is a functionality and bugfix release. This release does not contain all the changes to fish since the last release, but fixes a number of issues directly affecting users at present and includes a small number of new features.

Significant changes

Notable fixes and improvements

Release Notes for fish 2.3.0 (released May 20, 2016)

Significant Changes

Backward-incompatible changes

Other Notable Fixes and Improvements

Release Notes for fish 2.2.0 (released July 12, 2015)

Significant Changes

Backward-incompatible changes

These are kept to a minimum, but either change undocumented features or are too hard to use in their existing forms. These changes may break existing scripts.

Other notable fixes and improvements

Release Notes for fish 2.1.2 (released Feb 24, 2015)

fish 2.1.2 contains a workaround for a filesystem bug in Mac OS X Yosemite. #1859

Specifically, after installing fish 2.1.1 and then rebooting, "Verify Disk" in Disk Utility will report "Invalid number of hard links." We don't have any reports of data loss or other adverse consequences. fish 2.1.2 avoids triggering the bug, but does not repair an already affected filesystem. To repair the filesystem, you can boot into Recovery Mode and use Repair Disk from Disk Utility. Linux and versions of OS X prior to Yosemite are believed to be unaffected.

There are no other changes in this release.

Release Notes for fish 2.1.1 (released September 26, 2014)

Important: if you are upgrading, stop all running instances of fishd as soon as possible after installing this release; it will be restarted automatically. On most systems, there will be no further action required. Note that some environments (where XDG_RUNTIME_DIR is set), such as Fedora 20, will require a restart of all running fish processes before universal variables work as intended.

Distributors are highly encouraged to call killall fishd, pkill fishd or similar in installation scripts, or to warn their users to do so.

Security fixes

Other fixes

Release Notes for fish 2.1.0 (released October 28, 2013)

Significant Changes

Other Notable Fixes

Release Notes for fish 2.0.0 (released May 17, 2013)

Significant Changes

Other Notable Fixes

Release Notes for fishfish Beta r2

Bug Fixes

New Features

Release Notes for fishfish Beta r1


New Features

Programmatic Changes


Here are some system call counts for launching and then exiting fish with the default configuration, on OS X. The first column is fish trunk, the next column is with our changes, and the last column is bash for comparison. This data was collected via dtrace.

           before   after    bash    
  open          9       4       5
  fork         28      14       0
  stat        131      85      11
 lstat        670       0       0
  read        332      80       4
 write        172     149       0

The large number of forks relative to bash are due to fish's insanely expensive default prompt, which is unchanged in my version. If we switch to a prompt comparable to bash's (lame) default, the forks drop to 16 with trunk, 4 after our changes.

The large reduction in lstat() numbers is due to fish no longer needing to call ttyname() on OS X.

We've got some work to do to be as lean as bash, but we're on the right track.