Tables now support pagination, which splits rows across pages (<PaginatedTable>). Paginated tables can optionally be searchable (<PaginatedSearchableTable>) or expandable (expandable prop).
Use these new options to keep long reference tables scannable without a wall of rows.
Changelogs now support two layouts:
timeline (default) renders a searchable timeline of condensed entry cards.classic renders stacked full entries inline, preserving code formatting, copy buttons, and links.Set either value site-wide with layout.changelog-layout in docs.yml:
You can now fully disable the MCP server on your docs site by setting page-actions.options.mcp: false in docs.yml. When disabled, the /_mcp/server endpoint returns 404, the MCP URL is omitted from llms.txt and agent prompts, and the “Connect to Claude Code” / “Connect to Cursor” buttons are hidden.
This is particularly useful for authenticated docs sites where unauthenticated AI agents discover the endpoint but can’t use it.
Changelog pages now render as a compact, date-grouped timeline of entry cards by default, instead of stacking full-height entries inline.
A search bar at the top lets readers find entries across the entire changelog by keyword. The query syncs to the ?q= URL parameter, so filtered views are shareable.
Changelog entries with multiple releases under separate headings can tag each heading independently using the <ChangelogTags> component:
Tags on individual entry pages are clickable and link back to the timeline with that tag pre-selected as a filter.
You can now generate library documentation from local source code using the --local flag. Instead of pushing to a remote repository and parsing on Fern’s servers, fern docs md generate --local parses the source locally. This doesn’t require you to be logged in to Fern.
To use local generation, set your library’s input to a path instead of a git URL:
Fern no longer generates llms-full.txt, and the llms-full-txt configuration in docs.yml is deprecated. Concatenating an entire site into one file exceeded most model context windows, added heavy serving overhead, and saw little use next to llms.txt combined with per-page Markdown.
Use llms.txt to discover page URLs and fetch individual pages via their .md URLs.
You can now install the fern-docs agent skill to teach coding agents like Claude Code, Cursor, and Copilot how to work with Fern Docs. The skill covers docs.yml configuration, navigation, MDX pages, components, and changelog entries, with task-specific references that agents load on demand.
Fern docs sites can now serve author-supplied Agent Skills at the standard /.well-known/skills/ and /.well-known/agent-skills/ endpoints. Place your skill bundle under fern/.well-known/agent-skills/ and the CLI uploads it during fern generate --docs. Users install with npx skills add https://<your-domain>.
You can now add an “Install skills” button to the page action bar via page-actions.options.skills in docs.yml. The button opens a modal showing a copyable install command, the list of available skills, and a link to the skill source. The modal fetches the site’s served well-known manifest on first open, so the skill list stays in sync with what npx skills add installs.
You can now control how search results are ranked and filtered for sites with multiple products or versions using the new settings.search object in docs.yml.
prioritize-current-product boosts results from the current product higher in the ranking without hiding other products.default-filter-by-current-product auto-selects the current product as a facet filter so only current-product results appear by default.Interactive API components now render as fenced code blocks and structured content in your site’s Markdown output. AI agents consuming your docs via .md URLs, llms.txt, or llms-full.txt receive the full request and response examples without parsing HTML, reducing content disparity between the rendered page and its Markdown representation.
This applies to the following components:
You can now check for broken links on your live documentation site directly from the Fern CLI with fern docs link check. The command scrapes every page on your published site, checks all internal and external links, and reports broken (404) and blocked (403) URLs along with the source pages where they appear.
You can now serve your own robots.txt at the root of your documentation site by pointing agents.robots-txt at a file in your repo. Use this to opt in or out of specific AI crawlers like GPTBot or ClaudeBot, gate sensitive sections from indexing, or signal training and search preferences with the Cloudflare Content Signals Policy. Your file is served verbatim at /robots.txt, and Fern appends a managed block disallowing internal API routes after your content.
Multi-source docs lets each team publish independently to a shared custom domain — for example, docs.nvidia.com spans sub-paths like /nvcf, /brev, and /aiperf, each owned by a different product team and repository.
Set multi-source: true on the instance and reference a global theme for consistent branding across repositories.
AI agents, MCP clients, and API catalog crawlers can now discover your APIs automatically. Every Fern Docs site exposes a standards-based (RFC 9727) /.well-known/api-catalog endpoint generated from your visible API Reference navigation.
You can now point <Prompt> actions at any AI tool, not just Cursor, Claude, and ChatGPT. Send readers to Perplexity, your own internal AI assistant, or any other URL.
Generate a TypeScript SDK from my OpenAPI spec. Follow the [TypeScript SDK quickstart](https://buildwithfern.com/learn/sdks/generators/typescript/quickstart.md).Dynamic OG images have a new layout with fine-grained control over the logo variant, text and background colors, and which elements appear (section, description, URL, gradient).