Back to Explore

drizzle-team/brocli

GitHub
1 updates · last 90 days1 watchersOpen source

Last release:

Brocli is a TypeScript/JavaScript library for building modern command line interfaces (CLIs) with a typed API. It parses shell arguments, provides built-in validation for typed options, and supports hooks like transforming parsed parameters before running command handler logic.

Project status

  • Actively maintained: The source drizzle-team/brocli shows recent updates (last push 2026-04-07), indicating ongoing maintenance rather than dormancy.
  • Update cadence: After 0.12.0 on 2026-04-07, the prior updates were 0.11.0 (2024-11-05) and 0.10.x (2024-08 to 2024-11), suggesting an irregular, low-frequency cadence with gaps of many months.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 0.12.1

    Release 0.12.1 removes external runtime dependencies (notably clone and shell-quote) and replaces them with local implementations. The release notes claim no API or functionality changes, but the code diff shows the command tokenization and cloning logic have been reimplemented.

    Security
  • 0.12.0

    Version 0.12.0 extends BroCli so that global option values are available to the theme, help, and version callbacks. It also fixes how required option help renders data types. The code changes go beyond the release notes by updating several callback and event handler TypeScript signatures and event shapes.

    Features
  • 0.11.0

    Version 0.11.0 introduces the concept of global options (via a new `globals` config) so they can be processed and consumed in the `run` hook. The release notes are brief, but the code adds new parsing, validation, and event payload fields related to these globals.

    Features
  • 0.10.1

    Version 0.10.1 primarily changes how the default global help output formats command descriptions. The release notes mention a fix for using an outdated command description handler, and the code diff shows an updated description rendering logic in the help/event handler.

  • 0.10.0

    Brocli 0.10.0 focuses on improving CLI help output and standardizing event payloads and naming. It introduces a new `name` (replacing `cliName`) and adds a `description` field to `run()` config, while reworking the event system so all errors are emitted as a single `error` event type.

    BreakingFeatures
  • 0.9.2

    Release 0.9.2 extends the `unknownCommandEvent` payload to include the list of available commands. This change is implemented both in the event type definition and in the error/event emission path, and the corresponding test was updated.

    Breaking
  • 0.9.1

    Release 0.9.1 primarily contains a fix to the error message produced when a positional argument with an enum type receives an invalid value. The change updates the wording and the argument name used in the message.

  • 0.9.0

    Version 0.9.0 introduces event-based theming and help rendering, including short command descriptions, and a new `cliName` config value intended for theme output. It also renames command `metaInfo` to `metadata` and removes the previous type restriction, alongside multiple parsing and error-message fixes and expanded test coverage.

    BreakingFeatures
  • 0.8.2

    Release 0.8.2 changes the `command()` implementation to avoid mutating the provided command object and tweaks when option validation runs. The diff shows `command()` now clones the input command before assigning processed options and names.

  • 0.8.1

    Release 0.8.1 focuses on improving how command and subcommand cloning works, and removing some unnecessary logic. The code change mainly replaces the project’s internal deep-clone utility with the external npm package "clone" and alters when parent relationships and cloning happen in the command-building flow.

    Breaking
  • 0.8.0

    Release 0.8.0 renames the CLI entrypoint from `runCli()` to `run()`, adds support for parent linkage on subcommands, and introduces a new helper for converting a command collection into structured command data. It also claims a fix for clone-related crashes involving subcommands.

    BreakingFeatures