Files
librechat.ai/pages/docs/configuration/librechat_yaml/object_structure/interface.mdx
Dustin Healy 587d65b87a 📖 docs: Document config changes (v0.8.0-rc1 to v0.8.1-rc1) (#448)
* feat: document new charLimit in memory configuration

* feat: document peoplePicker interface configuration

* feat: document Agent Marketplace configuration

* chore: better description for peoplePicker permissions

* feat: document fileStrategies configuration

* feat: document webSearch's firecrawlVersion addition and scraperType to scraperProvider refactor

* feat: document conversation file import limit env variable CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES

* feat: document modelSpecs group field configuration

* chore: fix formatting in peoplePicker interface markdown

* feat: add missing .env.example changes

* chore: formatting
2025-11-26 10:12:42 -05:00

436 lines
12 KiB
Plaintext

# Interface Object Structure
## Overview
The `interface` object allows for customization of various user interface elements within the application, including visibility and behavior settings for components such as menus, panels, and links. This section provides a detailed breakdown of the `interface` object structure.
These are fields under `interface`:
- `mcpServers`
- `privacyPolicy`
- `termsOfService`
- `modelSelect`
- `parameters`
- `sidePanel`
- `presets`
- `prompts`
- `bookmarks`
- `multiConvo`
- `agents`
- `customWelcome`
- `runCode`
- `webSearch`
- `fileSearch`
- `fileCitations`
**Notes:**
- The `interface` configurations are applied globally within the application.
- Default values are provided for most settings but can be overridden based on specific requirements or conditions.
- Conditional logic in the application can further modify these settings based on other configurations like model specifications.
## Example
```yaml filename="interface"
interface:
mcpServers:
placeholder: "MCP Servers"
privacyPolicy:
externalUrl: "https://example.com/privacy"
openNewTab: true
termsOfService:
externalUrl: "https://example.com/terms"
openNewTab: true
modalAcceptance: true
modalTitle: "Terms of Service"
modalContent: |
# Terms of Service
## Introduction
Welcome to LibreChat!
modelSelect: false
parameters: true
sidePanel: true
presets: false
prompts: true
bookmarks: true
multiConvo: true
agents: true
customWelcome: "Hey {{user.name}}! Welcome to LibreChat"
runCode: true
webSearch: true
fileSearch: true
fileCitations: true
```
## mcpServers
**Key:**
<OptionTable
options={[
['mcpServers', 'Object', 'Contains settings related to the MCP (Model Context Protocol) server selection interface.', 'Allows for customization of the placeholder text shown in the MCP server selection dropdown.'],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['placeholder', 'String', 'The placeholder text displayed in the MCP server selection dropdown when no server is selected.', 'MCP Servers'],
]}
/>
## privacyPolicy
**Key:**
<OptionTable
options={[
['privacyPolicy', 'Object', 'Contains settings related to the privacy policy link provided in the user interface.', 'Allows for the specification of a custom URL and the option to open it in a new tab.'],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['externalUrl', 'String (URL)', 'The URL pointing to the privacy policy document.', ''],
['openNewTab', 'Boolean', 'Specifies whether the link should open in a new tab.', ''],
]}
/>
## termsOfService
**Key:**
<OptionTable
options={[
['termsOfService', 'Object', 'Contains settings related to the terms of service link provided in the user interface.', 'Allows for the specification of a custom URL and the option to open it in a new tab, as well as a modal acceptance dialog for the terms of service.'],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['externalUrl', 'String (URL)', 'The URL pointing to the terms of service document.', 'https://librechat.ai/tos'],
['openNewTab', 'Boolean', 'Specifies whether the link should open in a new tab.', 'true'],
['modalAcceptance', 'Boolean', 'Specifies whether to show a modal terms and conditions dialog for users to accept in order to be able to use LibreChat.', 'true'],
['modalTitle', 'String', 'Specifies a custom title for the modal terms and conditions dialog (optional).', 'Terms of Service'],
['modalContent', 'String', 'Specifies the content of the modal terms and conditions dialog in MarkDown format.', 'See librechat.yaml.example for how to correctly format the multi-line parameter.'],
]}
/>
## modelSelect
**Key:**
<OptionTable
options={[
['modelSelect', 'Boolean', 'Determines whether the model selection feature is available in the UI.', 'Enabling this feature allows users to select different models directly from the interface.'],
]}
/>
**Default:** `true`
**Notes:**
- This is required to be `true` if using [`modelSpecs.addedEndpoints`](/docs/configuration/librechat_yaml/object_structure/model_specs#addedendpoints).
- If `modelSpecs.addedEndpoints` is used and `interface.modelSelect` is not explicitly set, it defaults to `true`.
**Example:**
```yaml filename="interface / modelSelect"
interface:
modelSelect: true
```
## parameters
**Key:**
<OptionTable
options={[
['parameters', 'Boolean', 'Toggles the visibility of parameter configuration options within the interface.', 'This setting is crucial for users who need to adjust parameters for specific functionalities within the application.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / parameters"
interface:
parameters: false
```
## sidePanel
**Key:**
<OptionTable
options={[
['sidePanel', 'Boolean', 'Controls the visibility of the side panel in the application\'s interface.', 'The side panel typically contains additional navigation or information relevant to the application\'s context.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / sidePanel"
interface:
sidePanel: true
```
## presets
**Key:**
<OptionTable
options={[
['presets', 'Boolean', 'Enables or disables the use of presets in the application\'s UI.', 'Presets can simplify user interactions by providing pre-configured settings or operations, enhancing user experience and efficiency.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / presets"
interface:
presets: true
```
## prompts
**Key:**
<OptionTable
options={[
['prompts', 'Boolean', 'Enables or disables all prompt-related features for all users.', 'When disabled, users will not have access to create, edit, or use custom prompts within the application.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / prompts"
interface:
prompts: false
```
## bookmarks
**Key:**
<OptionTable
options={[
['bookmarks', 'Boolean', 'Enables or disables all bookmarks-related features for all users.', 'When disabled, users will not be able to create, manage, or access bookmarks within the application.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / bookmarks"
interface:
bookmarks: true
```
## multiConvo
**Key:**
<OptionTable
options={[
['multiConvo', 'Boolean', 'Enables or disables all "multiConvo", AKA multiple response streaming, related features for all users.', 'When disabled, users will not be able to stream responses from 2 AI models at the same time.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / multiConvo"
interface:
multiConvo: true
```
## agents
More info on [Agents](/docs/features/agents)
**Key:**
<OptionTable
options={[
['agents', 'Boolean', 'Enables or disables use of the Agents'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / agents"
interface:
agents: true
```
## customWelcome
**Key:**
<OptionTable
options={[
['customWelcome', 'String', 'Allows administrators to define a custom welcome message for the chat interface, with the option to personalize it using the {{user.name}} parameter.'],
]}
/>
**Default:** _None (if not specified, a default greeting is used)_
**Example:**
```yaml filename="interface / customWelcome"
interface:
customWelcome: "Hey {{user.name}}! Welcome to LibreChat"
```
**Note:** You can use `{{user.name}}` within the `customWelcome` message to dynamically insert the user's name for a personalized greeting experience.
## runCode
Enables/disables the "Run Code" button for Markdown Code Blocks. More info on the [LibreChat Code Interpreter API](/docs/features/code_interpreter)
**Note:** This setting does not disable the [Agents Code Interpreter Capability](/docs/features/agents#code-interpreter). To disable the Agents Capability, see the [Agents Endpoint configuration](/docs/configuration/librechat_yaml/object_structure/agents) instead.
**Key:**
<OptionTable
options={[
['runCode', 'Boolean', 'Enables or disables the "Run Code" button for Markdown Code Blocks.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / runCode"
interface:
runCode: true
```
## webSearch
Enables/disables the web search button in the chat interface. More info on [Web Search Configuration](/docs/configuration/librechat_yaml/object_structure/web_search)
**Note:** This setting does not disable the [Agents Web Search Capability](/docs/features/agents#web-search). To disable the Agents Capability, see the [Agents Endpoint configuration](/docs/configuration/librechat_yaml/object_structure/agents) instead.
**Key:**
<OptionTable
options={[
['webSearch', 'Boolean', 'Enables or disables the web search button in the chat interface.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / webSearch"
interface:
webSearch: true
```
## fileSearch
Enables/disables the file search (for RAG API usage via tool) button in the chat interface
**Note:** This setting does not disable the [Agents File Search Capability](/docs/features/agents#file-search). To disable the Agents Capability, see the [Agents Endpoint configuration](/docs/configuration/librechat_yaml/object_structure/agents) instead.
**Key:**
<OptionTable
options={[
['fileSearch', 'Boolean', 'Enables or disables the file search button in the chat interface.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / fileSearch"
interface:
fileSearch: true
```
## fileCitations
Controls the global availability of file citations functionality. When disabled, it effectively removes the `FILE_CITATIONS` permission for all users, preventing any file citations from being displayed when using file search, regardless of individual user permissions.
**Note:**
- This setting acts as a global toggle for the `FILE_CITATIONS` permission system-wide.
- When set to `false`, no users will see file citations, even if they have been granted the permission through roles.
- File citations require the `fileSearch` feature to be enabled.
- When using agents with file search capability, citation behavior (quantity and quality) can be configured through the [Agents endpoint configuration](/docs/configuration/librechat_yaml/object_structure/agents#file-citation-configuration-examples).
**Key:**
<OptionTable
options={[
['fileCitations', 'Boolean', 'Globally enables or disables the FILE_CITATIONS permission for all users, controlling whether file search results can include source citations.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / fileCitations"
interface:
fileCitations: true
```
## peoplePicker
Controls which principal types (users, groups, roles) are available for selection in the people picker interface, typically used when sharing agents or managing access controls.
**Key:**
<OptionTable
options={[
['peoplePicker', 'Object', 'Configuration for which principal types are available in the people picker interface.'],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['users', 'Boolean', 'Enables user search in the people picker. Default: true'],
['groups', 'Boolean', 'Enables group search in the people picker. Default: true'],
['roles', 'Boolean', 'Enables role search in the people picker. Default: true'],
]}
/>
**Default:**
```yaml
peoplePicker:
users: true
groups: true
roles: true
```
**Example:**
```yaml filename="interface / peoplePicker"
interface:
peoplePicker:
users: true
groups: true
roles: false # Disable role selection in people picker
```
## marketplace
Enables/disables access to the Agent Marketplace.
**Key:**
<OptionTable
options={[
['marketplace', 'Object', 'Configuration for Agent Marketplace access control.'],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['use', 'Boolean', 'Enables or disables marketplace access. Default: false'],
]}
/>
**Default:**
```yaml
marketplace:
use: false
```
**Example:**
```yaml filename="interface / marketplace"
interface:
marketplace:
use: true # Enable marketplace access
```