LibreChat-AI
librechat.ai
MDX

Official documentation, blog, and changelog for LibreChat. Built with Next.js and Fumadocs. Live at librechat.ai

Last updated Jul 9, 2026
584
Stars
420
Forks
56
Issues
+4
Stars/day
Attention Score
77
Language breakdown
No language data available.
Files click to expand
README

LibreChat

LibreChat Documentation

The official documentation, blog, and changelog for LibreChat, the open-source, self-hostable AI chat platform.

Visit www.librechat.ai »

Website Ask DeepWiki Discord Next.js 16 License: MIT


This repository powers www.librechat.ai: the docs, guides, blog, and changelog for LibreChat. It is a Next.js application built on Fumadocs, with content authored in MDX.

Looking for the LibreChat app itself? It lives at danny-avila/LibreChat. Open code and product issues there, and documentation issues here.

Table of Contents

Features

  • 📚 Complete documentation covering setup, configuration, deployment, and every LibreChat feature.
  • 📝 Blog & changelog authored in MDX, with release notes and long-form articles.
  • 🤖 Ask AI — an in-page assistant (Vercel AI SDK + OpenRouter) that answers questions grounded in the docs.
  • 🔍 Instant search — fast, fully client-side full-text search powered by Orama, with a prebuilt static index per language.
  • 🌍 14 languages — English source with translations (中文, Español, Français, Deutsch, 日本語, Português, Italiano, Nederlands, Polski, Tiếng Việt, 한국어, Bahasa Indonesia, Türkçe), including dedicated tokenizers for CJK, Korean, Polish, and Vietnamese search.
  • 🎨 Polished UI — responsive, accessible, light/dark themes out of the box via Fumadocs UI.
  • Static-first & fast — per-locale prebuilt search indexes, optimized images, and dynamic Open Graph images.
  • 🔒 Privacy-friendly — cookieless, self-hosted analytics with no tracking banners.

Tech Stack

| Layer | Technology | | --------------- | ------------------------------------------------------------------------- | | Framework | Next.js 16 (App Router), React 19 | | Docs engine | Fumadocs (core, ui, mdx) | | Content | MDX | | Styling | Tailwind CSS v4 | | Search | Orama (static, per-locale index) | | Ask AI | Vercel AI SDK + OpenRouter | | Rate limiting | Upstash Redis | | Icons | Lucide | | Testing | Vitest | | Tooling | ESLint, Prettier, Husky | | Package manager | pnpm |

Getting Started

Prerequisites

Setup

# 1. Clone the repository
git clone https://github.com/LibreChat-AI/librechat.ai.git
cd librechat.ai

2. (Optional) create a local env file for Ask AI, rate limiting, etc.

cp .env.template .env.local

3. Install dependencies

pnpm install

4. Start the dev server

pnpm dev

Open http://localhost:3333 to view the site.

Environment variables are optional for local docs work. You only need to fill in .env.local to exercise features like Ask AI or rate limiting. Always run pnpm build before opening a PR to catch build errors early.

Project Structure

app/                # Next.js App Router: docs, blog, changelog pages + API routes
  api/
    chat/           # "Ask AI" endpoint (OpenRouter via the Vercel AI SDK)
    search/         # Per-locale static Orama search index
content/
  docs/             # Documentation pages (MDX), organized by section
  blog/             # Blog posts (MDX)
  changelog/        # Changelog entries (MDX)
components/         # React components (home, UI, icons, search dialog, etc.)
lib/                # Utilities: content sources, i18n, search, MDX components
public/             # Static assets (images, videos, icons)
scripts/            # Build, translation, and image-optimization scripts
source.config.ts    # Fumadocs content collections config

Writing Documentation

Docs live in content/docs/ and are grouped by section. Each directory has a meta.json that controls sidebar navigation and ordering:

{
  "title": "Section Title",
  "icon": "Wrench",
  "pages": ["index", "page-one", "page-two"]
}

Only pages listed in the pages array appear in the sidebar, in the order given.

Localization: English (.mdx) is the source of truth. Translated pages use a locale suffix (for example index.es.mdx), and each locale's search index only includes pages that have a real translated file. Keep new content in English and let the translation workflow handle the rest.

Available Scripts

| Command | Description | | ---------------------- | --------------------------------------------- | | pnpm dev | Start the dev server on port 3333 | | pnpm build | Production build | | pnpm start | Start the production server on port 3333 | | pnpm lint | Run ESLint (zero warnings allowed) | | pnpm lint:prettier | Check formatting with Prettier | | pnpm prettier | Format the codebase with Prettier | | pnpm typecheck | Generate MDX types and run tsc --noEmit | | pnpm test | Run the Vitest suite | | pnpm test:watch | Run Vitest in watch mode | | pnpm analyze | Build and analyze the production bundle size | | pnpm optimize:images | Optimize images in public/ | | pnpm translate | Generate translations from the English source |

Contributing

Contributions are welcome, from fixing a typo to writing a whole new guide.

  • Fork the repo and create a branch from main.
  • Make your changes and preview them locally with pnpm dev.
  • Before opening a PR, run pnpm lint, pnpm typecheck, and pnpm build.
  • Open a pull request describing what you changed and why.
For questions about the documentation, join the Discord. For issues with the LibreChat application itself, please use the main repository.

Community & Support

License

Released under the MIT License.

© 2026 GitRepoTrend · LibreChat-AI/librechat.ai · Updated daily from GitHub