explaingit

f/omelette

Analysis updated 2026-05-18

1,406CoffeeScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A library that adds Tab-key autocompletion to your Node.js or Deno command-line tool, supporting Bash, Zsh, and Fish shells.

Mindmap

mindmap
  root((Omelette))
    What it does
      Tab completion library
      For Node.js and Deno CLIs
    Tech stack
      CoffeeScript
      JavaScript
    Shells
      Bash
      Zsh
      Fish
    Use cases
      Static completions
      Dynamic completions
      Tree API subcommands
    Audience
      CLI developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add Tab-key completion to a custom CLI tool without writing shell scripts.

USE CASE 2

Show dynamic completion suggestions fetched at the moment the user presses Tab.

USE CASE 3

Define subcommands and their options using the structured tree API.

USE CASE 4

Let users install completions for your tool with a single setup command.

What is it built with?

CoffeeScriptJavaScriptNode.jsDeno

How does it compare?

f/omeletteatom/fs-plusatom/status-bar
Stars1,406107100
LanguageCoffeeScriptCoffeeScriptCoffeeScript
Last pushed2022-12-072022-09-28
MaintenanceDormantDormant
Setup difficultyeasyeasyeasy
Complexity2/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
No license information was found in the material provided.

In plain English

Omelette is a library for adding tab-completion to Node.js or Deno command-line tools. Tab-completion is the feature where you press Tab in a terminal and the shell suggests or fills in the next word for you. Adding this to a custom CLI tool normally requires writing shell-specific scripts, but Omelette handles that complexity so you can describe the completions in JavaScript instead. You define what suggestions to show at each position in the command using a simple template. For example, you can say that after the first argument the user should see a list of actions, and after the second argument they should see a list of usernames read from the file system. Omelette supports Bash, Zsh, and Fish shells. There are a few styles for defining completions. The simplest is a JavaScript template literal where you write the command name and pass arrays of options inline. A more structured option is the tree API, where you pass a nested object describing all the valid subcommands and their sub-options. For dynamic completions, you can provide functions or async functions that fetch options at the moment the user presses Tab. Omelette can also install and uninstall the completion setup automatically by writing the necessary lines into the user's shell configuration file. This means your tool can offer a setup command that users run once, after which completions work in every new terminal session.

Copy-paste prompts

Prompt 1
Help me add Tab completion to my Node.js CLI tool using Omelette.
Prompt 2
Show me how to use the tree API to define nested subcommand completions.
Prompt 3
Explain how to write a dynamic completion function that fetches options live.
Prompt 4
How do I let users install and uninstall my CLI's completions automatically?

Frequently asked questions

What is omelette?

A library that adds Tab-key autocompletion to your Node.js or Deno command-line tool, supporting Bash, Zsh, and Fish shells.

What language is omelette written in?

Mainly CoffeeScript. The stack also includes CoffeeScript, JavaScript, Node.js.

What license does omelette use?

No license information was found in the material provided.

How hard is omelette to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is omelette for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.