Skip to content

@clerc/plugin-completions

A plugin that adds command-line auto-completion functionality to your CLI. Based on @pnpm/tabtab

📦 Installation

sh
$ npm install @clerc/plugin-completions
sh
$ yarn add @clerc/plugin-completions
sh
$ pnpm add @clerc/plugin-completions

🚀 Usage

Import

ts
import { 
completionsPlugin
} from "@clerc/plugin-completions";
// or import directly from clerc import {
completionsPlugin
} from "clerc";

Basic Usage

ts
const 
cli
=
Clerc
.create()
.scriptName("my-cli") .description("My CLI application") .version("1.0.0") .use(
completionsPlugin
()) // Add auto-completion plugin
.command("start", "Start service") .on("start", (
ctx
) => {
console
.
log
("Service started");
}) .command("stop", "Stop service") .on("stop", (
ctx
) => {
console
.
log
("Service stopped");
}) .parse();

Running Effect

bash
# Generate auto-completion script for Bash
$ node my-cli completions bash

# Execute directly to enable auto-completion
# PowerShell
node my-cli completions pwsh | Out-String | Invoke-Expression

# Bash
eval "$(node my-cli completions bash)"

# Zsh
eval "$(node my-cli completions zsh)"

# You can also specify the shell type with the --shell parameter
eval "$(node my-cli completions --shell bash)"

# Or install directly
$ node my-cli completions install bash

# Uninstall
$ node my-cli completions uninstall

📝 Features

Auto-generate Completion Scripts

The plugin automatically generates complete auto-completion scripts for your CLI, supporting:

  • Command name completion
  • Option name completion

Supported Shells

  • Bash - Default shell for Linux and macOS
  • Zsh - Default shell for macOS Catalina and later
  • Fish - Modern shell
  • PowerShell(pwsh) - Default shell for Windows

🎨 Custom Configuration

Advanced Configuration

ts
const 
cli
=
Clerc
.create()
.scriptName("my-cli") .description("My CLI application") .version("1.0.0") .use(
completionsPlugin
({
managementCommands
: false, // Don't generate install/uninstall commands
}), ) .parse();

Released under the MIT license