← Back to archive

Repo of the Day

marlonrichert/zsh-autocomplete: 🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.

Published: Oct 31, 2026

Open repository ↗

🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion. - marlonrichert/zsh-autocomplete

Summary

zsh-autocomplete is a Zsh plugin that displays completion candidates while you type, without requiring a separate completion keystroke. Candidates are generated asynchronously; press Tab to insert the first result or use the Down arrow to open and navigate the completion menu. It also configures Zsh’s completion system and adds multi-line history search, recent-directory completion, and customizable keyboard shortcuts.

What it is useful for

This is useful for engineers who spend much of the day in a terminal and repeatedly enter commands or paths. For example, typing part of a directory path can immediately show matching locations, while the history menu can search earlier commands that span multiple lines.

Completion and history results are presented as navigable menus, with text search available inside them. The plugin can fit into an existing Zsh configuration, although integration requires care: existing compinit calls must be removed, and other plugins or scripts may override its key bindings. The README points to CONFIGURATION.md for options such as reassigning keys.

How engineers can use it

Zsh 5.8 or newer is the recommended and tested target. The README says Zsh 5.5.1 should theoretically work.

Install the plugin through Homebrew, Nix, pacman, Plumage, or Portage. For the latest main commit, it also documents an AUR package and a direct clone. Choose the installation method that matches your environment; for example:

yay -S zsh-autocomplete-git

or:

git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git

After installation, update your Zsh configuration:

  • Remove any calls to compinit from .zshrc.
  • Near the top of .zshrc, before any compdef calls, source the plugin:
source /path/to/zsh-autocomplete/zsh-autocomplete.plugin.zsh
  • On Ubuntu, add this to .zshenv:
skip_global_compinit=1
  • On Nix, add this to home.nix:
programs.zsh.enableCompletion = false;

Finally, restart the shell with:

exec zsh

Shortcuts are documented for command-line use and menu navigation. However, other plugins or scripts can override them, and terminal behavior varies: Alt may appear as Escape, Option, or Meta, while Page Up and Page Down may require an additional modifier such as Shift.