Files
librechat.ai/content/docs/configuration/librechat_yaml/object_structure/interface.mdx
Danny Avila 9e1a0db393 rel/v0.8.3-rc1-v2 (#504)
* chore: update GitHub Actions workflow to use latest action version for improved stability

* chore: update roadmap references and enhance documentation for AWS Bedrock inference profiles

- Updated footer menu and card icons to reflect the 2026 roadmap.
- Adjusted default values in changelog and configuration documentation for `maxRecursionLimit`.
- Added comprehensive documentation for AWS Bedrock inference profiles, including setup, configuration, and examples.
- Introduced Agents API documentation for programmatic access to LibreChat agents.
- Enhanced existing documentation for clarity and consistency across various sections.

* feat: release Config v1.3.4 with new features and updates

- Introduced `create` field in `interface.prompts` and `interface.agents` for enhanced user control.
- Added `interface.remoteAgents` configuration for managing remote agent permissions.
- Updated `endpoints.bedrock` with `models` and `inferenceProfiles` for better customization.
- Included Moonshot as a known endpoint for AI integration.
- Introduced new agent capabilities: `deferred_tools` and `programmatic_tools`.
- Removed deprecated `forcePrompt` setting from configurations.
- Updated default model lists and added support for new models.
- Enhanced `modelSpecs` with `artifacts` field and `effort` parameter for Anthropic models.

* refactor: update BlogHeader to use usePathname for route handling

- Replaced useRouter with usePathname for improved routing in BlogHeader component.
- Simplified page retrieval logic by directly using pathname for matching routes.

* feat: add changelog for v0.8.3-rc1 release with new features and fixes

- Introduced several enhancements including event-driven lazy tool loading, token usage tracking, and programmatic tool calling UI.
- Added support for new models and providers, including Claude Opus 4.6 and Moonshot.
- Implemented various bug fixes and improvements for better user experience and performance.

* chore: nextjs artifact

* first draft roadmap

* feat: enhance BlogPage with Open Graph image support and layout improvements

- Added support for Open Graph images in blog entries to improve visual presentation.
- Refactored article layout for better structure and readability, including adjustments to the display of metadata and content.
- Updated styles for improved user experience during hover interactions.

* feat: enhance BlogPage with date formatting and layout adjustments

- Added a new dateFormatted field to entries for improved date display.
- Implemented a date formatter for consistent date presentation.
- Refactored article layout to use a grid system for better responsiveness.
- Updated styles for article links and metadata for enhanced user experience.

* feat: add responsive image sizes to BlogPage for improved layout

- Included sizes attribute for Open Graph images to enhance responsiveness on different screen sizes.

* feat: update feature titles and descriptions for clarity

- Changed titles for "Forking Messages and Conversations" to "Forking Chats" and "Memory" to "User Memory" for better alignment with functionality.
- Updated descriptions for "Message Search" and "Upload as Text" to enhance understanding of features.

* chore: update configuration version to 1.3.4 across multiple documentation files

- Updated the version number in `librechat.yaml` examples to reflect the latest release (1.3.4) in various configuration and feature documentation files.

* feat: enhance User Memory documentation for clarity and detail

- Updated the description to clarify that User Memory is a key/value store that operates on every chat request.
- Added a callout to distinguish between key/value storage and conversation memory.
- Expanded on the functionality of the memory agent, including its execution process and user control features.
- Introduced a section on future improvements for the memory agent's efficiency and relevance.

* feat: update title and description for NGINX documentation

- Changed the title from "Secure Deployment with Nginx" to "NGINX" for brevity.
- Updated the description to provide a clearer overview of the guide's purpose in securing LibreChat deployment with Nginx as a reverse proxy and HTTPS.

* feat: update 2026 roadmap with key accomplishments and future plans

- Celebrated LibreChat's 3rd anniversary with a summary of achievements from 2025, including growth in GitHub stars and community engagement.
- Clarified the timeline for open-sourcing the Code Interpreter API by the end of Q1.
- Revised notes on the v1 Admin Panel's core capabilities and community-driven items for better clarity and detail.

* feat: enhance blog and author components with Open Graph image support

- Added optional `ogImagePosition` field to blog entries for better image placement control.
- Updated BlogPage and individual post pages to utilize the new `ogImagePosition` for responsive image styling.
- Improved Author component to conditionally render author images based on availability.
- Updated 2026 roadmap blog post with a new Open Graph image and position for enhanced visual appeal.

* feat: enhance CardComponent with icon support and layout improvements

- Added optional `icon` prop to CardComponent for better visual representation.
- Updated CardComponent layout to include icon alongside title and children.
- Improved styling for CardComponent and CardsBase for enhanced responsiveness and user experience.

* feat: update 2026 roadmap with detailed focus areas and community-driven items

- Added sections for Q1 and Q2 focus areas, outlining major initiatives like Dynamic Context and Admin Panel.
- Enhanced clarity on community-driven items and their prioritization based on GitHub reactions.
- Included hiring information to attract full-stack developers for ongoing project support.
- Improved overall structure and readability of the roadmap content.

* fix: improve icon styling in CardCompat component for better responsiveness

- Updated icon container styling to ensure consistent height and width for SVG icons.
- Enhanced layout of CardCompat to maintain visual integrity across different screen sizes.

* chore: update .gitignore to include next-env.d.ts for TypeScript support

* fix: correct import statement formatting in next-env.d.ts for consistency

* fix: refine wording in 2026 roadmap for clarity

- Updated the description of agentic workflows to emphasize a lean approach to context pulling.
- Enhanced overall readability of the section on Dynamic Context.

* feat: expand Admin Panel section in 2026 roadmap with detailed capabilities

- Added comprehensive descriptions of the Admin Panel's core functionalities, including GUI for configuration, configuration profiles, group and role management, and access controls.
- Clarified the development approach for the Admin Panel, emphasizing ongoing iteration and community involvement.
- Updated note on the Admin Panel's prioritization and requirements following the ClickHouse acquisition.

* feat: add TrackedLink component for enhanced analytics tracking

- Introduced a new TrackedLink component that integrates Vercel analytics to track user interactions with links.
- The component allows for customizable link properties while ensuring tracking of clicks with relevant metadata.
- Updated CardCompat to utilize the new TrackedLink for improved user engagement tracking.

* feat: enhance blog post layout and introduce TrackedAnchor component for link tracking

- Wrapped the InlineTOC component in a div for improved spacing in blog posts.
- Added a new TrackedAnchor component to facilitate link tracking with Vercel analytics, allowing for customizable anchor elements.
- Updated mdx-components to utilize TrackedAnchor for enhanced link interaction tracking.

* feat: update TrackedLink and TrackedAnchor components for external link handling

- Enhanced the TrackedLink component to differentiate between internal and external links, using Next.js Link for internal navigation.
- Introduced a utility function to determine if a link is external, improving tracking accuracy.
- Updated TrackedAnchor to utilize the same external link handling logic for consistency in link tracking.

* feat: add uncaught exception handling section to dotenv configuration documentation

- Introduced a new section on uncaught exception handling, explaining how to override the default behavior to keep the app running after exceptions.
- Added an option table detailing the `CONTINUE_ON_UNCAUGHT_EXCEPTION` configuration.
- Included a warning callout advising against using this feature in production environments.

* feat: add ESLint rule for unused variables in TypeScript

- Introduced a new ESLint rule to enforce the handling of unused variables, allowing for specific patterns to be ignored.
- This enhancement aims to improve code quality by ensuring that developers are alerted to potentially unnecessary variables while maintaining flexibility in naming conventions.

* fix: update copyright year in LICENSE file to 2026

* feat: update footer menu link and add 2026 roadmap blog post

- Changed the roadmap link in the FooterMenu component to point to the new blog post.
- Introduced a new blog post detailing the 2026 roadmap for LibreChat, outlining key features and focus areas for the upcoming year.
- Updated the import statement in next-env.d.ts for consistency with the new types directory.

* fix: update import path in next-env.d.ts and add comment block in agents.mdx

- Changed the import statement in next-env.d.ts to reference the new development types directory.
- Added a comment block in agents.mdx to indicate that the Programmatic Tool Calling feature is in private beta.

* fix: remove unused ESLint disable comment in context.tsx

* chore: update blog
2026-02-18 21:46:20 -05:00

693 lines
21 KiB
Plaintext

---
title: "Interface Object Structure"
icon: LayoutDashboard
---
## 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`:
- `endpointsMenu`
- `mcpServers`
- `privacyPolicy`
- `termsOfService`
- `modelSelect`
- `parameters`
- `sidePanel`
- `presets`
- `prompts`
- `bookmarks`
- `memories`
- `multiConvo`
- `agents`
- `temporaryChat`
- `temporaryChatRetention`
- `customWelcome`
- `runCode`
- `webSearch`
- `fileSearch`
- `fileCitations`
- `peoplePicker`
- `marketplace`
**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"
use: true
create: true
share: false
public: false
trustCheckbox:
label: "I trust this server"
subLabel: "Only enable servers you trust"
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:
use: true
create: true
share: true
public: false
bookmarks: true
multiConvo: true
agents:
use: true
create: true
share: true
public: false
customWelcome: "Hey {{user.name}}! Welcome to LibreChat"
runCode: true
webSearch: true
fileSearch: true
fileCitations: true
```
## endpointsMenu
Controls the visibility of the endpoints menu dropdown in the chat interface.
**Key:**
<OptionTable
options={[
['endpointsMenu', 'Boolean', 'Controls whether the endpoints menu is visible in the UI.', 'When set to `false`, users will not see the endpoint selector dropdown.'],
]}
/>
**Default:** `true`
**Example:**
```yaml filename="interface / endpointsMenu"
interface:
endpointsMenu: false
```
## mcpServers
**Key:**
<OptionTable
options={[
['mcpServers', 'Object', 'Contains settings related to the MCP (Model Context Protocol) server selection interface and access control.', 'Allows for customization of the placeholder text, user permissions, and trust checkbox labels.'],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['placeholder', 'String', 'The placeholder text displayed in the MCP server selection dropdown when no server is selected.', 'MCP Servers'],
['use', 'Boolean', 'Controls whether users have permission to use existing MCP servers.', 'true'],
['create', 'Boolean', 'Controls whether users have permission to create new MCP servers.', 'true'],
['share', 'Boolean', 'Controls whether users have permission to share MCP servers with other users.', 'false'],
['public', 'Boolean', 'Controls whether users can share MCP servers publicly (visible to all users).', 'false'],
['trustCheckbox', 'Object', 'Customizable labels for the trust checkbox in the MCP server dialog. Supports simple strings or language-keyed objects for internationalization.', 'See below'],
]}
/>
**trustCheckbox Sub-keys:**
<OptionTable
options={[
['label', 'String or Object', 'The main label for the trust checkbox. Can be a simple string or a language-keyed object (e.g., { en: "I trust this server", es: "Confío en este servidor" }).', ''],
['subLabel', 'String or Object', 'The sub-label (help text) for the trust checkbox. Can be a simple string or a language-keyed object for internationalization.', ''],
]}
/>
**Example:**
```yaml filename="interface / mcpServers"
interface:
mcpServers:
placeholder: "Select MCP Server"
use: true
create: true
share: false
trustCheckbox:
label:
en: "I trust this server"
es: "Confío en este servidor"
subLabel:
en: "Only enable servers you trust"
es: "Solo habilite servidores en los que confíe"
```
## 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 or Object', 'Controls prompt-related features for all users. Can be a boolean for simple enable/disable, or an object for granular control over use, creation, sharing, and public visibility.', 'When set to `false`, users will not have access to create, edit, or use custom prompts.'],
]}
/>
**Default:** `true`
**Important: Boolean vs Object Configuration**
- **Boolean (`prompts: true`)**: Only updates the `use` permission. Existing `create`, `share`, and `public` permission values are **preserved** from the database. Use this as a simple feature toggle without affecting other settings configured through the admin panel.
- **Object**: Updates only the sub-permissions that are explicitly specified. Any permissions not included in the config are preserved from the database.
When using the object structure:
**Sub-keys:**
<OptionTable
options={[
['use', 'Boolean', 'Controls whether users can use prompts.', 'true'],
['create', 'Boolean', 'Controls whether users can create new prompts.', 'true'],
['share', 'Boolean', 'Controls whether users can share prompts with specific users/groups.', 'false'],
['public', 'Boolean', 'Controls whether users can share prompts publicly (visible to all users).', 'false'],
]}
/>
**Example (boolean - simple feature toggle):**
```yaml filename="interface / prompts (boolean)"
interface:
prompts: true # Only updates USE; create/share/public remain unchanged
```
**Example (object - granular control):**
```yaml filename="interface / prompts (object)"
interface:
prompts:
use: true
create: false # Disable creation while allowing use
# share and public not specified - preserves existing values
```
**Example (object - full control):**
```yaml filename="interface / prompts (object)"
interface:
prompts:
use: true
create: true
share: true
public: 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
```
## memories
**Key:**
<OptionTable
options={[
['memories', 'Boolean', 'Enables or disables the memories feature for all users in the interface.', 'When disabled, users will not have access to the memories panel or memory-related features.'],
]}
/>
**Default:** `true`
**Note:** This controls the UI visibility of the memories feature. For detailed memory behavior configuration (token limits, personalization, agent settings), see the [Memory Configuration](/docs/configuration/librechat_yaml/object_structure/memory).
**Example:**
```yaml filename="interface / memories"
interface:
memories: 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 or Object', 'Controls agent-related features for all users. Can be a boolean for simple enable/disable, or an object for granular control over use, creation, sharing, and public visibility.', 'When set to `false`, users will not have access to agents.'],
]}
/>
**Default:** `true`
**Important: Boolean vs Object Configuration**
- **Boolean (`agents: true`)**: Only updates the `use` permission. Existing `create`, `share`, and `public` permission values are **preserved** from the database. Use this as a simple feature toggle without affecting other settings configured through the admin panel.
- **Object**: Updates only the sub-permissions that are explicitly specified. Any permissions not included in the config are preserved from the database.
When using the object structure:
**Sub-keys:**
<OptionTable
options={[
['use', 'Boolean', 'Controls whether users can use agents.', 'true'],
['create', 'Boolean', 'Controls whether users can create new agents.', 'true'],
['share', 'Boolean', 'Controls whether users can share agents with specific users/groups.', 'false'],
['public', 'Boolean', 'Controls whether users can share agents publicly (visible to all users).', 'false'],
]}
/>
**Example (boolean - simple feature toggle):**
```yaml filename="interface / agents (boolean)"
interface:
agents: true # Only updates USE; create/share/public remain unchanged
```
**Example (object - granular control):**
```yaml filename="interface / agents (object)"
interface:
agents:
use: true
create: false # Disable creation while allowing use
# share and public not specified - preserves existing values
```
**Example (object - full control):**
```yaml filename="interface / agents (object)"
interface:
agents:
use: true
create: true
share: true
public: false
```
## remoteAgents
Controls access to the Agents API (OpenAI-compatible and Open Responses API endpoints), which allows external applications to interact with LibreChat agents programmatically via API keys.
**Key:**
<OptionTable
options={[
['remoteAgents', 'Object', 'Configuration for remote agent API access control. All fields default to `false`.', ''],
]}
/>
**Sub-keys:**
<OptionTable
options={[
['use', 'Boolean', 'Controls whether users can access the remote agents API.', 'false'],
['create', 'Boolean', 'Controls whether users can create API keys for remote agents.', 'false'],
['share', 'Boolean', 'Controls whether users can share remote agents.', 'false'],
['public', 'Boolean', 'Controls whether users can share remote agents publicly.', 'false'],
]}
/>
**Default:** All fields default to `false` (disabled).
**Example:**
```yaml filename="interface / remoteAgents"
interface:
remoteAgents:
use: true
create: true
share: false
public: false
```
**Note:** Admin users have all remote agent permissions enabled by default regardless of this configuration.
## temporaryChat
Controls whether the temporary chat feature is available to users. Temporary chats are not saved to conversation history and are automatically deleted after a configurable retention period.
**Key:**
<OptionTable
options={[
['temporaryChat', 'Boolean', 'Enables or disables the temporary chat feature.', 'When set to `false`, users will not see the option to start temporary chats.'],
]}
/>
**Default:** `true`
**Note:** The retention period for temporary chats can be configured using `temporaryChatRetention`.
**Example:**
```yaml filename="interface / temporaryChat"
interface:
temporaryChat: true
```
## temporaryChatRetention
The `temporaryChatRetention` configuration allows you to customize how long temporary chats are retained before being automatically deleted.
**Key:**
<OptionTable
options={[
['temporaryChatRetention', 'Number', 'Sets the retention period for temporary chats in hours.', 'temporaryChatRetention: 168'],
]}
/>
**Validation Rules:**
- **Minimum**: 1 hour (prevents immediate deletion)
- **Maximum**: 8760 hours (1 year maximum retention)
- **Default**: 720 hours (30 days)
**Configuration Methods:**
1. **LibreChat.yaml** (recommended): `interface.temporaryChatRetention: 168`
2. **Environment Variable** (deprecated): `TEMP_CHAT_RETENTION_HOURS=168`
> **Note:** The environment variable `TEMP_CHAT_RETENTION_HOURS` is deprecated. Please use the `interface.temporaryChatRetention` config option in `librechat.yaml` instead. The config file value takes precedence over the environment variable.
**Example:**
```yaml filename="interface / temporaryChatRetention"
interface:
temporaryChatRetention: 168 # Retain temporary chats for 7 days
```
**Common Retention Periods:**
- **1 hour**: `temporaryChatRetention: 1` (minimal retention)
- **24 hours**: `temporaryChatRetention: 24` (1 day)
- **168 hours**: `temporaryChatRetention: 168` (1 week)
- **720 hours**: `temporaryChatRetention: 720` (30 days - default)
- **8760 hours**: `temporaryChatRetention: 8760` (1 year - maximum)
## 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
```