> 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.

## 3.85.2

**`(chore):`** Regenerate internal SDKs with the latest TypeScript SDK generator to pick up improvements and fixes.

## 3.85.0

**`(feat):`** Auto-correct incorrect `fern-api/` Docker org prefix to `fernapi/` in generator names.
When a generator is specified with `fern-api/` (the GitHub/npm org) instead of `fernapi/`
(the Docker Hub org), the CLI now automatically corrects it and prints a warning.
This applies to CLI commands (`--generator` flag) and `generators.yml` configuration files.

## 3.84.0

**`(feat):`** Add workspace validation caching and skipValidation flag to improve toFernWorkspace()
performance. A global validation cache eliminates redundant JSON schema validation and
Zod parsing when the same files are processed by multiple workspace instances. The
skipValidation option allows callers to bypass JSON schema validation for known-good files.

## 3.83.3

**`(fix):`** Preserve existing README.md during local SDK generation when the generator
does not produce one. Previously, `copyGeneratedFiles` deleted all files
before copying generator output, so if README generation failed silently
the file was removed from the target repository. The file copy methods now
skip deleting README.md when the generated output directory does not
include it.

## 3.83.2

**`(chore):`** Improve CLI startup performance by loading workspace files concurrently.

## 3.83.1

**`(fix):`** Fix S3 signature mismatch for docs assets outside fern/ folder. Paths containing "../"
are now sanitized to prevent HTTP client URL normalization from breaking S3 presigned URLs.

## 3.83.0

**`(feat):`** Add webhook signature verification support. Webhooks can now declare a `signature`
configuration with `type: hmac` or `type: asymmetric`, including algorithm, encoding,
signature prefix parsing, payload format composition, and timestamp-based replay protection.
Supported via Fern Definition `signature` field, OpenAPI `x-fern-webhook-signature` extension,
and the IR `WebhookSignatureVerification` union.

**OpenAPI example** — set `x-fern-webhook-signature` at the document level so
all webhooks inherit the same signature configuration:

```yaml
openapi: 3.1.0
info:
  title: My API
  version: 1.0.0
x-fern-webhook-signature:
  type: hmac
  header: x-webhook-signature
  algorithm: sha256
  encoding: hex
  signature-prefix: "sha256="
  payload-format:
    components:
      - timestamp
      - body
    delimiter: "."
  timestamp:
    header: x-webhook-timestamp
    format: unix-seconds
    tolerance: 300
webhooks:
  orderCreated:
    post:
      operationId: orderCreated
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderEvent'
```

Individual webhook operations can also override the document-level default by
specifying their own `x-fern-webhook-signature` configuration inline.