# Project pack: LibreChat @ eac18f4 Facts about **LibreChat** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v4.md). Pinned to one version; never changes after publication. > LibreChat looks and feels like ChatGPT, but it is yours. You bring your own AI keys (or a free model running on your own computer) and switch between OpenAI, Anthropic, Google and many others in the same chat. It keeps your chat history on your own server, lets the whole family have accounts, and can read files, search the web and build simple helpers ("agents") with their own instructions. ## Setup path (checked 2026-11-03) - **Needs Docker.** Tell the person before any setup work; no light non-Docker route is documented upstream. Docker Desktop on Windows may need a computer restart and an admin-only Windows feature (virtualisation); say so and let the person decide. - Verdict source: https://www.librechat.ai/docs - You may be unable to download source archives or run commands in this session. The person downloads and runs things; if you cannot fetch something, give any changed file in full in chat with its path. ## Version and source - Repository: https://github.com/danny-avila/LibreChat - Pinned commit: `eac18f465667f5b8b463f2a9dfa2af1271e40a1b`. Use exactly this version. - Zip the person can download in a browser: https://github.com/danny-avila/LibreChat/archive/eac18f465667f5b8b463f2a9dfa2af1271e40a1b.zip - Fresh checkout (only if you have a shell and git): use the commands below in an empty folder. If this exact source is already checked out, keep your branch and use the development command; do not clone again or reset local changes. - Official docs: https://www.librechat.ai/docs - Licence: **MIT**. Very permissive. You can use, change and share it, even commercially, as long as you keep the copyright notice. No obligation to publish your changes. (The root package.json says "ISC", but the LICENSE file at the pinned commit is MIT.) ## Commands from the pinned source - Developer commands (they may use Docker): ```sh git clone https://github.com/danny-avila/LibreChat bespoke-librechat cd bespoke-librechat git checkout --detach eac18f465667f5b8b463f2a9dfa2af1271e40a1b # Prepare development requirements and local configuration first. # Setup notes: API on :3080; in another terminal: npm run frontend:dev (client on :3090). Needs MONGO_URI in .env npm ci && npm run build:packages && npm run backend:dev ``` - Separate trial of the current upstream release (not your changes; sample data and a separate data directory only): ```sh git clone https://github.com/danny-avila/LibreChat.git && cd LibreChat git checkout eac18f465667f5b8b463f2a9dfa2af1271e40a1b cp .env.example .env # put a random value in ADMIN_PANEL_SESSION_SECRET (openssl rand -hex 32) and your AI keys in .env docker compose up -d # open http://localhost:3080 and create the first account (it becomes the admin) ``` - Tools these commands use: Docker with Docker Compose, About 4 GB of free RAM for the five containers (app, MongoDB, Meilisearch, vector database, RAG API), An API key for at least one AI provider, or Ollama running on the same computer, For development, Node.js 24 (.nvmrc) and npm - Develop: `npm ci && npm run build:packages && npm run backend:dev # API on :3080; in another terminal: npm run frontend:dev (client on :3090). Needs MONGO_URI in .env` - Test: `npm run test:client && npm run test:api` - Check/lint: `npm run lint` - Stack: typescript, javascript (Node.js, Express, React, Vite, Tailwind CSS, Mongoose, Turborepo). Difficulty for a non-developer with an AI: **advanced**. A very large, fast-moving monorepo (api, client and several packages) with five containers in the default Docker setup. Almost everything a household wants (which models, names, welcome text, who can sign up, local models, web search, memory) is set in .env and librechat.yaml, without touching code. Code changes need Node 24 (see .nvmrc), a MongoDB and the package build order described in AGENTS.md. - The project's own AI instructions, in the repository: `AGENTS.md`, `CONTEXT.md`, `.github/CONTRIBUTING.md`. Personal data: **yes**. Stored in: Accounts, conversations, presets, agents and memories in MongoDB (./data-node). Uploaded files and images in ./uploads and ./images. Document chunks for file search in the pgvector database (pgdata2 volume). Settings in .env and librechat.yaml. Secrets are entered by the person, never in chat. --- Later, only when a step needs it: [reference.md](https://handoff.bespokeai.software/p/librechat/eac18f4/r3/reference.md) (customisation points, must-keep-working, data and costs, coding conventions) · [hosting.md](https://handoff.bespokeai.software/p/librechat/eac18f4/r3/hosting.md) (long-term hosting; hosts are paid third parties) · [bespoke.yaml](https://handoff.bespokeai.software/p/librechat/eac18f4/r3/bespoke.yaml) · [SKILL.md](https://handoff.bespokeai.software/p/librechat/eac18f4/r3/SKILL.md)