Fish Shell Release Notes
Last updated: Feb 17, 2026
- Feb 17, 2026
- Date parsed from source:Feb 17, 2026
- First seen by Releasebot:Feb 17, 2026
fish 4.5.0 (released February 17, 2026)
Patch release for Vi mode regressions in 4.4.0 adds interactive improvements, fixes history search and cursor behavior, and resolves several Vi mode issues. It also deprecates terminfo reliance and permanently enables ignore-terminfo, with terminal compatibility notes.
Interactive improvements
- ctrl-l no longer cancels history search (#12436).
- History search cursor positioning now works correctly with characters of arbitrary width.
Deprecations and removed features
- fish no longer reads the terminfo database to alter behaviour based on the TERM environment variable, and does not depend on ncurses or terminfo. The ignore-terminfo feature flag, introduced and enabled by default in fish 4.1, is now permanently enabled. fish may no longer work correctly on Data General Dasher D220 and Wyse WY-350 terminals, but should continue to work on all known terminal emulators released in the 21st century.
Regression fixes:
- (from 4.4.0) Vi mode d,f key binding did not work (#12417).
- (from 4.4.0) Vi mode c,w key binding wrongly deleted trailing spaces (#12443).
- (from 4.4.0) Vi mode crash on c,i,w after accepting autosuggestion (#12430).
- (from 4.4.0) fish_vi_key_bindings called with a mode argument produced an error (#12413).
- (from 4.0.0) Build on Illumos (#12410).
- Feb 3, 2026
- Date parsed from source:Feb 3, 2026
- First seen by Releasebot:Feb 5, 2026
fish 4.4.0 (released February 03, 2026)
This release brings interactive improvements and stronger vi-like bindings, new color themes, and refined terminal behavior. It adds deprecations, enhanced autosuggestions, and regression fixes, plus developer workflow tweaks for localization and xtask.
Deprecations and removed features
- The default fossil prompt has been disabled (#12342).
Interactive improvements
- The bind builtin lists mappings from all modes if --mode is not provided (#12214).
- Line-wise autosuggestions that don’t start a command are no longer shown (739b82c34db, 58e7a50de8a).
- Builtin history now assumes that PAGER supports ANSI color sequences.
- fish now clears the terminal’s FLUSHO flag when acquiring control of the terminal, to fix an issue caused by pressing ctrl-o on macOS (#12304).
New or improved bindings
- Vi mode word movements (w, W, e, and E) are now largely in line with Vim. The only exception is that underscores are treated as word separators (#12269).
- New special input functions to support these movements: forward-word-vi, kill-word-vi, forward-bigword-vi, kill-bigword-vi,
forward-word-end, backward-word-end, forward-bigword-end, backward-bigword-end,kill-a-word, kill-inner-word, kill-a-bigword, and kill-inner-bigword. - Vi mode key bindings now support counts for movement and deletion commands (e.g. d3w or 3l), via a new operator mode (#2192).
- New catpuccin-* color themes.
Improved terminal support
- set_color learned the strikethrough (--strikethrough or -s) modifier.
For distributors and developers
- The CMake option WITH_GETTEXT has been renamed to WITH_MESSAGE_LOCALIZATION, to reflect that it toggles localization independently of the backend used in the implementation.
- New cargo xtask commands can replace some CMake workflows.
Regression fixes:
- (from 4.1.0) Crash when autosuggesting Unicode characters with nontrivial lowercase mapping (#12326, 78f4541116e).
- (from 4.3.0) Glitch on read --prompt-str "" (#12296).
All of your release notes in one feed
Join Releasebot and get updates from Fish Shell and hundreds of other software products.
- Jan 7, 2026
- Date parsed from source:Jan 7, 2026
- First seen by Releasebot:Feb 5, 2026
fish 4.3.3 (released January 07, 2026)
Fish 4.3.0 ships fixes for partial token insertion, autosuggest glitches, tmux echo issues, and theme quirks plus improved sample prompts. It also adds a --color option for abbr, bind, complete, functions, history and type commands and highlights clobbered paths in redirection.
Release notes
This release fixes the following problems identified in fish 4.3.0:
- Selecting a completion could insert only part of the token (#12249).
- Glitch with soft-wrapped autosuggestions and fish_right_prompt (#12255).
- Spurious echo in tmux when typing a command really fast (#12261).
- tomorrow theme always using the light variant (#12266).
- fish_config theme choose sometimes not shadowing themes set by e.g. webconfig (#12278).
- The sample prompts and themes are correctly installed (#12241).
- Last line of command output could be hidden when missing newline (#12246).
Other improvements include:
- The abbr, bind, complete, functions, history and type commands now support a --color option to control syntax highlighting in their output. Valid values are auto (default), always, or never.
- Existing file paths in redirection targets such as > file.txt are now highlighted using $fish_color_valid_path, indicating that file.txt will be clobbered (#12260).
- Dec 30, 2025
- Date parsed from source:Dec 30, 2025
- First seen by Releasebot:Feb 5, 2026
fish 4.3.2 (released December 30, 2025)
This release fixes startup and config issues from 4.3.0, including broken macOS packages, unused dirs, configs recreated each boot, stray ^[[I echoes, and prompt redraw loops. It adds a cross‑compile workaround using FISH_INDENT_FOR_BUILDING_DOCS.
Release fixes identified in 4.3.0
- Pre-built macOS packages failed to start due to a Malformed Mach-O file error (#12224).
- extra_functionsdir (usually vendor_functions.d) and friends were not used (#12226).
- Sample config file ~/.config/fish/config.fish/ and config directories ~/.config/fish/conf.d/, ~/.config/fish/completions/, and ~/.config/fish/functions/ were recreated on every startup instead of only the first time fish runs on a system (#12230).
- Spurious echo of ^[[I in some scenarios (#12232).
- Infinite prompt redraw loop on some prompts (#12233).
- The removal of pre-built HTML docs from tarballs revealed that cross compilation is broken because we use ${CMAKE_BINARY_DIR}/fish_indent for building HTML docs. As a workaround, the new CMake build option FISH_INDENT_FOR_BUILDING_DOCS can be set to the path of a runnable fish_indent binary.
- Dec 28, 2025
- Date parsed from source:Dec 28, 2025
- First seen by Releasebot:Feb 5, 2026
fish 4.3.1 (released December 28, 2025)
Release notes
This release fixes the following problem identified in 4.3.0:
- Possible crash after expanding an abbreviation (#12223).
- Dec 28, 2025
- Date parsed from source:Dec 28, 2025
- First seen by Releasebot:Feb 5, 2026
fish 4.3.0 (released December 28, 2025)
Fish 4.3.0 adds migration of color variables to startup globals, a new status language command, improved completions and bindings, and broader terminal/OS support. Packaging changes streamline docs and tools for distributors.
Deprecations and removed features
- fish no longer sets user-facing universal variables by default, making the configuration easier to understand. Specifically, the fish_color_*, fish_pager_color_*, and fish_key_bindings variables are now set in the global scope by default. After upgrading to 4.3.0, fish will (once and never again) migrate these universals to globals set at startup in the ~/.config/fish/conf.d/fish_frozen_theme.fish and ~/.config/fish/conf.d/fish_frozen_key_bindings.fish files. We suggest that you delete those files and set your theme in ~/.config/fish/config.fish.
- You can still configure fish to propagate theme changes instantly; see here for an example.
- You can still opt into storing color variables in the universal scope via fish_config theme save though unlike fish_config theme choose, it does not support dynamic theme switching based on the terminal’s color theme (see below).
Scripting improvements
- New status language command allows showing and modifying language settings for fish messages without having to modify environment variables.
- When using a noninteractive fish instance to compute completions, commandline --cursor works as expected instead of throwing an error (#11993).
- $fish_trace fish_trace can now be set to all to also trace execution of key bindings, event handlers as well as prompt and title functions.
Interactive improvements
- When typing immediately after starting fish, the first prompt is now rendered correctly.
- Completion accuracy was improved for file paths containing = or : (#5363).
- Prefix-matching completions are now shown even if they don’t match the case typed by the user (#7944).
- On Cygwin/MSYS, command name completion will favor the non-exe name (foo) unless the user started typing the extension.
- When using the exe name (foo.exe), fish will use the description and completions for foo if there are none for foo.exe.
- Autosuggestions now also show soft-wrapped portions (#12045).
New or improved bindings
- ctrl-w (backward-kill-path-component) also deletes escaped spaces (#2016).
- New special input functions backward-path-component, forward-path-component, and kill-path-component (#12127).
Improved terminal support
- Themes can now be made color-theme-aware by including both [light] and [dark] sections in the theme file. Some default themes have been made color-theme-aware, meaning they dynamically adjust as your terminal’s background color switches between light and dark colors (#11580).
- The working directory is now reported on every fresh prompt (via OSC 7), fixing scenarios where a child process (like ssh) left behind a stale working directory (#12191).
- OSC 133 prompt markers now also mark the prompt end, which improves shell integration with terminals like iTerm2 (#11837).
- Operating-system-specific key bindings are now decided based on the terminal’s host OS.
- New feature flag omit-term-workarounds can be turned on to prevent fish from trying to work around some incompatible terminals.
For distributors and developers
- Tarballs no longer contain prebuilt documentation, so building and installing documentation requires Sphinx. To avoid users accidentally losing docs, the BUILD_DOCS and INSTALL_DOCS configuration options have been replaced with a new WITH_DOCS option.
- fish_key_reader and fish_indent are now installed as hardlinks to fish, to save some space.
Regression fixes:
- (from 4.1.0) Crash on incorrectly-set color variables (#12078).
- (from 4.1.0) Crash when autosuggesting Unicode characters with nontrivial lowercase mapping.
- (from 4.2.0) Incorrect emoji width computation on macOS.
- (from 4.2.0) Mouse clicks and ctrl-l edge cases in multiline command lines (#12121).
- (from 4.2.0) Completions for Git remote names on some non-glibc systems.
- (from 4.2.0) Expansion of ~$USER.
- Nov 13, 2025
- Date parsed from source:Nov 13, 2025
- First seen by Releasebot:Feb 5, 2026
fish 4.2.1 (released November 13, 2025)
This release fixes the following problems identified in 4.2.0:
When building from a tarball without Sphinx (that is, with -DBUILD_DOCS=OFF or when sphinx-build is not found), builtin man pages and help files were missing, which has been fixed (#12052).
fish_config’s theme selector (the “colors” tab) was broken, which has been fixed (#12053).
- Nov 10, 2025
- Date parsed from source:Nov 10, 2025
- First seen by Releasebot:Feb 5, 2026
fish 4.2.0 (released November 10, 2025)
Fish shell delivers smarter history suggestions for multi line commands, improved prompt handling, translations and many fixes. Highlights include UTF-8 handling, tab and prompt improvements, mouse behavior tweaks, and signed release artifacts plus build and developer updates.
Notable improvements and fixes
- History-based autosuggestions now include multi-line commands.
- A transient prompt containing more lines than the final prompt will now be cleared properly (#11875).
- Taiwanese Chinese translations have been added.
- French translations have been supplemented (#11842).
Deprecations and removed features
- fish now assumes UTF-8 for character encoding even if the system does not have a UTF-8 locale. Input bytes which are not valid UTF-8 are still round-tripped correctly. For example, file paths using legacy encodings can still be used, but may be rendered differently on the command line.
- On systems where no multi-byte locale is available, fish will no longer fall back to using ASCII replacements for Unicode characters such as “…”.
Interactive improvements
- The title of the terminal tab can now be set separately from the window title by defining the fish_tab_title function (#2692).
- fish now hides the portion of a multiline prompt that is scrolled out of view due to a huge command line. This prevents duplicate lines after repainting with partially visible prompt (#11911).
- fish_config prompt’s choose and save subcommands have been taught to reset fish_mode_prompt in addition to the other prompt functions (#11937).
- fish no longer force-disables mouse capture (DECSET/DECRST 1000), so you can use those commands to let mouse clicks move the cursor or select completions items (#4918).
- The alt-p binding no longer adds a redundant space to the command line.
- When run as a login shell on macOS, fish now sets MANPATH correctly when that variable was already present in the environment (#10684).
- A Windows-specific case of the web-based config failing to launch has been fixed (#11805).
- A MSYS2-specific workaround for Konsole and WezTerm has been added, to prevent them from using the wrong working directory when opening new tabs (#11981).
For distributors and developers
- Release tags and source code tarballs are GPG-signed again (#11996).
- Documentation in release tarballs is now built with the latest version of Sphinx, which means that pre-built man pages include OSC 8 hyperlinks.
- The Sphinx dependency is now specified in pyproject.toml, which allows you to use uv to provide Sphinx for building documentation (e.g. uv run cargo install --path .).
- The minimum supported Rust version (MSRV) has been updated to 1.85.
- The standalone build mode has been made the default. This means that the files in $CMAKE_INSTALL_PREFIX/share/fish will not be used anymore, except for HTML docs. As a result, future upgrades will no longer break running shells if one of fish’s internal helper functions has been changed in the updated version. For now, the data files are still installed redundantly, to prevent upgrades from breaking already-running shells (#11921). To reverse this change (which should not be necessary), patch out the embed-data feature from cmake/Rust.cmake. This option will be removed in future.
- OpenBSD 7.8 revealed an issue with fish’s approach for displaying builtin man pages, which has been fixed.
Regression fixes:
- (from 4.1.0) Fix the web-based config for Python 3.9 and older (#12039).
- (from 4.1.0) Correct wrong terminal modes set by fish -c 'read; cat' (#12024).
- (from 4.1.0) On VTE-based terminals, stop redrawing the prompt on resize again, to avoid glitches.
- (from 4.1.0) On MSYS2, fix saving/loading of universal variables (#11948).
- (from 4.1.0) Fix error using man for the commands ! . : [ { (#11955).
- (from 4.1.0) Fix build issues on illumos systems (#11982).
- (from 4.1.0) Fix crash on invalid function command (#11912).
- (from 4.0.0) Fix build on SPARC and MIPS Linux by disabling SIGSTKFLT.
- (from 4.0.0) Fix crash when passing negative PIDs to builtin wait (#11929).
- (from 4.0.0) On Linux, fix status fish-path output when fish has been reinstalled since it was started.
This is the end. You've seen all the release notes in this feed!