OpenAI Developer Ships Blume, an Open-Source Docs Framework

Hayden Bleasel from OpenAI releases Blume, a zero-config open-source documentation framework built on Astro with AI features.

By Central
Blume is an open-source docs framework that turns Markdown into a full site with zero config and AI-ready tools.
Highlights
  • Blume generates a full documentation site from a folder of Markdown files with zero configuration.
  • The framework includes built-in AI features like llms.txt, per-page Markdown, and an MCP server.
  • Blume uses Astro under the hood and can eject to a standalone Astro app for full control.

Hayden Bleasel, a developer from OpenAI, has released Blume, an open-source documentation framework now available on npm as version 1.0.3. The framework is designed to operate with extreme simplicity: drop Markdown into a folder and ship a fully functional documentation site. Users write and maintain no app boilerplate after the initial setup, and the entire project carries the MIT license.

What is Blume?

Blume is a command-line tool paired with a component library for documentation. It reads a folder of Markdown or MDX files and produces a production-grade documentation site complete with navigation, search, theming, and Open Graph images. Configuration is entirely optional and can be added one file at a time. The codebase is a TypeScript monorepo, with the published package located at packages/blumecodecodecodecode. Blume’s own documentation, found in apps/docscodecodecodecode, is built with Blume itself. The framework requires Node.js 22.12 or newer and works with Bun, pnpm, npm, or yarn.

How Blume Works

Under the surface, Blume generates and drives a hidden Astro project. The process begins when the CLI loads blume.config.tscodecodecodecode and scans your content into a graph. It then writes an Astro project into a .blume/codecodecodecode directory. Astro renders every page through a single catch-all route that imports Blume’s shipped components, the generated data, and any user overrides. On each run, the .blume/codecodecodecode directory regenerates, rewriting only changed files, which keeps hot reloading fast during editing. The core theme ships with no client framework JavaScript, so pages achieve strong Core Web Vitals scores by default. For users needing full control, the blume ejectcodecodecodecode command promotes the runtime into a standalone Astro app, though the ejected project still depends on the blumecodecodecodecode package.

Getting Started with Blume

Setup takes a single command, making the onboarding process brief. After initialization, blume devcodecodecodecode starts a hot-reloading server, and blume buildcodecodecodecode writes static HTML and a local search index into dist/codecodecodecode. The configuration file is written in TypeScript and validated by a schema.

[code block]

prepreprepre

Because the config is typed, editors catch mistakes before a build runs. The CLI covers the full lifecycle with commands beyond these basics:

  • blume initcodecodecodecode: Scaffold a project, interactive by default
  • blume devcodecodecodecode: Start the dev server with hot reload
  • blume buildcodecodecodecode: Build the static or server site
  • blume addcodecodecodecode: Install a source component from the registry
  • blume synccodecodecodecode: Re-fetch remote content sources
  • blume ejectcodecodecodecode: Promote the runtime into a standalone Astro app
  • blume validatecodecodecodecode: Check internal, anchor, asset, and external links
  • blume doctorcodecodecodecode: Diagnose configuration and content problems

AI-Ready by Design

Blume is built to serve both human readers and AI agents. Every page returns raw Markdown when you append .mdcodecodecodecode to its URL. A single flag emits llms.txtcodecodecodecode and llms-full.txtcodecodecodecode files for AI agents. Each page can be copied as Markdown or opened directly in ChatGPT, Claude, or v0. An optional in-page Ask AI assistant answers reader questions directly, running on the AI SDK through the Vercel AI Gateway, OpenRouter, Inkeep, or any OpenAI-compatible endpoint. Blume can also host a Model Context Protocol (MCP) server, allowing Claude Code, Cursor, and VS Code to read documentation directly. That server exposes four read-only tools: search_docscodecodecodecode, get_pagecodecodecodecode, list_pagescodecodecodecode, and get_navigationcodecodecodecode.

Use Cases With Examples

These capabilities translate to specific, practical jobs. For an API product, users can drop in an OpenAPI or AsyncAPI spec. Blume renders an interactive reference with schemas, authentication details, and a request playground via Scalar. For a library, Blume can point to GitHub Releases. Each release rolls up into a generated changelog timeline with an RSS feed. For a global audience, users can add translated files per locale, with support for 36 locales, locale-aware routing, and right-to-left layouts. For mixed content, local files can be combined with remote MDX, Notion, or Sanity sources, with all sources rendering through the same components.

How Blume Compares

For context, here is how Blume compares to three common documentation approaches. Features change rapidly, so verifying current details before adoption is recommended.

Dimension Blume Mintlify Docusaurus Astro Starlight
Type Open-source CLI + framework Hosted commercial platform Open-source SSG Open-source Astro theme
License MIT, free Proprietary; paid Pro tier MIT, free MIT, free
Setup Zero-config Markdown folder Config-driven, managed Scaffold + React config Astro project + theme
Engine Hidden Astro + Vite Proprietary hosted React Astro
Core-theme client JS None (static HTML) — React runtime Minimal (islands)
llms.txtcodecodecodecode / llms-full.txtcodecodecodecode Built-in flag Auto-generated Community plugin Community plugin
Built-in MCP server Yes (four read-only tools) Yes (auto-hosted) Not built-in Not built-in
Eject path Standalone Astro app Not applicable (hosted) — Already Astro

Strengths and Weaknesses

Strengths

  • Zero-config start: a folder of Markdown becomes a full site.
  • Static-first output ships no core client JS, aiding Core Web Vitals.
  • Built-in AI surfaces: llms.txtcodecodecodecode, per-page Markdown, MCP server, and Ask AI.
  • Type-safe config, so editors flag errors before a build runs.
  • Eject path to a standalone Astro app reduces long-term lock-in.

Weaknesses

  • Version 1.0.3 is new, so the ecosystem is still young.
  • It needs Node.js 22.12 or newer, which some environments lack.
  • Request-time features like Ask AI and MCP need a server adapter.
  • The self-hosted model means you own analytics and assistant wiring.
  • It has fewer third-party integrations than mature hosted platforms today.

Who Should Try Blume Now

Blume turns a Markdown folder into a production docs site with zero configuration. It drives a hidden Astro and Vite project and can eject to a standalone Astro app. Its AI features ship built in: llms.txtcodecodecodecode, per-page Markdown, and an MCP server. The framework is MIT-licensed, requires Node.js 22.12+, and reached npm version 1.0.3 on its launch day. Early adopters include Quiver, which is moving from Mintlify, and the Neon project for its add-mcp documentation. For any developer or team that wants to ship documentation without maintaining a framework or spending on a hosted platform, Blume is available immediately on GitHub and npm. The single-command start and static-first architecture make it a low-risk project to test for a new library, API, or open-source tool.

Share This Article