| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| fish-4.7.0.app.zip | 2026-05-06 | 18.4 MB | |
| fish-4.7.0.pkg | 2026-05-06 | 24.4 MB | |
| fish-4.7.0.tar.xz.asc | 2026-05-05 | 687 Bytes | |
| fish-4.7.0-linux-aarch64.tar.xz | 2026-05-05 | 2.9 MB | |
| fish-4.7.0-linux-x86_64.tar.xz | 2026-05-05 | 3.1 MB | |
| fish-4.7.0.tar.xz | 2026-05-05 | 2.6 MB | |
| fish 4.7.0 source code.tar.gz | 2026-05-05 | 6.5 MB | |
| fish 4.7.0 source code.zip | 2026-05-05 | 7.2 MB | |
| README.md | 2026-05-05 | 4.5 kB | |
| Totals: 9 Items | 65.1 MB | 1 | |
This release brings 198 new commits since 4.6.0, contributed by 21 authors, 12 of which are new faces.
Deprecations and removed features
- The default theme (i.e. the
fish_color_*variables) is no longer set in non-interactive shells.
Interactive improvements
- prompt_pwd now strips control characters.
- Repaint events (as triggered by changes to color variables or by event handlers running
commandline -f repaint) no longer reset the completion pager and other transient UI states (#12683). fish_color_valid_pathnow respects background and underline colors (#12622).- funced will no longer lose work if there are parse errors multiple times without new changes to the file.
- Fixed a case where directory completions were sorted in a surprising order (#12695).
- When at the command token, the
alt-obinding will now open read-only files too (#12671). - Private mode in-memory history (
set fish_history) is no longer shared with builtin read (#12662).
Other improvements
- History is no longer corrupted with NUL bytes when fish receives SIGTERM or SIGHUP (#10300).
- fish_update_completions now handles groff
\X'...'device control escapes, fixing completion generation for man pages produced by help2man 1.50 and later (such as coreutils 9.10). - Removing history entries via the web-based config is more intuitive.
- If
XDG_DATA_DIRSis empty, the default value is assumed, which means that fish will now also use configuration from paths like$PREFIX/share/fish/vendor_completions.d(#11349). - Some internal file descriptors were moved to number 10 or higher, to reduce risk of clashes with those used by the user in scripts.
- The wording of error messages has been made consistent, especially for builtin subcommands (#12556).
For distributors and developers
- When the default global config directory (
$PREFIX/etc/fish) exists but has been overridden via-DCMAKE_INSTALL_SYSCONFDIR, fish will now respect that override (#10748). build_tools/update_translations.fishhas been replaced bycargo xtask gettext {check,new,update}(#12676).cargo xtask shellcheckto lint shell-scripts.
Regression fixes:
- (from 4.6) Vi mode
dl(#12461). - (from 4.6) Backspace after newline (#12583).
- (from 4.3.3) Long options were spuriously completed after typing short options (85e76ba3561).
- (from 3.2)
nosuchcommand || echo helloexecutes the right hand side again (#12654).
Thanks to everyone who contributed through issue discussions, code reviews, or code changes.
Welcome our new committers: Armandas Jarušauskas, Daniel D. Beck, Dennis Yildirim, Jaakko Koivisto, Kayce Basques, Nathaniel, Saúl Nogueras, Vishrut Sachan, Yakov Till, cunlem, joveian, r-vdp
Welcome back our returning committers: Bacal Mesfin, Branch Vincent, Daniel Rainer, David Adam, Johannes Altmanninger, Nahor, Peter Ammon, Remo Senekowitsch, xtqqczze
Download links: To download the source code for fish, we suggest the file named fish-4.7.0.tar.xz. The file downloaded from Source code (tar.gz) will not build correctly. A GPG signature using this key is available as fish-4.7.0.tar.xz.asc.
The files called fish-4.7.0-linux-*.tar.xz contain standalone fish binaries for any Linux with the given CPU architecture.