Config Structure
Note: Fields not specifically mentioned as required are optional.
version
- required
| Key | Type | Description | Example |
|---|---|---|---|
| version | String | Specifies the version of the configuration file. | version: 1.3.5 |
cache
| Key | Type | Description | Example |
|---|---|---|---|
| cache | Boolean | Toggles caching on or off. Set to `true` to enable caching (default). | cache: true |
fileStrategy
- Options: "local" | "firebase" | "s3" | "azure_blob"
| Key | Type | Description | Example |
|---|---|---|---|
| fileStrategy | String | Determines where to save user uploaded/generated files. Defaults to `"local"` if omitted. | fileStrategy: "firebase" |
- Notes:
"firebase"is currently the only option that serves files through a true CDN (Content Delivery Network), which means images and avatars are delivered from edge locations globally. S3 and Azure Blob Storage are object storage backends — files are accessible but not CDN-served by default.- S3 serves files via presigned URLs (temporary signed tokens) that expire. Once expired, any image or avatar referencing that URL will appear broken in the UI. This makes S3 unsuitable as a primary strategy for visual assets. See the related discussion for details.
- CloudFront (CDN for S3) is planned and in active development.
- For best performance of images and avatars, use
"firebase"or configurefileStrategiesto routeavatarandimageto a CDN-backed strategy. - Please refer to the File Storage & CDN documentation for setup details
fileStrategies
Allows granular control over file storage strategies for different file types.
- Available Strategies: "local" | "firebase" | "s3" | "azure_blob"
| Key | Type | Description | Example |
|---|---|---|---|
| fileStrategies | Object | Configures different storage strategies for different file types. More flexible than the single fileStrategy option. |
Sub-keys:
| Key | Type | Description | Example |
|---|---|---|---|
| default | String | Fallback storage strategy when specific type is not defined. Defaults to "local". | |
| avatar | String | Storage strategy for user and agent avatar images. Recommended to use a CDN-backed strategy (`"firebase"`) for best performance. | |
| image | String | Storage strategy for images uploaded in chats. Recommended to use a CDN-backed strategy (`"firebase"`) for best performance. | |
| document | String | Storage strategy for document uploads (PDFs, text files, etc.). |
- Notes:
- This setting takes precedence over the single
fileStrategyoption - If a specific file type is not configured, it falls back to
default, then tofileStrategy, and finally to"local" - Images and avatars need persistent, stable URLs to render correctly across the UI. S3 presigned URLs expire (AWS cap: 7 days for IAM users, hours for STS/role-based credentials), causing broken images in the model selector and chat UI. See the related discussion for full context. Use
"firebase"(the only current CDN-backed strategy) foravatarandimageto avoid this. - CloudFront support for S3 is in active development and will eliminate presigned URL limitations.
- S3 and Azure Blob Storage are well-suited for
documentstorage, where short-lived presigned download URLs are appropriate. - Please refer to the File Storage & CDN documentation for setup details for each storage provider
- This setting takes precedence over the single
Examples:
filteredTools
| Key | Type | Description | Example |
|---|---|---|---|
| filteredTools | Array of Strings | Filters out specific tools from both Plugins and OpenAI Assistants endpoints. | filteredTools: ["scholarai", "calculator"] |
- Notes:
- If
includedToolsandfilteredToolsare both specified, onlyincludedToolswill be recognized. - Affects both
gptPluginsandassistantsendpoints - You can find the names of the tools to filter in
api/app/clients/tools/manifest.json- Use the
pluginKeyvalue
- Use the
- Also, any listed under the ".well-known" directory
api/app/clients/tools/.well-known- Use the
name_for_modelvalue
- Use the
- If
includedTools
| Key | Type | Description | Example |
|---|---|---|---|
| includedTools | Array of Strings | Includes specific tools from both Plugins and OpenAI Assistants endpoints. | includedTools: ["calculator"] |
- Notes:
- If
includedToolsandfilteredToolsare both specified, onlyincludedToolswill be recognized. - Affects both
gptPluginsandassistantsendpoints - You can find the names of the tools to filter in
api/app/clients/tools/manifest.json- Use the
pluginKeyvalue
- Use the
- Also, any listed under the ".well-known" directory
api/app/clients/tools/.well-known- Use the
name_for_modelvalue
- Use the
- If
secureImageLinks
| Key | Type | Description | Example |
|---|---|---|---|
| secureImageLinks | Boolean | Whether or not to secure access to image links that are hosted locally by the app. Default: false. | secureImageLinks: true |
imageOutputType
- Note: Case-sensitive. Google endpoint only supports "jpeg" and "png" output types.
- Options: "png" | "webp" | "jpeg"
| Key | Type | Description | Example |
|---|---|---|---|
| imageOutputType | String | The image output type for image responses. Defaults to "png" if omitted. | imageOutputType: "webp" |
ocr
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| ocr | Object | Configures Optical Character Recognition (OCR) settings for extracting text from images. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | String | The API key for the OCR service. | |
| baseURL | String | The base URL for the OCR service API. | |
| strategy | String | The OCR strategy to use. Options are "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser", or "custom_ocr". | |
| mistralModel | String | The Mistral model to use for OCR processing. |
see: OCR Config Object Structure
webSearch
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| webSearch | Object | Configures web search functionality, including search providers, content scrapers, and result rerankers. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Environment variable name for the Serper API key. If not set in .env, users will be prompted to provide it via UI. | |
| searxngInstanceUrl | String | Environment variable name for the SearXNG instance URL. If not set in .env, users will be prompted to provide it via UI. | |
| searxngApiKey | String | Environment variable name for the SearXNG API key. If not set in .env, users will be prompted to provide it via UI. | |
| firecrawlApiKey | String | Environment variable name for the Firecrawl API key. If not set in .env, users will be prompted to provide it via UI. | |
| firecrawlApiUrl | String | Environment variable name for the Firecrawl API URL. If not set in .env, users will be prompted to provide it via UI. | |
| jinaApiKey | String | Environment variable name for the Jina API key. If not set in .env, users will be prompted to provide it via UI. | |
| cohereApiKey | String | Environment variable name for the Cohere API key. If not set in .env, users will be prompted to provide it via UI. | |
| searchProvider | String | Specifies which search provider to use. Options: "serper", "searxng". | |
| scraperProvider | String | Specifies which scraper service to use. Options: "firecrawl", "serper". | |
| firecrawlVersion | String | Specifies Firecrawl API version (v0 or v1). | |
| rerankerType | String | Specifies which reranker service to use. Options: "jina", "cohere". | |
| scraperTimeout | Number | Timeout in milliseconds for scraper requests. | |
| safeSearch | Boolean | Enables safe search mode to filter out inappropriate content. |
see: Web Search Object Structure
fileConfig
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| fileConfig | Object | Configures file handling settings for the application, including size limits and MIME type restrictions. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Record/Object | Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis. | |
| serverFileSizeLimit | Number | The maximum file size (in MB) that the server will accept. Applies globally across all endpoints unless overridden by endpoint-specific settings. | |
| avatarSizeLimit | Number | Maximum size (in MB) for user avatar images. | |
| clientImageResize | Object | Configures client-side image resizing to optimize file uploads and prevent upload errors due to large image sizes. | |
| ocr | Object | Settings for Optical Character Recognition (OCR) file processing. | |
| text | Object | Settings for direct text file parsing. | |
| stt | Object | Settings for Speech-to-Text (STT) audio file processing. | |
| fileTokenLimit | Number | Maximum number of tokens from text files to include in prompts before truncation. | fileTokenLimit: 100000 |
clientImageResize
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| clientImageResize | Object | Configures client-side image resizing to optimize file uploads and prevent upload errors due to large image sizes. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Enables or disables client-side image resizing functionality. Default: false. | enabled: true |
| maxWidth | Number | Maximum width in pixels for resized images. Images wider than this will be resized. Default: 1920. | maxWidth: 1024 |
| maxHeight | Number | Maximum height in pixels for resized images. Images taller than this will be resized. Default: 1080. | maxHeight: 768 |
| quality | Number | JPEG compression quality (0.1 to 1.0). Higher values mean better quality but larger file sizes. Default: 0.8. | quality: 0.9 |
| compressFormat | String | Output format for compressed images. Options: "jpeg", "webp". Default: "jpeg". | compressFormat: "webp" |
Description:
The clientImageResize configuration enables automatic client-side image resizing before upload. This feature helps:
- Prevent upload failures due to large image files exceeding server limits
- Reduce bandwidth usage by compressing images before transmission
- Improve upload performance with smaller file sizes
- Maintain image quality while optimizing file size
When enabled, images that exceed the specified maxWidth or maxHeight dimensions are automatically resized on the client side before being uploaded to the server. The resizing maintains the original aspect ratio while ensuring the image fits within the specified bounds.
Example:
Notes:
- Only applies to image files (JPEG, PNG, WebP, etc.)
- Resizing occurs automatically when images exceed the specified dimensions
- Original aspect ratio is preserved during resizing
- The feature works with all supported image upload endpoints
- Quality setting only applies to JPEG and WebP formats
- Setting quality too low (< 0.5) may result in noticeable image degradation
see: File Config Object Structure
rateLimits
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| rateLimits | Object | Defines rate limiting policies to prevent abuse by limiting the number of requests. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| fileUploads | Object | Configures rate limits specifically for file upload operations. | |
| conversationsImport | Object | Configures rate limits specifically for conversation import operations. | |
| stt | Object | Configures rate limits specifically for speech-to-text (stt) requests | |
| tts | Object | Configures rate limits specifically for text-to-speech (tts) requests |
fileUploads Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Maximum number of uploads allowed per IP address per window. | |
| ipWindowInMinutes | Number | Time window in minutes for the IP-based upload limit. | |
| userMax | Number | Maximum number of uploads allowed per user per window. | |
| userWindowInMinutes | Number | Time window in minutes for the user-based upload limit. |
conversationsImport Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Maximum number of imports allowed per IP address per window. | |
| ipWindowInMinutes | Number | Time window in minutes for the IP-based imports limit. | |
| userMax | Number | Maximum number of imports per user per window. | |
| userWindowInMinutes | Number | Time window in minutes for the user-based imports limit. |
tts Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Maximum number of requests allowed per IP address per window. | |
| ipWindowInMinutes | Number | Time window in minutes for the IP-based requests limit. | |
| userMax | Number | Maximum number of requests per user per window. | |
| userWindowInMinutes | Number | Time window in minutes for the user-based requests limit. |
stt Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Maximum number of requests allowed per IP address per window. | |
| ipWindowInMinutes | Number | Time window in minutes for the IP-based requests limit. | |
| userMax | Number | Maximum number of requests per user per window. | |
| userWindowInMinutes | Number | Time window in minutes for the user-based requests limit. |
- Example:
registration
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| registration | Object | Configures registration-related settings for the application. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| socialLogins | Social login configurations. | ||
| allowedDomains | Specifies allowed domains for registration. |
see also:
memory
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| memory | Object | Configures conversation memory and personalization features for the application. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| disabled | Boolean | Disables memory functionality when set to true. | |
| validKeys | Array of Strings | Specifies which keys are valid for memory storage. | |
| tokenLimit | Number | Sets the maximum number of tokens for memory storage and processing. | |
| charLimit | Number | Sets the maximum number of characters for memory storage. Default: 10000. | |
| personalize | Boolean | Enables or disables personalization features. | |
| messageWindowSize | Number | Specifies the number of recent messages to include in memory context. | |
| agent | Object | Union | Configures the agent responsible for memory processing. |
actions
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| actions | Object | Configures actions-related settings, used by Agents and Assistants |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Specifies allowed domains for actions. |
see also:
interface
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| interface | Object | Configures user interface elements within the application, allowing for customization of visibility and behavior of various components. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| endpointsMenu | Boolean | Controls the visibility of the endpoints menu dropdown in the UI. | |
| privacyPolicy | Object | Contains settings related to the privacy policy link provided. | |
| termsOfService | Object | Contains settings related to the terms of service link provided. | |
| modelSelect | Boolean | Determines whether the model selection feature is available. | |
| parameters | Boolean | Toggles the visibility of parameter configuration options AKA conversation settings. | |
| sidePanel | Boolean | Controls the visibility of the right-most side panel. | |
| presets | Boolean | Enables or disables the presets menu | |
| prompts | Boolean or Object | Enables or disables all prompt-related features for all users | |
| bookmarks | Boolean | Enables or disables all bookmarks-related features for all users | |
| memories | Boolean | Enables or disables the memories feature for all users | |
| multiConvo | Boolean | Enables or disables all "multi convo", AKA multiple response streaming, related features for all users | |
| agents | Boolean or Object | Enables or disables all agents features for all users | |
| temporaryChat | Boolean | Enables or disables the temporary chat feature | |
| temporaryChatRetention | Number | Configures the retention period for temporary chats in hours. Min: 1, Max: 8760. Default: 720 (30 days). | |
| mcpServers | Object | Contains settings related to MCP server selection and access control. | |
| customWelcome | String | Custom welcome message displayed in the chat interface. | |
| runCode | Boolean | Enables or disables the "Run Code" button for Markdown Code Blocks | |
| webSearch | Boolean | Enables or disables the web search button in the chat interface | |
| fileSearch | Boolean | Enables or disables the file search button in the chat interface | |
| fileCitations | Boolean | Globally enables or disables file citations for all users | |
| peoplePicker | Object | Configures which principal types are available controls in the people picker interface | |
| marketplace | Object | Enables or disables access to the Agent Marketplace |
see: Interface Object Structure
modelSpecs
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| modelSpecs | Object | Configures model specifications, allowing for detailed setup and customization of AI models and their behaviors within the application. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| enforce | Boolean | Determines whether the model specifications should strictly override other configuration settings. | |
| prioritize | Boolean | Specifies if model specifications should take priority over the default configuration when both are applicable. | |
| list | Array of Objects | Contains a list of individual model specifications detailing various configurations and behaviors. |
see: Model Specs Object Structure
endpoints
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Object | Defines custom API endpoints for the application. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| custom | Array of Objects | Each object in the array represents a unique endpoint configuration. | |
| azureOpenAI | Object | Azure OpenAI endpoint-specific configuration | |
| assistants | Object | Assistants endpoint-specific configuration. | |
| azureAssistants | Object | Azure Assistants endpoint-specific configuration. | |
| agents | Object | Agents endpoint-specific configuration. | |
| all | Object | Global endpoint settings that apply to all endpoints. See Shared Endpoint Settings. |
Note: All endpoints support Shared Endpoint Settings which include
streamRate,titleModel,titleMethod,titlePrompt,titlePromptTemplate, andtitleEndpoint. These can be configured individually per endpoint or globally using theallkey.
mcpSettings
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| mcpSettings | Object | Defines global settings for Model Context Protocol (MCP) servers |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | A list specifying allowed domains for MCP server connections. Required for internal/local addresses. |
- Notes:
- This is a security feature to protect against abuse / misuse of internal addresses via MCP servers
- By default, LibreChat restricts MCP servers from connecting to internal, local, or private network addresses
- MCP servers using local IP addresses or domains must be explicitly allowed
- As with all yaml configuration changes, a LibreChat restart is required to take effect
- Supports domains, wildcard subdomains (
*.example.com), docker domains, and IP addresses
Example:
see: MCP Settings Object Structure
mcpServers
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| mcpServers | Object | Defines the configuration for Model Context Protocol (MCP) servers, allowing dynamic integration of MCP servers within the application. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| <serverName> | Object | Each key under `mcpServers` represents an individual MCP server configuration, identified by a unique name. |
- Notes:
- Initialization happens at startup, and the app must be restarted for changes to take effect.
- The
<serverName>is a unique identifier for each MCP server configuration. - Each MCP server can be configured using one of four connection types:
stdiowebsocketssestreamable-http
- The
typefield specifies the connection type to the MCP server. - If
typeis omitted, it defaults based on the presence and format ofurlorcommand:- If
urlis specified and starts withhttporhttps,typedefaults tosse. - If
urlis specified and starts withwsorwss,typedefaults towebsocket. - If
commandis specified,typedefaults tostdio.
- If
- Additional configuration options include:
timeout: Timeout in milliseconds for MCP server requests. Determines how long to wait for a response for tool requests.initTimeout: Timeout in milliseconds for MCP server initialization. Determines how long to wait for the server to initialize.serverInstructions: Controls whether server instructions are included in agent context. Can betrue(use server-provided),false(disabled), or a custom string (overrides server-provided).customUserVars: (Optional) Defines custom variables (e.g., API keys, URLs) that individual users can set for an MCP server. These per-user values, provided through the UI, can then be referenced in the server'sheadersorenvconfigurations using{{VARIABLE_NAME}}syntax. This allows for per-user authentication or customization for MCP tools.
- see: MCP Servers Object Structure
Example:
see: MCP Servers Object Structure
speech
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| speech | Object | Configures Text-to-Speech (TTS) and Speech-to-Text (STT) providers for the application. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| tts | Object | Text-to-Speech provider configurations (OpenAI, Azure OpenAI, ElevenLabs, LocalAI). | |
| stt | Object | Speech-to-Text provider configurations (OpenAI, Azure OpenAI). | |
| speechTab | Object | Default UI settings for speech features. |
turnstile
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| turnstile | Object | Configures Cloudflare Turnstile for bot protection on registration and login forms. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| siteKey | String | Your Cloudflare Turnstile site key (required). | |
| options | Object | Additional Turnstile widget options (optional). |
see: Turnstile Object Structure
transactions
Key:
| Key | Type | Description | Example |
|---|---|---|---|
| transactions | Object | Controls transaction logging and visibility features. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Enables or disables transaction logging. Default: true. |
see: Transactions Object Structure
Additional links
- AWS Bedrock Object Structure
- Custom Endpoint Object Structure
- Azure OpenAI Endpoint Object Structure
- Assistants Endpoint Object Structure
- Agents
- OCR Config Object Structure
- Speech Object Structure
- Turnstile Object Structure
- Transactions Object Structure
- Balance Object Structure
- Web Search Object Structure
- Memory Object Structure
How is this guide?