Changelog
1.10.0 (2026-04-23)
🚀 Features
- display option aliases in help output and hide auto-generated ones (#90)
- cli-forge: lightweight DI via .provide() and getCommandContext() (#79)
🩹 Fixes
- cli-forge: honor
hidden: truefor subcommands in generated help (#93, #43) - docs-site: refactor playground module system to support multi-file examples (#84)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Copilot @Copilot
- Craigory Coppola @AgentEnder
1.9.2 (2026-04-11)
🩹 Fixes
- cli-forge: display object option property details in --help output (#74)
- docs-site: add clickable anchor links to headings (#73)
- parser: support oneOf/coerce for dual-syntax object properties (#72)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.9.1 (2026-04-09)
🩹 Fixes
- cli-forge: flatten types in ComposableBuilder and ArgumentsOf (#71)
- docs-site: ensure extract-api-docs runs before docs-site build and preview (5f7b8ab)
- docs-site: patch rehype-typedoc to disambiguate colliding slugs (#70)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.9.0 (2026-04-08)
🚀 Features
- cli-forge: add oneOf option overload to CLI interface (3b2b288)
- cli-forge: add oneOf support to help text formatting (813ffbc)
- docs-site: add entry file picker to playground run button (77cbcdf)
- parser: add OneOfOptionConfig type definition (0e17dab)
- parser: add oneOf type resolution to BaseType (4e1de0d)
- parser: implement oneOf parser with priority resolution (fb0eb7b)
- parser: add oneOf option overload with union type inference (d1e7705)
- parser: add oneOf option overload with union type inference (5f45164)
🩹 Fixes
- cli-forge: flatten handler args type for cleaner tooltips (4c26fb7)
- cli-forge: flatten TArgs at accumulation points (bf55342)
- docs-site: fix vale errors in comparison guide (aa2c2d9)
- docs-site: add rehype plugin to prepend base URL to root-relative links (30aaaa7)
- docs-site: address PR review comments (dc43795)
- parser: fix oneOf type resolution losing union members (777075b)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.8.1 (2026-04-08)
🩹 Fixes
- repo: prevent scripts package from being published by nx release (#66)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.8.0 (2026-04-08)
🚀 Features
- cli-forge: add browser compatibility and interactive playground (#52)
- cli-forge: formalize bun support with e2e tests, docs, and CI (#61)
- cli-forge: include resolved env keys in generated documentation (e5cbe18)
- cli-forge: add fluent .handler() method (0345bcd)
🩹 Fixes
- parser: handle UPPER_SNAKE_CASE in env key transformation (#65)
- repo: react to triggering review directly instead of searching issue comments (#57)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Craigory Coppola @AgentEnder
1.7.2 (2026-04-03)
🩹 Fixes
- cli-forge: resolve CLI module paths from cwd in import() fallback (#55)
- cli-forge: expose cli export for programmatic access (41f9beb)
- repo: step through npm@10 before upgrading to npm@latest in deploy workflow (#56)
❤️ Thank You
- AgentEnder @AgentEnder
- Copilot @Copilot
- Craigory Coppola @AgentEnder
1.7.1 (2026-03-25)
This was a version bump only, there were no code changes.
1.7.0 (2026-03-25)
🚀 Features
- cli-forge: add shell completion support (cd0e16d)
- docs-site: support example template references in guide docs (784b4b9)
🩹 Fixes
- run vale from docs-site cwd (9a371ab)
- cli-forge: add @types/node and types config to init template (ec86d27)
- docs-site: use sentence case headings in existing guides (10683cf)
- docs-site: disable heading rule for generated HTML dist files (e8f9c02)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Craigory Coppola @AgentEnder
1.6.0 (2026-03-19)
🚀 Features
- parser: support updater functions in updateConfig via proxy tracking (712420f)
🩹 Fixes
- docs-site: render changelog (e28bcbd)
❤️ Thank You
- Craigory Coppola @AgentEnder
1.5.0 (2026-03-19)
🚀 Features
- cli-forge: expose updateConfig and accept AnyConfigProvider in CLI layer (3fbbe1d)
- cli-forge: update ConfigurationProviders.JsonFile for aggregate return type (0ed0a5f)
- parser: add AggregateConfigProvider skeleton and type guard (6702268)
- parser: implement AggregateConfigProvider.load with provenance tracking (54ac294)
- parser: implement AggregateConfigProvider.updateConfig with provenance routing (8596a31)
- parser: implement AggregateConfigProvider.describeConfig (dd898bb)
- parser: integrate AggregateConfigProvider into ArgvParser (ffa8e58)
🩹 Fixes
- cli-forge: remove as-any cast and apply key-aware describeConfig for multi-file JsonFile (70da737)
- cli-forge: use __dirname instead of import.meta.url in e2e update tests (f59b26c)
- parser: fix TS diagnostics in AggregateConfigProvider skeleton (32357d9)
❤️ Thank You
- Craigory Coppola @AgentEnder
1.4.0 (2026-03-18)
🚀 Features
- cli-forge: add config documentation generation and updateConfig support (f740fe7)
❤️ Thank You
- Craigory Coppola @AgentEnder
1.3.0 (2026-03-18)
🚀 Features
- @cli-forge/parser: support choices type inference for array options (b9bd96a)
- cli-forge: add prompt provider type definitions (8c570f2)
- cli-forge: add withPromptProvider registration method (60da1a3)
- cli-forge: implement prompt resolution in forge() lifecycle (2aea85c)
- cli-forge: add clack prompt provider (d517620)
- cli-forge: propagate prompt providers through clone and command chain (0a74843)
- cli-forge: add stream options to clack prompt provider (c257ff4)
- docs-site: scaffold Vike migration (tasks 1-8) (624e35e)
- docs-site: add Vike pages, layout, and global context (694bb27)
- docs-site: integrate TypeDoc API docs and content.md prose rendering (fe93ca9)
- docs-site: render example descriptions through markdown pipeline (91642a5)
- docs-site: add table-of-contents sidebar for doc pages (4e19852)
- docs-site: add table-of-contents to all page types (02eb76d)
🩹 Fixes
- cli-forge: address code review feedback for prompt layer (9b0e8bc)
- docs-site: resolve build issues and update frontmatter (8ed551c)
- docs-site: resolve TypeScript errors in server utils and pages (e512558)
- docs-site: fix SiteExampleFile class and remove unused import (490a9af)
- docs-site: make Home and Changelog top-level nav items (f6a6087)
- docs-site: fix breadcrumb for top-level pages and README logo path (99d564e)
- docs-site: hide _toplevel docs from docs index page (af70b5a)
- docs-site: show top-level docs on index, fix content.md syntax (70396f9)
- docs-site: fix fenced code block regex to handle title metadata (d2c4d35)
- docs-site: formatting and layout tweaks (fd29a42)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.2.3 (2026-02-19)
🚀 Features
- add functional-examples configuration (89daa89)
- migrate basic-cli example to functional-examples schema (f84b338)
- migrate single-file examples to functional-examples schema (13ec526)
- migrate multi-file example metadata to functional-examples schema (b6b0400)
- update e2e to use functional-examples CLI (df842ce)
- docs: replace collectExamples with scanExamples (64484ed)
- docs: update content processing for functional-examples (8507e1a)
🩹 Fixes
- docs: complete migration to functional-examples in Docusaurus plugin (62d0b77)
- docs: resolve TypeScript errors and clean up unused code (a7234b6)
❤️ Thank You
- Craigory Coppola @AgentEnder
1.2.2 (2026-02-17)
🩹 Fixes
- cli-forge: builder of command with -zsh alias should run before parsing (db10526)
- cli-forge: prevent double execution of $0-aliased subcommand builders (6f09a7b)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.2.1 (2026-02-13)
🩹 Fixes
- cli-forge: use subcommand-aware unmatchedParser in discovery loop (ce6e940)
- parser: only consume 'true'/'false' as boolean flag values (8acb1ae)
- parser: check unmatchedParser before positional matching (3355d0c)
❤️ Thank You
- Claude
- Craigory Coppola @AgentEnder
1.2.0 (2026-02-09)
🚀 Features
- add strip-dashed support for automatic camelCase/kebab-case aliasing (#39, #38)
- cli-forge: use Set for middleware storage to enable idempotent registration (5a002d1)
- cli-forge: capture-and-replay in makeComposableBuilder for stable middleware refs (aee7c7c)
- cli-forge: add init hooks with incremental re-parse for plugin loading (2a2f6c2)
- cli-forge: run init hooks at every command level (90dce06)
- cli-forge: run middleware before init hooks in discovery loop (4773480)
- parser: add lenient parse mode for init hooks (0266ea6)
- parser: add validate option and alreadyParsed parameter (1f309e3)
🩹 Fixes
- cli-forge: always run root builder before child commands (a9390b8)
- cli-forge: cli.command(cli('-zsh', ...)) should work for assigning root command (e325bc4)
- parser: move circular config detection from provider state to resolution call (0b39a72)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Copilot @Copilot
- Craigory Coppola @AgentEnder
1.1.0 (2025-12-24)
🚀 Features
- cli-forge: generate llms.txt when generating markdown docs (3745ccb)
- cli-forge,parser: add strict mode to parser and CLI (d9299d7)
❤️ Thank You
- AgentEnder @AgentEnder
- Craigory Coppola @AgentEnder
1.0.2 (2025-12-19)
🩹 Fixes
- cli-forge: ensure handler return types flow through sdk typings properly (36c6a12)
❤️ Thank You
- Craigory Coppola @AgentEnder
1.0.1 (2025-12-19)
🩹 Fixes
- cli-forge: ensure sibling command handlers are typed properly (82bff84)
❤️ Thank You
- Craigory Coppola @AgentEnder
1.0.0 (2025-12-19)
🚀 Features
- cli-forge: add sdk() method for programmatic CLI invocation (8b87697)
- cli-forge: improve SDK and getBuilder composability (793df62)
- ⚠️ parser: remove additionalProperties from object options (4d0cfd5)
⚠️ Breaking Changes
- parser: remove additionalProperties from object options (4d0cfd5)
The
additionalPropertiesoption has been removed from object option configuration. Rationale for removal:- The feature added significant type complexity (WithAdditionalProperties, index signature unions) that complicated the type inference system
- Index signatures with union types created confusing bracket-access semantics where explicit properties mixed with additional property types
- The use case for dynamic additional properties is better served by using a coerce function to transform the value, or by defining explicit properties upfront
- Removing this simplifies the type resolution pipeline and makes
object option types more predictable
Migration: If you were using
additionalProperties, either:
- Add explicit properties for the keys you need
- Use a
coercefunction to handle dynamic properties - Use a
Record<string, T>type viacoercefor fully dynamic objects Affected APIs:
- ObjectOptionConfig no longer accepts additionalProperties parameter
- OptionConfig type now has 3 type parameters instead of 4
- WithAdditionalProperties type helper has been removed
❤️ Thank You
- Craigory Coppola
0.12.0 (2025-12-11)
🚀 Features
- cli-forge: add TChildren, THandlerReturn, TParent type parameters to CLI interface (d59c213)
- cli-forge: implement getChildren, getParent, getHandler methods (d9ed677)
- cli-forge: enhance makeComposableBuilder to track children types (04cf6be)
🩹 Fixes
- cli-forge: update CLI type annotations in documentation tools (3bfda46)
- e2e: prevent flaky module resolution in examples (4462654)
- e2e: use --build mode for tsc --force flag (56eec7c)
- parser: use explicit .js extensions in config-files imports (3289c84)
- parser: fix additionalProperties type compatibility with nested objects (79b7b0a)
- parser: update option overloads to use new additionalProperties types (f1e6247)
- parser: improve WithAdditionalProperties type to use intersection (8d7da19)
- type-tests: add @ts-expect-error comments to intentional type errors (3f94e79)
- type-tests: update fixtures for correct type usage patterns (27904be)
- type-tests: update fixtures for new additionalProperties semantics (5dcba96)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.11.0 (2025-12-04)
🚀 Features
- cli-forge: add ESM/CJS module detection for documentation generation (bbc0c85)
- cli-forge: add type-safe cli() wrapper with object option overloads (c160918)
- core: allow middleware to return new object instead of mutating original object (a5db3c7)
- docs-site: preliminary support for ts-playground (#27)
- middleware: add zod middleware (e34b25f)
- parser: add object option overloads and improve type safety (beb2117)
🩹 Fixes
- improve local registry package.json reset handling (e1f3d0d)
- resolve CI failures on main branch (bfd4bcb)
- restore useEffect cleanup for editor in playground component (7b17e1f)
- ci: use npx instead of node to run nx (5cdc141)
- ci: configure npm OIDC trusted publishing correctly (c4fa18f)
- cli-forge: improve peerDependenciesMeta type checking (0140173)
- cli-forge: ensure tui exits properly when user types exit (eea5270)
- docs-site: playground should support full types + expose playground (e6eb29f)
- repo: shim cli-forge to allow pnpm to resolve it prior to build (df9e9f8)
- type-tests: fix failing tests in compiler and query specs (a329aad)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.10.1 (2024-09-20)
🩹 Fixes
- cli-forge: fix bin entries for init to exclude .ts extension (d35e315)
- cli-forge: interactive subshell help should work (61f8f18)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.10.0 (2024-09-18)
🚀 Features
- parser: add env config options
reflectandpopulate(#24)
🩹 Fixes
- parser: optional arguments are possibly undefined (#25)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.9.0 (2024-09-17)
🚀 Features
- cli-forge: add arguments-of helper and command alias support (b56bedb)
- cli-forge,parser: add support for loading args from configuration files (4439ece)
- docs-site: support for multifile examples (161cf08)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.8.1 (2024-09-16)
🩹 Fixes
- cli-forge: generate-docs should work on windows (fc9243a)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.8.0 (2024-09-05)
🚀 Features
- cli-forge,parser: add composition helpers
chainandmakeComposable*(8063d13) - parser: support negated booleans (--no-x) (25e8da3)
- parser: support object-valued flags (09ce196)
- parser: allow setting descriptions for default values (d1197f9)
🩹 Fixes
- cli-forge: fixup init to include tsc infra (51b1d18)
- parser: choices should narrow arg typing (0a913e2)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.7.0 (2024-08-31)
🚀 Features
- cli-forge: hide hidden options (fb0b1d3)
- cli-forge: add support for renderning grouped options (67dcd8e)
- cli-forge: initial draft for middleware (953b9b7)
- cli-parser: add epilogue support (395a1ea)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.6.0 (2024-08-30)
🚀 Features
- cli-forge: add implicit --version handler (a45be15)
- cli-forge: interactive shell (8fae952)
- parser: allow passing positional args as flag (f1392c2)
🩹 Fixes
- cli-forge: use tsx to load typescript clis when generating docs if it is available (4dafd37)
- parser: clone conflicts and implies when cloning object (9402b82)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.5.0 (2024-08-29)
🚀 Features
- cli-forge: add test harness for checking args and command parsing (e068033)
- cli-forge: add support for implies and conflicts (5afdcc5)
- cli-forge: support for usage + examples (9fca5e7)
- parser: add support for reading args from environment (d6a7edb)
- parser: add support for restricting valid values (fe817fe)
- parser: support deprecated options (affaaa6)
🩹 Fixes
- cli-forge: require command by default when no handler is provided (1703351)
- cli-forge: --help should not throw on argument validation errors (f6859d9)
- cli-forge: properly link subcommands on index pages (26a43af)
- parser: unprefixed args not loading properly (4ce145f)
❤️ Thank You
- Craigory Coppola
0.4.0 (2024-08-28)
🚀 Features
- cli-forge: support for
cli(...).commands()(#2)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.3.0 (2024-08-26)
🚀 Features
❤️ Thank You
- Craigory Coppola @AgentEnder
0.2.0 (2024-08-24)
🚀 Features
- docs-site: add docs site + examples setup (6e62fa5)
- parser: support kebab case and camel case options (a2cd6f0)
🩹 Fixes
- parser: support --flag=value (e00934e)
❤️ Thank You
- Craigory Coppola @AgentEnder
0.1.0 (2024-08-24)
🚀 Features
- initial impl for cli commands (736a324)
- cli-forge: add help text generation and fixup subcommands (11db4b1)
- cli-forge: support demand command (c15f7f0)
- parser: add support for coerce (01e5f5f)
- parser: alias support (eb7b299)
- parser: support for default values (1dcd427)
- parser: support for validators (072066c)
- parser: support for
--(7698078) - parser: support for passing array as multiple flags (71cd161)
❤️ Thank You
- Craigory Coppola @AgentEnder