whatisgithub

What is fern?

fern-api/fern — explained in plain English

Analysis updated 2026-05-18

3,611TypeScriptAudience · pm founderComplexity · 2/5LicenseSetup · easy

In one sentence

Fern turns an OpenAPI file into ready-to-use SDKs in multiple programming languages plus a hosted API documentation website.

Mindmap

mindmap
  root((Fern))
    What it does
      Generates SDKs
      Generates docs site
      Reads OpenAPI files
    Tech stack
      TypeScript
      OpenAPI
      Docker
    Use cases
      Publish client SDKs
      Host API docs
      Version docs with Git
    Audience
      PMs and founders
      API companies

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automatically generate typed SDKs in languages like TypeScript, Python, and Go from an OpenAPI spec.

USE CASE 2

Publish a hosted, searchable API documentation website with dark mode and versioning.

USE CASE 3

Give customers polished client libraries without hand-writing and maintaining them.

What is it built with?

TypeScriptOpenAPIDockernpm

How does it compare?

fern-api/fernsofn-xyz/mailingginobefun/bestblogs
Stars3,6113,6103,613
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasyeasyeasy
Complexity2/52/52/5
Audiencepm founderdeveloperpm founder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Requires an existing OpenAPI specification file to generate from.

Apache 2.0 license, which allows free use, modification, and distribution including for commercial purposes, as long as you keep the license notice.

So what is it?

Fern is a platform that takes an API description file and automatically generates two things: software development kits (SDKs) in multiple programming languages, and a documentation website for developers. The idea is that if you have already described how your API works in a standard format like OpenAPI, Fern can do the tedious work of writing client libraries and reference docs for you. An SDK is a pre-built package that other developers install to talk to your API without writing raw HTTP requests by hand. Fern can generate these in TypeScript, Python, Java, Go, Ruby, PHP, C#, Swift, and Rust. Each generated SDK is type-safe, meaning the programming language itself can catch mistakes before code even runs. Companies like ElevenLabs and LaunchDarkly use Fern to generate their public developer documentation. The documentation output is a hosted website with an interactive API reference, search, dark mode, and SEO support built in. You can add extra pages written in Markdown and version the whole thing through Git. Color schemes, logos, fonts, and custom domain names are configurable. To use Fern, you install its command-line tool via npm, point it at your existing OpenAPI file, and run a generate command. It handles the rest in the cloud. There is also an option to run generation locally using Docker if you prefer not to send your API definition to an external service. Fern was backed by Y Combinator in 2023 and is open-source under an Apache 2.0 license. The repository is the main codebase for the CLI tool and all the individual SDK generators. If you are a founder or PM evaluating this tool: Fern is aimed at API companies that want to give their customers polished, multi-language SDKs and clean documentation without manually writing and maintaining all of that code themselves.

Copy-paste prompts

Prompt 1
Show me how to install the Fern CLI and generate an SDK from my existing OpenAPI file.
Prompt 2
Explain what a type-safe SDK is and why generating one automatically saves time.
Prompt 3
How do I customize the branding, colors, and domain of my Fern-generated docs site?
Prompt 4
Walk me through running Fern's SDK generation locally with Docker instead of in the cloud.

Frequently asked questions

What is fern?

Fern turns an OpenAPI file into ready-to-use SDKs in multiple programming languages plus a hosted API documentation website.

What language is fern written in?

Mainly TypeScript. The stack also includes TypeScript, OpenAPI, Docker.

What license does fern use?

Apache 2.0 license, which allows free use, modification, and distribution including for commercial purposes, as long as you keep the license notice.

How hard is fern to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is fern for?

Mainly pm founder.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.