Skip to main content
LibreChat is an open-source AI chat platform (MIT, source) — a self-hosted, multi-user ChatGPT-style interface with conversation branching, presets, and file uploads. It takes any OpenAI-compatible provider as a custom endpoint in librechat.yaml.

Setup

Add Opper under endpoints.custom:
Then set the key in your .env and restart:
fetch: true makes LibreChat pull the catalog from GET /v3/compat/models at startup, so the picker fills itself. Set it to false and rely on models.default if you’d rather pin an explicit list.
Use the ${VAR} env-var syntax rather than pasting the key into librechat.yaml — the file is usually committed alongside your deployment.

Choosing a model

With fetch: true, LibreChat lists everything your key can reach, filtered by your model access rules. The catalog is large, so a curated models.default list is often the nicer experience for end users.

Multi-user usage

LibreChat is typically multi-tenant. Forward per-user tags with the X-Opper-Tags header to break usage down by user or workspace in Opper analytics — see Tags and usage attribution.

Troubleshooting

LibreChat reads librechat.yaml at startup only. Restart the container or process after editing it.
Set fetch: false and list the models you want in models.default.
The ${OPPER_API_KEY} reference is resolved from LibreChat’s environment, not your shell. Confirm it’s in the .env the process actually loads.

Tags and usage attribution

Split usage per user or workspace.

Open WebUI

The other self-hosted chat workspace.