Commander.js is a Node.js package for building command-line interfaces (CLIs). It helps you define commands and options, parses command-line arguments into options and arguments, provides error handling for issues like unknown options, and includes an automated help system.
Project status
- Actively maintained: Recent tagged updates include a major
v15.0.0in late May 2026, plus earlierv15.0.0-0and av14.0.3update in January 2026, and the upstream has a recent push dated 2026-06-08. - Update cadence (apparent): There is a rough pattern of major-level work every few months (Feb 2026 prerelease candidate, May 2026 major), with smaller documentation or policy updates around a month earlier (Jan 2026).
AI summary generated Today
Recent updates
v15.0.0
1 week agoCommander v15.0.0 is the ESM-only release, moving the implementation from CommonJS to ESM and requiring newer Node.js versions. The release also adjusts CLI option behavior for certain negated options and improves error/help messaging, while updating the project’s test setup and maintenance policy.
BreakingFeaturesv15.0.0-0
3 months agoCommander 15.0.0-0 is a major release that switches the project to ESM-only and raises the minimum supported Node.js version. The release also includes a behavior correction around negatable boolean options (--no-*) and a change to error output to show excess command arguments.
BreakingFeaturesv14.0.3
4 months agoRelease v14.0.3 primarily updates project documentation and maintenance policy. The published release notes mention end-of-life policy adjustments, a typing clarification for `.outputHelp()`, and README wording improvements.
v14.0.2
7 months agoRelease v14.0.2 is primarily a small behavior adjustment to negative number auto-detection during argument parsing, plus a broad update of development dependencies. The code diff also shows a TypeScript declaration change for deprecated callback-based overloads, and some CI workflow action version bumps that are not mentioned in the release notes.
v14.0.1
8 months agov14.0.1 is a small maintenance release with mostly internal refactors for readability and parsing efficiency, plus a README markdown link fix. The core behavioral-relevant changes are in argument and option variadic collection internals, and a refactor of Command.parseOptions to process the provided args array in-place.
v14.0.0
5/18/2025Commander v14.0.0 adds configurable help grouping for options and commands, including per-item headings and default headings applied to subsequently added items. It also improves parsing to accept unescaped negative numbers as option-arguments and command-arguments. The release also enforces a Node.js v20+ requirement.
BreakingFeaturesv13.1.0
1/20/2025v13.1.0 adds support for a pair of long option flags in `.option()`, enabling a “shortish” alias like `.option('--ws, --workspace')`. The underlying option-flag parser (`lib/option.js`) was updated to support this new shape and to change how unsupported flag formats are validated and reported.
Featuresv13.0.0
12/30/2024v13.0.0 adds support for calling .parse() multiple times with default settings, backed by new saveStateBeforeParse() and restoreStateBeforeParse() APIs intended for subclass customization. It also enhances help styling and adds help width/wrapping related methods, while introducing several documented breaking changes around argument handling and stricter option parsing.
BreakingFeaturesv13.0.0-0
12/6/2024This release refactors Commander help output to support styling and color-aware wrapping, introducing new Help primitives (like boxWrap, formatItem, and displayWidth) and new styling hooks. It also includes two documented breaking behavioral changes: excess command-arguments now error by default, and invalid option flag formats now throw during Option construction.
BreakingFeaturesv12.1.0
5/18/2024v12.1.0 adds improved argument parsing ergonomics by auto-detecting special Node.js options (such as `node --eval` and `node --print`) when `.parse()` is called with no arguments. It also modernizes the repo tooling (Prettier formatting, ESLint config changes), and extends security support for the previous major version of Commander.
BreakingSecurityFeatures