github fish-shell/fish-shell 2.7.1
fish 2.7.1 (released December 22, 2017)

latest releases: 3.7.1, 3.7.0, 3.6.4...
6 years ago

To download the source code for fish, we suggest the file named "fish-2.7.1.tar.gz". The file downloaded from "Source code (tar.gz)" will not build correctly. The SHA-256 sum of this file is
e42bb19c7586356905a58578190be792df960fa81de35effb1ca5a5a981f0c5a.


This release of fish fixes an issue where iTerm 2 on macOS would display a warning about paste bracketing being left on when starting a new fish session (#4521).

If you are upgrading from version 2.6.0 or before, please also review the release notes for 2.7.0 and 2.7b1 (included below).


The release notes for fish 2.7.0 are as follows:

Xcode builds and macOS packages could not be produced with 2.7b1, but this is fixed in 2.7.0.


The release notes for fish 2.7b1 are as follows:

Notable improvements

  • A new cdh (change directory using recent history) command provides a more friendly alternative to prevd/nextd and pushd/popd (#2847).
  • A new argparse command is available to allow fish script to parse arguments with the same behavior as builtin commands. This also includes the fish_opt helper command. (#4190).
  • Invalid array indexes are now silently ignored (#826, #4127).
  • Improvements to the debugging facility, including a prompt specific to the debugger (fish_breakpoint_prompt) and a status is-breakpoint subcommand (#1310).
  • string supports new lower and upper subcommands, for altering the case of strings (#4080). The case changing is not locale-aware yet.
  • string escape has a new --style=xxx flag where xxx can be script, var, or url (#4150), and can be reversed with string unescape (#3543).
  • History can now be split into sessions with the fish_history variable, or not saved to disk at all (#102).
  • Read history is now controlled by the fish_history variable rather than the --mode-name flag (#1504).
  • command now supports an --all flag to report all directories with the command. which is no longer a runtime dependency (#2778).
  • fish can run commands before starting an interactive session using the new --init-command/-C options (#4164).
  • set has a new --show option to show lots of information about variables (#4265).

Other significant changes

  • The COLUMNS and LINES environment variables are now correctly set the first time fish_prompt is run (#4141).
  • complete's --no-files option works as intended (#112).
  • echo -h now correctly echoes -h in line with other shells (#4120).
  • The export compatibility function now returns zero on success, rather than always returning 1 (#4435).
  • Stop converting empty elements in MANPATH to "." (#4158). The behavior being changed was introduced in fish 2.6.0.
  • count -h and count --help now return 1 rather than produce command help output (#4189).
  • An attempt to read which stops because too much data is available still defines the variables given as parameters (#4180).
  • A regression in fish 2.4.0 which prevented pushd +1 from working has been fixed (#4091).
  • A regression in fish 2.6.0 where multiple read commands in non-interactive scripts were broken has been fixed (#4206).
  • A regression in fish 2.6.0 involving universal variables with side-effects at startup such as set -U fish_escape_delay_ms 10 has been fixed (#4196).
  • Added completions for:
  • Lots of improvements to completions.
  • Updated Chinese and French translations.

Don't miss a new fish-shell release

NewReleases is sending notifications on new releases.