> This page is for Fern CLI.

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 5.34.0

**`(feat):`** Support uploading raw API spec files alongside the IR during remote generation.
The CLI now sends the IR as the "ir" multipart field (with backward-compatible
"file" support on Fiddle) and optionally appends a "specs" tar.gz archive
containing pre-processed spec files for generators that need them.

## 5.33.7

**`(fix):`** Handle null OpenAPI overlay files as validation failures instead of allowing them
to throw internal TypeErrors during workspace loading.

## 5.33.6

**`(fix):`** Classify missing readme endpoint references in generators.yml as configuration errors.

## 5.33.5

**`(fix):`** Classify unresolved Fern response type references as validation errors instead of reportable internal resolution failures.

## 5.33.4

**`(fix):`** Add retry logic to the air-gap health check so that transient network
failures (DNS blips, momentary connectivity drops) no longer cause false
air-gapped mode detection. The check now retries up to 3 times with
backoff before declaring air-gapped mode. Also logs the underlying
error cause for better debugging.

## 5.33.3

**`(fix):`** Swallow stdout/stderr EPIPE events in the cli-v2 terminal logger so Unix pipe closures do not report false-positive internal errors.

**`(fix):`** Stop reporting invalid endpoint server references during IR-to-FDR conversion to Sentry.

**`(fix):`** Prevent CLI telemetry from failing when the user's home directory cannot store Fern's analytics ID.

## 5.33.2

**`(fix):`** Validate that the Fern instance `url` and every `custom-domain` share the same basepath when
basepath-aware mode is enabled (`multi-source: true` or the deprecated
`experimental.basepath-aware: true`). Previously the check was skipped when the custom domain
was at the root, allowing publishes that would 404 after DNS cutover.

**`(fix):`** Strip any `https://` or `http://` prefix from `custom-domain` entries in `docs.yml` before
they're sent to FDR or used for basepath comparisons. Including the protocol in the configured
value could interfere with basepath resolution during DNS cutover.

## 5.33.1

**`(chore):`** Publish a JSON Schema for `fern.yml` so YAML language servers can provide
autocomplete and validation in IDEs. Regenerate via `fern schema --output`
(or `pnpm fern-yml:jsonschema` in the monorepo).

## 5.33.0

**`(feat):`** Mount pre-processed API specs into generator Docker containers.
Specs are bundled, overrides merged, overlays applied, x-fern-ignore
operations filtered, and x-fern-audiences respected before outputting
compact JSON to generators. Add hidden `resolve-specs` command.

## 5.32.1

**`(chore):`** Bump @fern-api/generator-cli to 0.9.33 (picks up @fern-api/replay 0.16.1).

## 5.32.0

**`(feat):`** Support structured `x-fern-base-path` with per-parameter declarations and defaults.
The OpenAPI extension now accepts an object form with `path` and `parameters`, where
each parameter can specify a `type`, `docs`, and `default`.

## 5.31.0

**`(feat):`** Populate `hasWebSocketInTree` on IR Package/Subpackage types. When a
subpackage (or any of its nested children) contains a WebSocket channel,
this field is set to `true`, enabling generators to wire WebSocket-only
namespaces into the root client.