1.9.2
(fix): Fix issue where x-fern-explorer was not hiding routes from the API Explorer
1.9.1
(fix): Fix issue where <Code /> components were not able to be added during fern docs dev mode.
1.9.0
(feat): Add external configuration to tsup build to prevent dev-only dependencies (prettier, vitest, typescript, tsup, depcheck, @types/*) from being accidentally bundled.
This ensures the CLI bundle only includes runtime dependencies and enables metafile generation for bundle analysis.
1.8.1
(fix): Fix issue where local generation for github output mode wasn’t producing README.md files
1.8.0
(feat): Add fern sdk-diff command to analyze the differences between two SDKs and generate a commit message and version bump.
1.7.0
(feat): Replace prettier2 with yaml package in fern format command to reduce CLI bundle size by ~4.3 MB (11.4% reduction from 38 MB to 33.67 MB).
YAML formatting output may have minor differences (e.g., extra blank lines after section headers like types: and errors:).
1.6.0
(feat): Add fern self-update command to update the globally installed Fern CLI.
The command detects how the CLI was installed (npm, pnpm, yarn, bun, or brew) and runs the appropriate update command.
Supports updating to a specific version (e.g., fern self-update 0.85.0) or the latest version (e.g., fern self-update).
Includes --dry-run flag to preview the update command without executing it.
1.5.0
(feat): Add fern downgrade <version> command to set the CLI version in fern.config.json. This allows users to pin their project to a specific CLI version without running migrations.
1.4.0
(feat): Enable local generation with preview mode by removing incompatibility restriction and migrating github
operations handling from generator-cli to fern-cli.
1.3.1
(fix): Fix duplicate upgrade messages when one CLI version reruns another. The parent process now properly suppresses its upgrade nudge so only a single message is shown.
1.3.0
(fix): Made fern upgrade safer by running migrations before updating fern.config.json. If migrations fail, your config stays unchanged.
(feat): Added --from flag to fern upgrade to manually specify the version to migrate from when needed.
(fix): Improved fern upgrade reliability by automatically detecting and recovering from faulty CLI upgrades. When upgrading from a problematic CLI version, Fern now retrieves the correct previous version from git history to ensure migrations run properly.
1.3.0-rc2
(fix): Make sure fern upgrade with --rc follows the same migration logic as non-rc upgrades.
1.3.0-rc1
(fix): Make sure fern upgrade with --rc follows the same migration logic as non-rc upgrades.
1.3.0-rc0
(fix): Made fern upgrade safer by running migrations before updating fern.config.json. If migrations fail, your config stays unchanged.
(feat): Added --from flag to fern upgrade to manually specify the version to migrate from when needed.
(fix): Improved fern upgrade reliability by automatically detecting and recovering from faulty CLI upgrades. When upgrading from a problematic CLI version, Fern now retrieves the correct previous version from git history to ensure migrations run properly.
1.2.0
(feat): Show AI example generation progress in the spinner line. When generating AI examples, the spinner displays generating AI examples for {API name} - X/Y to track progress without creating terminal noise.
1.0.5
(fix): Ensure 1.0.0 settings migration runs for users upgrading from pre-1.0.0 versions. This addresses a previous off-by-one error in migration selection that could cause the 1.0.0 migration to be skipped.
1.0.4
(fix): Fix CLI migration selection to include the target version’s migrations during fern upgrade. Previously, an off-by-one error excluded the target version (e.g., 1.0.0), causing its migration not to run. Users who upgraded to 1.0.0 should upgrade to 1.0.4 and run fern upgrade again to apply the 1.0.0 migration.
1.0.3
(fix): Specify the target of links throughout the docs navigation.
1.1.0
(feat): Add path-parameter-order, which configures how path parameters are ordered in generated code.
If set to url-order (the default), path parameters are ordered in the same order as they appear in the URL.
If set to spec-order, path parameters are ordered in the same order as they are listed in the spec.
Can be configured as follows in generators.yml:
1.0.2
(fix): Display OpenAPI validation warnings when using the —warnings flag with fern check. Previously, warnings were counted but not shown; now they are logged with location details when —warnings is specified.
1.0.1
(fix): Update OpenAPI operation converter to use x-fern-explorer extension instead of x-fern-explorer-enabled for setting apiPlayground property in the IR. Operations now check for the x-fern-explorer boolean value to determine API playground availability.
1.0.0
(feat): Change defaults for OpenAPI and AsyncAPI parsing settings:
title-as-schema-name:false(wastrue)respect-nullable-schemas:true(wasfalse)inline-path-parameters:true(wasfalse)idiomatic-request-names:true(wasfalse)type-dates-as-strings:true(wasfalse)wrap-references-to-nullable-in-optional:false(wastrue)coerce-optional-schemas-to-nullable:false(wastrue)object-query-parameters:true(wasfalse) The CLI will automatically upgrade your generators.yml to explicitly set the old defaults to preserve existing behavior. New users will get the new defaults.
0.121.2
(chore): Refactor how settings from specs are parsed and applied in the CLI.
0.121.1
(feat): Match endpoints to AI overrides examples.
0.121.0
(feat): Add batching support for AI example enhancement. The CLI now processes up to 10 endpoints at once with a single pruned OpenAPI spec, improving performance. Non-OpenAPI specs are automatically skipped.
0.120.0
(break): Rename OpenAPI extensions: x-fern-playground → x-fern-explorer and x-fern-playground-enabled → x-fern-explorer-enabled. The old extension keys are no longer recognized.
0.120.1
(fix): Support adding arbitrary metadata to <Code /> components. Title and language are set by default, but can be overridden with title and language props.
0.119.1
(feat): Add x-fern-playground extension to OpenAPI importer to control API playground visibility. Defaults to true.
0.119.0
(feat): Add global settings flag to generators.yml configuration.
Overrideable by api.specs[].settings (which is itself overrideable by group.generators[].settings as before).
0.118.0
(feat): Add support for external URLs in <Code src="..."> tags in docs markdown. Code snippets can now reference external URLs (e.g., raw.githubusercontent.com) to fetch code content dynamically.
0.117.0
(feat): Add support for hidden versions.
0.116.1
(fix): Retrieve package name from module.path configuration for Go SDK generator to support local generation workflows
0.116.0
(feat): Add support for a minimal footer navigation theme.
0.115.6
(fix): Do not upload snippet-templates.json files to FDR.
0.115.5
(fix): Fix PyPI credentials to use standard environment variable names (PYPI_USERNAME, PYPI_PASSWORD) and correct package version propagation for local generation
0.115.4
(fix): Improve error message for unknown API definitions in docs.yml.
0.115.3
(fix): Fix name deconfliction for subtypes of an undiscriminated union (especially when one is an enum).
0.115.2
(fix): Fix gRPC source resolution to log warnings instead of throwing errors when protobuf sources cannot be resolved, matching OpenAPI behavior.
0.115.0
(feat): Add support for multiAuth field in FDR endpoint definitions to represent OpenAPI security with OR-of-AND semantics.
0.115.1
(fix): Update markdown variable replacement to use double curly braces for variable interpolation.
0.114.0
(feat): Add new remove-discriminants-from-schemas setting for OpenAPI/AsyncAPI imports in generators.yml.
If "always", discriminant properties are removed from schemas when generating types, unless the schema is also used outside of a discriminated union.
If "never", schemas are left untouched.
Defaults to "always".
(fix): Do not remove discriminant properties from schemas when generating types if the schema is also used outside of a discriminated union.
0.113.1
(fix): Make individual theme options optional in docs.yml.
0.113.0
(feat): Add support for page actions theme in docs.yml.
0.112.2
(fix): - Gracefully circuit-break from recursive examples
0.112.1
(fix): Fix OpenAPI importer to correctly handle oneOf[Type, null] and anyOf[Type, null] patterns for non-required properties. These properties are now properly represented as optional(nullable(T)) in the IR, ensuring autogenerated examples omit the field instead of generating {}. This preserves tri-state semantics (absent, null, present) for both collapsed Optional<T> and non-collapsed OptionalNullable<T> modes.
0.112.0
(feat): Markdown snippets now support passing parameters to the markdown file.
0.111.0
(feat): OpenAPI importer now converts request bodies to referenced requests when body parameter names overlap with query parameter names. This ensures proper type generation and avoids naming conflicts in generated SDKs.
0.110.1
(chore): CLI will send the correct IR version to latest Ruby generator.
0.110.0
(chore): Add support for file hashing when running fern generate --docs. This allows for more efficient file uploads to the docs site by only uploading files that have changed since the last generation.
0.109.1
(fix): Fix TypeScript SDK generator’s local GitHub generation to match remote generation.
0.109.0
(feat): Add support for binary primitive type in Conjure parser. Binary types are now converted to string with format: binary in Fern definitions, resolving “Cannot find declaration of type: binary” errors when importing Conjure files.