LibreChat is a self-hostable multi-provider chat UI.
librechat.yaml
version: 1.2.1
endpoints:
custom:
- name: "Northern Inference"
apiKey: "${NI_API_KEY}"
baseURL: "https://northerninference.ca/v1"
models:
default:
- "anthropic/claude-sonnet-4.5"
- "anthropic/claude-haiku-4.5"
- "anthropic/claude-opus-4.6"
- "openai/gpt-4o"
- "openai/gpt-4.1"
fetch: false
titleConvo: true
titleModel: "anthropic/claude-haiku-4.5"
summarize: false
summaryModel: "anthropic/claude-haiku-4.5"
forcePrompt: false
modelDisplayLabel: "NI"
addParams:
privacy_tier: "managed_canadian_cloud"
Then:
export NI_API_KEY=ni_live_...
docker compose up -d
Open LibreChat at http://localhost:3080, pick Northern Inference from the endpoint dropdown.
addParams vs per-key tier
addParams.privacy_tier gets folded into every request body LibreChat sends. If you want some users on provider_api and others on managed_canadian_cloud, create separate entries in the custom block (same baseURL, different apiKey + addParams) and LibreChat will show them as distinct endpoints.