# 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`:

  - `privacyPolicy`
  - `termsOfService`
  - `endpointsMenu`
  - `modelSelect`
  - `parameters`
  - `sidePanel`
  - `presets`
  - `prompts`
  - `bookmarks`
  - `multiConvo`
  - `agents`

**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:
  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!
  endpointsMenu: true
  modelSelect: false
  parameters: true
  sidePanel: true
  presets: false
  prompts: true
  bookmarks: true
  multiConvo: true
  agents: true
```

## 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.'],
  ]}
/>

## endpointsMenu

**Key:**
<OptionTable
  options={[
    ['endpointsMenu', 'Boolean', 'Controls the visibility of the endpoints menu in the interface.', 'Toggling this setting allows administrators to customize the availability of endpoint selections within the application.'],
  ]}
/>

**Default:** `true`

**Example:**
```yaml filename="interface / endpointsMenu"
interface:
  endpointsMenu: false
```

## 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`

**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
```