npm / citty
citty
What changed in citty 0.2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
1 breaking7 new APIs and options1 performance4 behavior and defaults6 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initcitty 0.219 changes
Breaking changes 1
The distribution is ESM-only, which affects how projects can consume the package.
New APIs and options 7
A default subcommand is now supported.
Users can define arguments using the built-in help and version flags.
A plugin system is now available.
Subcommands can now have aliases.
Arguments support an enum type.
Command metadata can use hidden to hide a command.
Args can specify a negativeDescription.
Performance 1
citty now has zero dependencies, reducing install size from 267kB to 22.8kB.
Behavior and default changes 4
An alias value now takes precedence over a default value.
Negative boolean argument usage is printed conditionally.
Number args can be optional.
Parsed optionals and enum arguments have updated type safety.
Fixes and other changes 6
Parsed argument values are coerced to match their declared types.
Subcommand resolution no longer incorrectly consumes flag values.
Usage tips are improved.
Propagates --no- negation to aliases and the main option.
CLI error messages are shown.
The value type of NumberArgDef is corrected to number.