Skip to content

CLIRunOptions

Options for .execute() and .run().

Derives from RunOptions while excluding command-execution internals (meta, mergedSchema) and adding the CLI-level runtime adapter.

Signatures

ts
interface CLIRunOptions extends Omit<RunOptions, "meta" | "mergedSchema"> {}

Members

Properties

adapter

Runtime adapter providing platform-specific I/O, argv, env, etc.

When provided to .run(), replaces the default Node adapter. Ignored by .execute() (which is process-free by design).

ts
adapter?: RuntimeAdapter;

answers

Pre-configured prompt answers for testing convenience.

When provided, a test prompter is created from these answers via createTestPrompter(answers). Each entry is consumed in order — use PROMPT_CANCEL to simulate cancellation.

Ignored when an explicit prompter is provided.

ts
answers?: readonly unknown[];

captured

Capture buffers override paired with out.

— when omitted, runCommand() creates empty buffers for the returned RunResult while writing directly to the provided out.

ts
captured?: CapturedOutput;

config

Configuration object for flag resolution.

Flags with .config('path') configured resolve from this record when no CLI or env value is provided (CLI → env → config → prompt → default). Config is plain JSON — file loading is the caller's responsibility.

ts
config?: Readonly<Record<string, unknown>>;

env

Environment variables for flag resolution.

Flags with .env('VAR') configured resolve from this record when no CLI value is provided (CLI → env → config → prompt → default).

ts
env?: Readonly<Record<string, string | undefined>>;

help

Help formatting options (width, binName). Used when --help is detected.

ts
help?: HelpOptions;

isTTY

Whether stdout is connected to a TTY.

Handlers can check out.isTTY to decide whether to emit decorative output (spinners, progress bars, ANSI codes). Defaults to false (safe default for tests — non-TTY until proven otherwise).

ts
isTTY?: boolean;

jsonMode

Enable JSON output mode.

When true, log and info messages are redirected to stderr so that stdout is reserved exclusively for structured json() output. Framework-rendered errors are emitted as structured JSON to stdout.

ts
jsonMode?: boolean;

out

Output channel override used by live CLI execution.

CLIBuilder.run() passes a real output channel so activity renders to the terminal instead of being captured.

ts
out?: Out;

plugins

CLI plugins registered on the parent CLIBuilder.

— threaded through from CLI dispatch.

ts
plugins?: readonly CLIPlugin[];

prompter

Prompt engine for interactive flag resolution.

When provided, flags with .prompt() configured that have no value after CLI/env/config resolution will be prompted interactively.

When absent (and answers is also absent), prompting is skipped and resolution falls through to default/required.

Takes precedence over answers when both are provided.

ts
prompter?: PromptEngine;

stdinData

Full stdin contents for args configured with .stdin().

Lets tests inject piped input without a runtime adapter.

ts
stdinData?: string | null;

verbosity

Verbosity level for the output channel.

ts
verbosity?: "normal" | "quiet";

See Also

Released under the MIT License.