> This page is for 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.

## 4.94.3

**`(chore):`** Polish the `fern automations generate` step-summary heading and the
`generators.yml` deep-link lookup.

* The failure heading now excludes skipped generators from the
  denominator. A run of 4 succeeded, 2 failed, 4 skipped previously read
  `❌ SDK generation failed (4/10 succeeded)` — implying 6 failures. It
  now reads `❌ SDK generation failed (4/6 succeeded, 4 skipped)`.
* Added a distinct `⏭️ SDK generation skipped` heading for runs where
  every generator was skipped. Previously these printed the cheerful
  `✅ SDK generation succeeded` heading despite nothing having run.
* Tightened the `generators.yml` line-number regex to only match
  `- name: <slug>` list-item entries. Nested `name:` keys (e.g. inside
  `publishInfo`) and free-form values (e.g. a reviewer's full name) no
  longer collide with generator lookups. Trailing YAML comments on the
  `name:` line are tolerated.
* Added an `assertNever` exhaustiveness check on the generator-status
  switch so a future status variant fails at compile time instead of
  silently miscounting.

**`(chore):`** Re-publish CLI after the 4.94.2 production publish failed in CI. The dev
version had already been published in an earlier job, so the prod job's
dev re-publish step errored out and prevented the prod publish from
running.

## 4.94.2

**`(fix):`** Fix Python dynamic snippet generation to respect the `use_typeddict_requests`
configuration option. When enabled, dynamic snippets now generate dict literals
instead of Pydantic model constructors for object and discriminated union types.

## 4.94.1

**`(fix):`** Fix global theme asset downloads preserving original filenames and extensions.
Previously, assets downloaded from S3 CAS URLs (whose pathname is a raw content
hash) were saved without a file extension, breaking downstream MIME type detection.
The CLI now reads the filename from the presigned URL's response-content-disposition
query parameter, falling back to the Content-Disposition response header, then
Content-Type, so files land on disk with their correct names (e.g. logo.svg).

## 4.94.0

**`(feat):`** Add consumer-side support for the `global-theme` key in docs.yml. When a docs site
declares `global-theme: <name>`, the CLI fetches the named theme from Fern's cloud
registry and merges it into the docs configuration before building (theme values win
for branding fields). Works with `fern generate --docs`, `fern generate --docs --preview`,
and `fern docs dev` (dev mode requires FERN_TOKEN to be set).

## 4.93.0

**`(feat):`** Expose `claude-code` under `page-actions` in `docs.yml` so docs sites can toggle the
"Connect to Claude Code" button (e.g. `page-actions.options.claude-code: false` or
`page-actions.default: claude-code`).

## 4.92.0

**`(feat):`** `fern automations generate` now writes a richer GitHub Actions step
summary. The summary is an HTML table grouped by API and generator group
(with rowspan cells), a heading that shows the succeeded/total count on
failure, a duration column, and a links column with the PR, SDK repo, and
generators.yml entry (the latter deep-linked to the exact line when running
under GitHub Actions). Generators excluded from automation now surface as
explicit skipped rows with reasons (`Skipped - local output`, `Skipped -
opted out`), replacing the silent drop.