Skip to content

CommandSchema

Runtime descriptor produced by CommandBuilder.

Consumers (parser, help generator, CLI dispatcher) read this to understand the command's shape — flags, args, aliases, subcommands, and interactive resolver.

Signatures

ts
interface CommandSchema {}

Members

Properties

[schemaBrand]

Type-only seal produced by createCommandSchema.

ts
[schemaBrand]: "command";

aliases

Alternative names for this command.

ts
aliases: readonly string[];

args

Ordered positional arg entries (name + schema).

ts
args: readonly CommandArgEntry[];

commands

Nested subcommand schemas (for help rendering and completion).

Pure data — no execution closures. Populated by .command() on CommandBuilder. Empty for leaf commands.

ts
commands: readonly CommandSchema[];

description

Human-readable description for help text.

ts
description: string | undefined;

examples

Usage examples for help text.

ts
examples: readonly CommandExample[];

flags

Named flag schemas, keyed by flag name.

ts
flags: Readonly<Record<string, FlagSchema>>;

hasAction

Whether an action handler has been registered.

ts
hasAction: boolean;

hidden

Whether this command is hidden from help listings.

ts
hidden: boolean;

interactive

Command-level interactive resolver for schema-driven prompt control.

When set, called after CLI/env/config resolution with partially resolved flag values. Returns prompt configs for flags that need interactive input. Takes precedence over per-flag .prompt() configs for flags it returns configs for; flags not mentioned fall back to their per-flag configs.

ts
interactive: ErasedInteractiveResolver | undefined;

name

The command name (used for dispatch, e.g. 'deploy').

ts
name: string;

See Also

Released under the MIT License.