> This page is for Docs.

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

# Changelog

## October 8, 2026

## Dynamic OG images on by default

seo

Sites that set no site-wide `og:image` or `twitter:image` now get a generated preview image for every page, so links shared in Slack, X, and LinkedIn show a card image instead of a blank placeholder. Pages with their own `og:image` in frontmatter keep it. Set `og:dynamic: false` under `metadata` in `docs.yml` to opt out.

Read the docs

## October 2, 2026

## Draggable Ask AI chat widget

ai, components

Visitors can now move the standalone `AskAiChat` widget anywhere on the page. Drag the card by its header, or drag the launcher button itself and the card follows. The widget stays inside the viewport, and the card opens above or below the launcher depending on where there's room. Dragging is on by default in `@fern-api/search-widget` 0.6.0; pass `draggableCard={false}` to keep the chat pinned to its `placement` corner.

Read the docs

## September 18, 2026

## PHP filter for llms.txt and Markdown output

ai

You can now pass `lang=php` to `/llms.txt` and to per-page `.md` and `.mdx` URLs to return only PHP SDK code examples. `php` joins `node`, `python`, `java`, `ruby`, `go`, `csharp`, and `swift` as accepted values for the `lang` query parameter.

**`Example`**

```txt Example
/llms.txt?lang=php
/plants/create-plant.md?lang=php
```

Read the docs

## Exclude changelogs from llms.txt

ai

You can now omit changelog sections from `llms.txt` by adding the `excludeChangelog=true` query parameter. This keeps the index small for sites with long release histories. It combines with the existing `lang` and `excludeSpec` parameters, for example `/llms.txt?lang=python&excludeSpec=true&excludeChangelog=true`.

Read the docs

## More page suggestions in agent 404 responses

ai

Requests for a nonexistent `.md` URL now return up to five "Similar pages" suggestions instead of three, so agents on large sites are more likely to find the page they were looking for.

Read the docs

## September 17, 2026

## Site-level changelog for multi-product sites

navigation, docs.yml

Multi-product sites can now have a single changelog shared by every product. Add a top-level `changelog` key in `docs.yml` next to `products` and the changelog is served at `/changelog`, without a product slug prefix and without appearing in the product switcher. This replaces the workaround of a dedicated "Changelog" product hidden with CSS.

**`docs.yml`**

```yaml docs.yml
products:
  - display-name: Ferns
    path: ./products/ferns.yml
  - display-name: Cacti
    path: ./products/cacti.yml
changelog:
  changelog: ./changelog
```

Read the docs

## Reference API specs directly from docs.yml

api-reference, docs.yml

You can now point an `api` navigation item straight at your OpenAPI, AsyncAPI, or GraphQL specification files with a `specs` list, without creating a `generators.yml`. Each entry takes a `type` and a `path` (relative to the configuration file), plus optional `overrides`, `overlays`, and `namespace`. Existing `api-name` setups are unchanged.

**`docs.yml`**

```yaml docs.yml
navigation:
  - api: API Reference
    specs:
      - type: openapi
        path: ./openapi.yml
```

Read the docs

## September 11, 2026

## Custom Ask Fern disclaimer

ai, docs.yml

You can now replace the default Ask Fern disclaimer ("Responses are generated using AI and may contain mistakes.") with your own wording. Set `ai-search.disclaimer` in `docs.yml` and the text appears beneath answers in the chat panel, standalone modal, mobile drawer, and search widget, so the disclaimer can match your legal or privacy requirements.

**`docs.yml`**

```yaml docs.yml
ai-search:
  disclaimer: Answers are generated by a third-party AI model and may be inaccurate.
```

Read the docs

## September 8, 2026

## Playground-only authentication descriptions

api-reference

You can now add auth instructions that appear only in the API Explorer, such as where to generate a token, without changing the Authorization description in your API Reference. Set `x-fern-playground-description` on a security scheme in your OpenAPI spec, or `playground-docs` on an auth scheme in a Fern Definition. The text renders as an info callout beneath the matching auth input and supports links, inline code, and paragraphs.

Read the docs

## September 1, 2026

## Custom search metadata for faceting

search, frontmatter

You can now attach your own key-value metadata to a page with the `search-metadata` frontmatter object. Fern copies the block onto every Algolia record for that page and declares each key for faceting, so a custom search integration can group and filter results by your own taxonomy.

Read the docs

## Per-deployment values in self-hosted docs

self-hosted, customization

A self-hosted container can now resolve environment variables in the pages it serves, on each request. A `${VAR}` whose name is listed in `FERN_RUNTIME_ENV_VARS` is deferred past generation instead of being substituted with its build-time value, so one image serves deployments that differ only in those values.

Read the docs

## August 31, 2026

## Fern Agent automations

ai

You can now put Fern Agent on a schedule. Create an automation on the **Automations** page in the [Fern Dashboard](https://dashboard.buildwithfern.com/). You can also describe the recurring work in the chat panel or Slack, and Fern Agent will set up an automation for you. Automations can review your reader feedback, unanswered Ask Fern questions, search queries, or analytics, report back what it found, and open a pull request when the prompt asks for a change.

Read the docs

## GraphQL types in API References

api-reference

GraphQL API References now include a page for every named type in your schema, collected under a `Types` section at the API Reference root and grouped by kind: Objects, Inputs, Enums, Scalars, Interfaces, and Unions. Interface pages list the interface's fields and the types that implement it.

Read the docs

## August 28, 2026

## Card images in Fern Editor

developer-tools, components

You can now configure a Card's image title, link, source, position, and badge directly in Fern Editor. Repo-relative image paths resolve in the Editor, and the preview matches the published Card component.

Read the docs

## August 27, 2026

## GraphQL schemas split across multiple files

api-reference, generators.yml

You can now generate a single GraphQL API Reference from a schema split across several SDL files, including Apollo Federation subgraphs. List each file as its own spec in `generators.yml` with the same `name`, and Fern compiles them into one schema.

Read the docs

## Blog layouts for changelogs

navigation, customization

You can now present a changelog as a blog, with dated entries rendered as cards in a grid or list, tag filters, search, and author bylines on each post. Use this layout when a changelog functions more like a series of announcement posts than a list of releases. Set `layout: blog` and `blog-layout` in the changelog overview frontmatter.

Read the docs

## Redirects in separate files

seo, docs.yml

You can now keep redirects in a separate YAML file and reference it from `docs.yml`. You can also split redirects across multiple files.

**`docs.yml`**

```yaml docs.yml
redirects: ./redirects.yml
```

Read the docs

## August 25, 2026

## Fern Agent

ai

Fern Agent edits your documentation and analyzes your organization’s Fern data. Talk to it in the Fern Dashboard chat panel, or integrate it with your Slack or your coding agent (via MCP) in one click.

Read the docs

## Connect your coding agent to Fern over MCP

ai, developer-tools

Fern now hosts a private MCP server for the agent you build your docs with, with full context on Fern's documentation and configuration — `docs.yml` syntax, components, CLI commands, and API definitions. It's scoped to a single organization and returns only what your Fern account can already see: your sites and their configuration, deployment and preview-URL status, traffic and 404 analytics, search queries, Ask Fern conversations, and page feedback. Run `fern mcp install` to connect Claude Code, Cursor, or Codex to it.

Read the docs

## August 24, 2026

## Local library docs generation from git inputs

api-reference, local-development

You can now iterate on library docs locally from `git` inputs, not just `path` inputs. `fern docs md generate --local` reads the library source from the repository at the configured `ref` and parses it on your machine, so you can preview generated pages without publishing or logging in to Fern.

Read the docs

## August 19, 2026

## Disable the API Explorer for WebSocket channels

api-reference

You can now turn off the API Explorer for WebSocket channels defined in an AsyncAPI specification. Set `x-fern-explorer: false` at the document root to hide the Playground for every channel, and override it on individual channels with `x-fern-explorer: true`.

Read the docs

## August 17, 2026

## Standalone Ask AI sidebar panel

ai, search

The [`@fern-api/search-widget`](https://www.npmjs.com/package/@fern-api/search-widget) package now ships an `AskAiChat` component: a sidebar panel that answers questions from your documentation inside any React application, like a dashboard or marketing site. The panel becomes a bottom drawer on small screens, and the `theme` and `accentColor` props match it to your product.

Read the docs

## August 12, 2026

## Scroll-synced code walkthroughs

components

You can build scroll-synced code walkthroughs with the new `<ScrollWalkthrough>` component. Prose steps flow down the page while a code panel stays pinned beside them, following the reader's scroll position. Use this component for quickstarts and integration guides where successive steps add to the same few files.

#### Install the SDK

Add the Plant Store SDK to your project.

**`Terminal (line 1)`**

```bash Terminal (line 1)
npm install @plantstore/sdk
```

#### Create the client

Point the client at your garden with an API key.

Import the client.

**`garden.ts (line 1)`**

```ts garden.ts (line 1)
import { PlantStore } from "@plantstore/sdk";
```

Construct it with your API key.

**`garden.ts (lines 3-5)`**

```ts garden.ts (lines 3-5)
const client = new PlantStore({
  apiKey: process.env.PLANT_API_KEY,
});
```

#### Add a plant

Create your first plant record. The `wateringDays` interval drives care reminders.

**`garden.ts (lines 7-11)`**

```ts garden.ts (lines 7-11)
await client.plants.create({
  name: "Monstera deliciosa",
  light: "bright-indirect",
  wateringDays: 7,
});
```

#### Complete files

**`Terminal`**

```bash Terminal
npm install @plantstore/sdk
```

**`garden.ts`**

```ts garden.ts
import { PlantStore } from "@plantstore/sdk";

const client = new PlantStore({
  apiKey: process.env.PLANT_API_KEY,
});

await client.plants.create({
  name: "Monstera deliciosa",
  light: "bright-indirect",
  wateringDays: 7,
});
```

Read the docs

## August 10, 2026

## Readable API Reference Markdown for agents

ai, api-reference

API Reference endpoint and webhook pages served as Markdown (through `.md` URLs and `llms.txt`) now render a flattened property list. Requests, responses, and authentication appear as bullets with each property's name, type, required flag, and description, and nested objects are indented.

Internal component schema names and `$ref` chains aren't included to conserve tokens and improve readability.

Read the docs

## August 6, 2026

## Build a docs version from a git ref

navigation, docs.yml

You can now point a version entry at a git `ref` (a branch, tag, or commit SHA) instead of a `path` in your working tree. On publish, Fern builds that version's content from the ref, composed with the current branch's theme and shell. Use it for a version that no longer receives content updates, such as a past release; keep actively maintained versions on `path`, since `fern docs dev` previews working-tree versions only.

**`docs.yml`**

```yaml docs.yml {5}
versions:
  - display-name: Latest
    path: ./versions/latest.yml
  - display-name: v2
    ref: v2.0.0
    availability: deprecated
```

Read the docs

## July 31, 2026

## Send defaults for optional parameters in the API Explorer

api-reference, docs.yml

You can now have the API Explorer pre-fill and send the declared `default` (or `x-fern-default`) of optional header, query, and path parameters. Set `playground.send-optional-defaults: true` in `docs.yml` on an API, section, or endpoint.

**`docs.yml`**

```yaml docs.yml {4}
navigation:
  - api: API Reference
    playground:
      send-optional-defaults: true
```

Read the docs

## July 28, 2026

## Organization-wide CLI version policy

developer-tools

[Admins](/learn/dashboard/configuration/permissions#admin) can now bound the Fern CLI version that every project in an organization runs. Set a minimum, a maximum, or an exact version with `fern org set cli-version`, and each project runs the nearest allowed version. The bounds live on the organization, so no `fern.config.json` has to change. `fern org get` reports the policy and `fern org unset cli-version` clears it. `fern upgrade` respects the same bounds when it writes a new version.

Read the docs

## July 23, 2026

## Show availability badges in the sidebar

navigation, docs.yml

Rendering availability badges (Beta, Deprecated, etc.) as a badge in the sidebar navigation is now opt-in rather than automatic. Set `layout.show-nav-availability-badges: true` in `docs.yml` to enable it for your site; it's off by default.

Read the docs

_Showing the 20 most recent of 122 entries. Append `/llms.txt` to the changelog URL for the complete index._