Skip to content

@clerc/plugin-help

A plugin that adds help information to your CLI.

📦 Installation

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

🚀 Usage

Import

ts
import { 
helpPlugin
} from "@clerc/plugin-help";
// or import directly from clerc import {
helpPlugin
} from "clerc";

Basic Usage

ts
const 
cli
=
Clerc
.
create
()
.
scriptName
("my-cli")
.
description
("My CLI application")
.
version
("1.0.0")
.
use
(
helpPlugin
()) // Add help plugin
.
command
("hello", "Greeting command")
.
on
("hello", (
ctx
) => {
console
.
log
("Hello, World!");
}) .
parse
();

Running Effect

bash
# Show main help, displays root command help when there is a root command, otherwise shows CLI's own help
$ node my-cli --help
# Show CLI's own help
$ node my-cli help

# Show help for a specific command
$ node my-cli hello --help
$ node my-cli help hello

📝 Features

Auto-generate Help

The plugin automatically generates beautiful help information for your CLI, including:

  • CLI name, version information, and description
  • List of available commands
  • List of command parameters
  • Command options
  • Global options
  • Custom notes and examples

Advanced Usage

Custom Command Help

You can set the help option to customize the help information for each command:

ts
const 
cli
=
Clerc
.
create
()
.
scriptName
("my-cli")
.
description
("My CLI application")
.
version
("1.0.0")
.
use
(
helpPlugin
())
.
command
("deploy", "Deploy command", {
help
: {
showInHelp
: true, // Show this command in help
notes
: [
"This is a command for deploying applications.", "You can use different options to control deployment behavior.", ],
examples
: [
["my-cli deploy --env production", "Deploy to production environment"], [ "my-cli deploy --env staging --force", "Deploy to staging environment and force execution", ], ], }, }) .
parse
();

Plugin Options

You can customize the behavior of the help plugin by passing options:

ts
const 
cli
=
Clerc
.
create
()
.
scriptName
("my-cli")
.
description
("My CLI application")
.
version
("1.0.0")
.
use
(
helpPlugin
({
command
: true, // Enable help command
flag
: true, // Enable --help global option
showHelpWhenNoCommandSpecified
: true, // Show help when no command is specified
notes
: [
"Welcome to my CLI application!", "Use --help to see available commands and options.", ],
examples
: [
["my-cli --help", "Show help information"], ["my-cli hello", "Execute greeting command"], ],
banner
: "Welcome to My CLI application!", // Custom banner
formatters
: {
// Custom type formatting functions
formatFlagType
: (
type
:
FlagType
) => {
if (typeof
type
=== "function") {
return
type
.name;
} return `Array<${
type
[0].name}>`;
}, }, }), ) .
parse
();

Released under the MIT license