npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lirimkrosa/omnicomplete

v1.0.21

Published

A blazingly fast, native autocomplete UI for Zsh

Readme

OmniComplete is a native autocomplete system for your shell. It brings the rich, visual, IDE-like autocomplete dropdowns (similar to Fig or Warp) to your terminal, but entirely native to Zsh. It operates as a lightweight background daemon and renders UI directly onto your terminal's screen without requiring you to switch terminal emulators or use bulky wrappers.

✨ Features

  • Native Zsh Integration: Operates purely using Zsh's POSTDISPLAY and region_highlight — zero input lag and no wrappers.
  • Deep Docker Compose Intelligence: Parses your docker-compose.yml locally to provide context-aware suggestions for services, volumes, networks, profiles, and environment variables. Includes live container health status (🟢/🔴).
  • Smart Exec Suggestions: When running docker compose exec [service], OmniComplete inspects the service's underlying image and suggests relevant tools (e.g., suggesting psql for a Postgres image, or redis-cli for Redis).
  • Fuzzy Matching: Type T/m/a to instantly match project/my_project/api/.
  • Rich Visual Dropdowns: Displays files, folders, commands, and arguments with distinct icons and ANSI colors.
  • Customizable Themes: Choose between an inline look or a floating popover style.
  • Zero Config Required: Works out of the box with built-in specs for git, docker, docker compose, npm, kubectl, and file system navigation.
  • TUI Settings: Built-in terminal UI for visually managing all your settings.

🚀 Installation

Option 1: Using NPM (Recommended)

Because OmniComplete is extremely fast and lightweight, installing globally via NPM is the best experience across all operating systems.

npm install -g @lirimkrosa/omnicomplete

Option 2: Using Homebrew (macOS)

If you prefer Homebrew, you can tap and install directly:

brew tap lirimkrosa/omnicomplete
brew install omnicomplete

3. Install the shell integration

Simply run the built-in integrations command to automatically configure your shell (Zsh, Bash, or Fish):

omni integrations install autocomplete

4. Reload your shell

source ~/.zshrc

🛠️ Usage

OmniComplete starts working automatically as you type. For example, typing cd or git will instantly bring up the autocomplete dropdown.

Keyboard Shortcuts

  • / or Tab / Shift+Tab: Navigate through the suggestion list.
  • Enter: Accept the currently highlighted suggestion.
  • Esc: Close the autocomplete menu.

Settings UI

OmniComplete comes with a beautiful Terminal UI (TUI) to configure your preferences without manually editing configuration files.

Run the following command anywhere in your terminal:

omni settings

This will open the settings menu where you can customize:

  • Layout Theme: inline or popover
  • Max Suggestions: How many items to show in the dropdown
  • Fuzzy Matching: Toggle intelligent fuzzy search
  • Colors & Delays: Fine-tune the look and feel

Daemon Management

The autocomplete engine runs as a lightweight background daemon.

  • omni daemon status: Check if the daemon is running.
  • omni daemon stop: Kill the background daemon. (It will restart automatically on your next keystroke).

🧠 Adding Custom Specs

You can easily extend OmniComplete to understand your own scripts, CLIs, or internal tools by adding custom spec JSON files.

By default, the daemon loads custom specifications from ~/.cli-autocomplete/specs/. Just drop a .json file in there, and the daemon will instantly pick it up.

Example myscript.json:

{
  "name": "myscript",
  "description": "My custom internal tool",
  "subcommands": [
    {
      "name": "deploy",
      "description": "Deploy to production",
      "options": [
        {
          "name": ["--force", "-f"],
          "description": "Force the deployment"
        }
      ]
    }
  ]
}

🏗️ Architecture

OmniComplete is broken down into three core components:

  1. The Daemon (daemon.js): A Node.js background process that holds the autocomplete engine, loads command specifications, handles fuzzy search, and generates the ANSI output string.
  2. The Shell Integration (integration.js): A shell script that listens to ZLE (Zsh Line Editor) keystroke events via an asynchronous socket and pulls state from the daemon.
  3. The Zsh Parser (zsh-highlight.js): A specialized JavaScript parser that seamlessly translates complex ANSI 256 color codes into Zsh's region_highlight strings, allowing the daemon to paint a full UI natively inside the terminal.

📄 License

MIT License. See LICENSE for more information.