A simple template-based autocompletion library for Node.js and Deno CLI tools with support for Bash, Zsh, and Fish.
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.
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.
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.
Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses ES6 template literals like `omelette`github ${['pull', 'push']}`.init()` for rapid setup, minimizing configuration code as shown in the Quick Start.
Works with Bash, Zsh, and Fish out of the box, making it versatile across different user environments without extra shell-specific code.
Allows async handlers and dynamic reply functions, enabling real-time data fetching or filesystem access for completion options, demonstrated in the Async API section.
Supports nested autocompletion with the Tree API, ideal for complex command structures, as illustrated in the Advanced Tree Implementations example.
The README admits that automated setup and cleanup functions (`setupShellInitFile` and `cleanupShellInitFile`) are not available for Deno, forcing manual installation steps.
Using async handlers requires calling `complete.next` to resume the main workflow, adding complexity and potential for errors in flow control.
For Bash on macOS, users may need to install `bash-completion` via Homebrew, as noted in the manual installation, introducing external dependencies.