Fish, a popular user-friendly command-line shell, has announced version 4.2, a new release that builds on the 4.0 series. Among the most visible improvements is an upgrade to history-based autosuggestions, which now properly handle multi-line commands.
The new version also improves how prompts are managed: transient prompts that contain more lines than the final one are now cleared properly, preventing visual clutter on screen. Similarly, the shell now hides parts of a multi-line prompt that have scrolled out of view, eliminating duplicated lines after repainting.
Localization has received attention, too, with new Taiwanese Chinese translations and updated French translations.
A major internal shift comes with Fish now assuming UTF-8 encoding by default, even on systems without a UTF-8 locale. This means input bytes not valid UTF-8 will still round-trip correctly, ensuring older file paths or legacy encodings continue to work. However, Fish will no longer fall back to ASCII replacements for Unicode characters on non-multi-byte systems.
On the usability front, Fish gains a new fish_tab_title function, allowing users to set the terminal tab title separately from the window title. Mouse capture is no longer force-disabled, allowing users to move the cursor or select completion items with mouse clicks. The Alt + P binding has also been refined to avoid inserting unwanted spaces into command lines.
Platform-specific improvements include proper MANPATH handling on macOS, fixes for Windows web-based configuration launch failures, and new MSYS2-specific workarounds for Konsole and WezTerm to ensure the correct working directory when opening new tabs.
Additionally, a fix targeting OpenBSD 7.8 resolves an issue with how the fish shell displays built-in man pages.
Finally, starting with version 4.0, Fish underwent a major internal transformation as it was entirely rewritten in Rust, replacing older C++ components. In light of this, the new 4.2 release builds upon that foundation by updating its minimum supported Rust version to 1.85, ensuring compatibility with recent compiler improvements and ecosystem tooling.
For more information, see the changelog.
