Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Project Architecture

Overview of LibreChat's monorepo workspace structure and package boundaries.

Archived documentation

You are reading the frozen documentation for v0.8.7, which is no longer maintained. Go to the latest docs.

Monorepo Structure

LibreChat is organized as a monorepo with clearly defined workspace boundaries:

WorkspaceLanguageSideDependencyPurpose
/apiJS (legacy)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsExpress server — minimize changes here
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerNew backend code lives here (TS only, consumed by /api)
/packages/data-schemasTypeScriptBackendpackages/data-providerDatabase models/schemas, shareable across backend projects
/packages/data-providerTypeScriptShared—Shared API types, endpoints, data-service — used by both frontend and backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientFrontend SPA
/packages/clientTypeScriptFrontendpackages/data-providerShared frontend utilities

Key Principles

  • All new backend code must be TypeScript in /packages/api.
  • Keep /api changes to the absolute minimum — thin JS wrappers calling into /packages/api.
  • Database-specific shared logic belongs in /packages/data-schemas.
  • Frontend/backend shared API logic (endpoints, types, data-service) belongs in /packages/data-provider.

Build and Install

CommandPurpose
npm run smart-reinstallInstall deps (if lockfile changed) + build via Turborepo
npm run reinstallClean install after changing Node/npm versions or when dependency state is suspect
npm run buildBuild all compiled code via Turborepo (parallel, cached)
npm run frontendBuild all compiled code sequentially (legacy fallback)
npm run build:data-providerRebuild packages/data-provider after changes
npm run backendStart the backend server
npm run backend:devStart backend with file watching (development)
npm run frontend:devStart frontend dev server with HMR (port 3090, requires backend running)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • Database: MongoDB
  • Backend runs on http://localhost:3080/; frontend dev server on http://localhost:3090/

Note

For the full set of coding standards and conventions, see Code Standards and Conventions.