January 7, 2026·3 min read·engineeringfishcompletionterminal

fish 4.3.3 repairs completion insertion and prompt display

fish 4.3.3 corrects partial completion insertion and display errors around wrapped suggestions. It also gives inspection commands explicit control over colored output.

A path completion in fish 4.3.2 could move the cursor back to text entered earlier, interrupting a sequence of directory completions. The report in issue 12249 gives a concrete example from a source checkout. Completing an initial directory prefix, typing another component, and completing again could return the cursor to the earlier prefix. fish 4.3.3, released on January 7, fixes completion selection that inserted only part of a token.

The release notes also repair wrapped autosuggestions interacting with a right prompt and output hidden when a command omitted its final newline. These are small changes to frequently repeated interactions. A shell can execute commands correctly and still require attention because its display or editing behavior contradicts what the user just typed.

Omer introduced me to fish after years with Bash and Zsh, and its interactive behavior made an immediate impression. Completion and live feedback are a large part of why I like it. This patch matters to that preference because accepting a suggestion should preserve the command the user is constructing, including the text entered between successive completions.

A suggestion needs room on the screen

The wrapped suggestion report isolates another interaction with a minimal right prompt. With that prompt present, soft-wrapped suggestion text could overwrite existing prompt text. The report did not require a complicated theme. A right prompt containing a single character was enough to expose the problem.

That makes the issue more specific than a general claim that prompts were unreliable. The left prompt, editable command, suggested text, and right prompt all occupy positions in the terminal display. A suggestion extending across a line changes the space available to those elements. The release corrects the interaction identified in that report.

The 4.3.3 changelog provides useful context from 4.3.0. That earlier release began displaying soft-wrapped portions of autosuggestions. The patch therefore repairs behavior around a newly expanded display capability. Showing more of a suggestion is useful only if the screen continues to distinguish the suggestion from the prompt and the command being edited.

Another display fix concerns the final line of command output when it lacks a newline. The original report used short echo -n and printf output that appeared missing. The release note identifies hidden output as the problem. Changing the command's formatting could avoid the symptom, but would not repair the shell's handling of that output.

This distinction matters during diagnosis. A missing character on the screen does not establish that the command failed to write it. The shell also has to render its next prompt around output that ends at an arbitrary cursor position. fish 4.3.3 repairs the documented case instead of requiring every program to end its output with a newline.

Color is now an explicit output choice

The patch adds --color to several commands that inspect shell state, including functions, bind, and history. The accepted values are auto, always, and never. This gives callers direct control over syntax highlighting in output that may be read interactively or passed to another tool.

The versioned functions documentation defines auto as coloring when output is a terminal. For example, a prompt definition can be printed without highlighting:

functions --color never fish_prompt

Explicitly selecting plain output is useful when copying a definition into an issue or comparing it with another version. Selecting always serves a different destination that can retain and interpret color codes. The option makes the intended presentation part of the command invocation, instead of leaving the caller to rely entirely on automatic terminal detection.

I like fish's willingness to make common interactive operations available without extensive configuration. The color option fits that approach while giving composed workflows a precise override. It applies to the command's printed representation, so changing it does not redefine the function being inspected.

Themes distinguish a session choice from saved configuration

The release also fixes sample prompt and theme installation, a theme variant selection problem, and cases where choosing a theme did not shadow earlier settings. These repairs arrive after 4.3.0 changed the default scope of user-facing color variables from universal to global. The changelog documents that transition and its migration files.

The 4.3.3 fish_config reference distinguishes choosing a theme for the current session from saving one into universal variables. A chosen theme can follow the terminal's reported light or dark mode. A universally saved theme does not update that way. Correct theme selection therefore depends on both the selected file and the configuration scope that supplies its values.