commander breaking changes
Every breaking API change we have recorded in commander on npm: 43 breaking changes in 4 versions. Below are its newest 4 versions, removals and renames first, each with its source.
Newest change May 29, 2026

On this page
15.0.0
- Removed
Code running on older Node.js versions will no longer work with Commander 15; upgrade Node.js first. github.com - Removed
commander.esm.mjs
Removed the deprecated commander/esm.mjs export in commander 15.0.0 github.com - Removed
esm.mjs:AddHelpTextContext
AddHelpTextContext was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:AddHelpTextPosition
AddHelpTextPosition was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:Argument
Argument was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:Command
Command was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:CommanderError
CommanderError was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:CommandOptions
CommandOptions was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:createArgument
createArgument was removed in commander 15.0.0 npmjs.com - Removed
esm.mjs:createCommand
createCommand was removed in commander 15.0.0 npmjs.com
And 18 more in this version.
14.0.0
- Removed
Commander 14 drops support for older Node.js versions. Users on Node.js versions below v20 must upgrade Node.js before upgrading Commander. github.com - Signature changed
Command.argument
Was argument<T>(flags: string, description: string, fn: (value: string, previous: T) => T, defaultValue?: T): this; now argument<T>(flags: string, description: string, parseArg: (value: string, previous: T) => T, defaultValue?: T): this. npmjs.com
13.0.0
- Removed
Help.wrap
Help.wrap() was refactored away. Use formatItem() or boxWrap() instead. npmjs.com - Removed
HelpConfiguration.wrap
HelpConfiguration.wrap was removed in commander 13.0.0 npmjs.com - Behavior changed
Option
Option flags such as multiple characters after a single dash now throw during Option construction. Use supported flag forms. github.com - Behavior changed
parse
Calling parse() more than once now throws if storeOptionsAsProperties is true. Parse only once in that configuration. github.com - Default changed
allowExcessArguments
Passing more command-arguments than declared now fails with an error. To keep the old behaviour, call allowExcessArguments() explicitly. github.com - Signature changed
Command.action
The TypeScript parameters for the action handler callback now include the implicit this, which can affect typed handlers. npmjs.com
12.0.0
- Removed
Commander 12 requires Node.js v18 or higher, so users on older Node.js versions must upgrade Node.js before using this release. github.com - Removed
default
The default export of a global Command instance from CommonJS was removed; switch to the named program export or create a new Command. github.com - Behavior changed
When a spawned executable subcommand terminates due to a signal, the parent now exits with a non-zero exit code, which can change scripts that expected success. github.com - Behavior changed
addCommand
Adding a command whose name or alias is already in use now throws, so programs with duplicate command names must be fixed. github.com - Behavior changed
option
Adding an option whose flag is already in use by another option now throws, so programs with duplicate flags must be fixed. github.com - Behavior changed
storeOptionsAsProperties
Calling storeOptionsAsProperties after an option value has been set now throws an error; call it before setting option values. github.com - Signature changed
Command.addHelpCommand
Was addHelpCommand(enableOrNameAndArgs?: string | boolean, description?: string): this; now addHelpCommand(cmd: Command): this addHelpCommand(enable?: boolean): this addHelpCommand(nameAndArgs: string, description?: string): this. npmjs.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp