vibe.cli.extensions

CLI Extension API for VIBE.

Allows subsystems to register their own CLI commands without core VIBE needing explicit knowledge of them.

CLIExtension

Protocol for CLI extensions.

Extensions must provide: - name: Command name (e.g., "review") - help: Help text for the command - quiet_by_default: Whether to set VIBE_QUIET_MODE for this command - setup_parser(): Add extension's parser(s) to the CLI - dispatch(): Handle parsed arguments

setup_parser

setup_parser(subparsers: _SubParsersAction[ArgumentParser]) -> ArgumentParser

Add extension's parser(s) to the CLI subparsers.

dispatch

dispatch(args: Namespace) -> int

Handle parsed arguments. Returns exit code.

register_extension

register_extension(extension: CLIExtension) -> None

Register a CLI extension.

get_extensions

get_extensions() -> dict[str, CLIExtension]

Get all registered extensions.

get_extension

get_extension(name: str) -> CLIExtension | None

Get a specific extension by name.

discover_extensions

discover_extensions() -> None

Discover and load CLI extensions from configured entrypoints.

get_quiet_commands

get_quiet_commands() -> set[str]

Get command names that should run in quiet mode by default.