All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.7.0 - 2026-05-14
flagtype.EnumDefaultconstructor for enums with an initial default valueCmdfield onStateexposing the terminal command selected during parsingSummaryfield onCommandfor the short text shown in command listsUsageErrorffor opt-in usage errors;Runprints command help to stderr before returning the underlying error
- BREAKING: Replace
Command.UsageFuncwithCommand.Help, which returns the full help string for a command - BREAKING: Replace
Command.ShortHelpwithCommand.Summaryfor command lists andCommand.Descriptionfor longer command help text - BREAKING: Rename
FlagOptiontoFlagConfigandCommand.FlagOptionstoCommand.FlagConfigs - Commands with subcommands and no
Execnow report a usage error when no child command is selected, before enforcing required flags inherited by child commands
- BREAKING: Remove
ErrHelp; checkerrors.Is(err, flag.ErrHelp)when handlingParsedirectly - BREAKING: Remove
DefaultUsageand the top-levelUsagefunction from the public API
v0.6.0 - 2026-02-18
- New
flagtypepackage with commonflag.Valueimplementations:StringSlice,Enum,StringMap,URL, andRegexp
v0.5.0 - 2026-02-17
- BREAKING: Rename
FlagMetadatatoFlagOptionandFlagsMetadatafield toFlagOptions
v0.4.0 - 2026-02-16
Localfield onFlagOptionfor granular control over flag inheritance -- flags marked local are not inherited by subcommands- Short flag aliases via
FlagOption.Short ParseAndRunconvenience function for parsing and running a command in one call
- Enhanced usage output with type hints, required markers, and zero-default suppression
- Improved
ParseToEndand internal flag parsing with edge case fixes
- Default nil context to
context.BackgroundinRun
v0.3.0 - 2025-11-22
- Top-level
gracefulpackage for signal handling - Comprehensive edge case tests for CLI library
- Use sync.Once to get module name from runtime
- Improve panic location reporting
v0.2.1 - 2025-02-01
- Update name regex to allow underscore and dash in command names
v0.2.0 - 2025-01-07
- Remove
ParseAndRunin favor of separate parse and run steps
v0.1.0 - 2025-01-06
- Initial release of the CLI library
- Command tree with subcommands and flag parsing
Pathmethod on*Commandfor full command path- Flag metadata with required flag support
- Command name typo suggestions (Levenshtein distance)
- Boolean flag handling
textutilandsuggesthelper packages- GitHub Actions CI