Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Node.js
  3. omelette

omelette

MITCoffeeScript0.4.15-2

A simple template-based autocompletion library for Node.js and Deno CLI tools with support for Bash, Zsh, and Fish.

GitHubGitHub
1.4k stars40 forks0 contributors

What is omelette?

Omelette is a library for adding shell autocompletion to Node.js and Deno command-line tools. It allows developers to define completion rules using templates, event handlers, or tree structures, making CLI tools more interactive and easier to use. It supports Bash, Zsh, and Fish shells with minimal setup.

Target Audience

Developers building CLI tools with Node.js or Deno who want to enhance user experience with shell autocompletion. It's particularly useful for tools with complex command structures or multiple arguments.

Value Proposition

Omelette stands out for its simple API, multi-shell support, and flexibility—offering template literals, async handlers, and tree-based completion without requiring deep shell scripting knowledge.

Overview

Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish)

Use Cases

Best For

  • Adding autocompletion to Node.js CLI tools
  • Building Deno-based command-line applications with shell completion
  • Creating complex CLI tools with nested command structures
  • Enhancing user experience for multi-argument CLI programs
  • Providing autocompletion for Bash, Zsh, and Fish shells simultaneously
  • Rapid prototyping of autocompletion features without extensive configuration

Not Ideal For

  • Projects requiring autocompletion for shells like PowerShell or Windows Command Prompt
  • Teams needing zero-user-intervention autocompletion with no setup steps
  • CLI tools with only a few static commands where manual typing is sufficient
  • Environments where JavaScript runtimes (Node.js/Deno) are not available or preferred

Pros & Cons

Pros

Simple Template API

Uses ES6 template literals like `omelette`github ${['pull', 'push']}`.init()` for rapid setup, minimizing configuration code as shown in the Quick Start.

Multi-Shell Support

Works with Bash, Zsh, and Fish out of the box, making it versatile across different user environments without extra shell-specific code.

Event-Driven Flexibility

Allows async handlers and dynamic reply functions, enabling real-time data fetching or filesystem access for completion options, demonstrated in the Async API section.

Tree Structure for Hierarchies

Supports nested autocompletion with the Tree API, ideal for complex command structures, as illustrated in the Advanced Tree Implementations example.

Cons

Deno Runtime Gaps

The README admits that automated setup and cleanup functions (`setupShellInitFile` and `cleanupShellInitFile`) are not available for Deno, forcing manual installation steps.

Async Handler Overhead

Using async handlers requires calling `complete.next` to resume the main workflow, adding complexity and potential for errors in flow control.

Shell Setup Dependencies

For Bash on macOS, users may need to install `bash-completion` via Homebrew, as noted in the manual installation, introducing external dependencies.

Frequently Asked Questions

Quick Stats

Stars1,407
Forks40
Contributors0
Open Issues22
Last commit4 years ago
CreatedSince 2013

Tags

#autocompletion#developer-tools#fish#deno#shell#nodejs#bash#cli#command-line#zsh

Built With

D
Deno
N
Node.js

Included in

Node.js65.5k
Auto-fetched 21 hours ago

Related Projects

zxzx

A tool for writing better scripts

Stars45,623
Forks1,277
Last commit26 days ago
InkInk

🌈 React for interactive command-line apps

Stars39,451
Forks1,028
Last commit8 days ago
chalkchalk

🖍 Terminal string styling done right

Stars23,285
Forks1,019
Last commit1 day ago
Inquirer.jsInquirer.js

A collection of common interactive command line user interfaces.

Stars21,610
Forks1,363
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub