diff --git a/content/docs/configuration/librechat_yaml/object_structure/branding.mdx b/content/docs/configuration/librechat_yaml/object_structure/branding.mdx
new file mode 100644
index 000000000..ae8abb0b7
--- /dev/null
+++ b/content/docs/configuration/librechat_yaml/object_structure/branding.mdx
@@ -0,0 +1,131 @@
+---
+title: "Branding Object Structure"
+icon: Palette
+---
+
+## Overview
+
+The `branding` object enables white-label customization of LibreChat. It provides runtime control over logos, favicons, browser metadata, and color themes — without requiring source code changes.
+
+Branding is resolved through the same app-config pipeline as `interface` and `turnstile`, and is delivered to the frontend via the `/api/config` startup payload.
+
+These are the top-level fields under `branding`:
+
+- `appLogo`
+- `authLogo`
+- `favicon`
+- `meta`
+- `theme`
+
+## Example
+
+```yaml filename="librechat.yaml"
+branding:
+ appLogo: "/assets/my-logo.svg"
+ authLogo: "/assets/my-auth-logo.svg"
+ favicon: "/assets/my-favicon.png"
+ meta:
+ title: "My Chat App"
+ description: "Powered by LibreChat"
+ themeColor: "#0f766e"
+ pwaName: "My Chat App"
+ pwaShortName: "ChatApp"
+ pwaBackgroundColor: "#ffffff"
+ pwaThemeColor: "#0f766e"
+ theme:
+ light:
+ rgb-primary: "15 118 110"
+ rgb-accent: "13 148 136"
+ rgb-surface-primary: "248 250 252"
+ dark:
+ rgb-primary: "45 212 191"
+ rgb-accent: "20 184 166"
+ rgb-surface-primary: "15 23 42"
+```
+
+## branding
+
+
+
+### appLogo
+
+
+
+### authLogo
+
+
+
+### favicon
+
+
+
+### meta
+
+Browser and PWA metadata applied at runtime.
+
+` tag content.', 'Powered by LibreChat'],
+ ['themeColor', 'String', 'Sets the `` tag. Controls the browser chrome color on mobile devices.', '#0f766e'],
+ ['pwaName', 'String', 'Full name of the app when installed as a Progressive Web App.', 'My Chat App'],
+ ['pwaShortName', 'String', 'Short name shown on the home screen when installed as a PWA.', 'ChatApp'],
+ ['pwaBackgroundColor', 'String', 'Background color of the PWA splash screen.', '#ffffff'],
+ ['pwaThemeColor', 'String', 'Theme color for the PWA shell.', '#0f766e'],
+ ]}
+/>
+
+### theme
+
+Runtime color theme tokens injected into the `ThemeProvider`. Supports separate palettes for `light` and `dark` modes. Both are optional — if only one is provided, it is used for both modes.
+
+Each palette is a map of CSS variable names (without the `--` prefix) to RGB values as space-separated strings (e.g. `"15 118 110"` for `rgb(15, 118, 110)`).
+
+
+
+**Common theme tokens:**
+
+
+
+---
+
+## Notes
+
+- All `branding` fields are optional. Omitting the block entirely leaves default LibreChat behavior unchanged.
+- Logo and favicon paths should be relative to the app's public assets directory or absolute URLs.
+- Theme tokens are applied after the user's theme preference (light/dark) is resolved. The correct palette is selected automatically.
+- The `meta.title` field takes precedence over the top-level `appTitle` config field when both are set.
diff --git a/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx b/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx
index cb8f6abba..7832f243e 100644
--- a/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx
+++ b/content/docs/configuration/librechat_yaml/object_structure/file_config.mdx
@@ -311,6 +311,8 @@ This priority system allows features like "Upload as Text" to work without requi
- The total maximum size for all files in a single request. In units of MB (e.g. use `20` for 20 megabytes)
- `supportedMimeTypes`
- A list of [Regular Expressions](https://en.wikipedia.org/wiki/Regular_expression) specifying what MIME types are allowed for upload. This can be customized to restrict file types.
+ - `disableProviderUpload`
+ - When `true`, hides the "Upload to Provider" option in the attachment menu for this endpoint. "Upload as Text" and "File Search" remain available.
## disabled
@@ -392,3 +394,28 @@ assistants:
- "image/.*"
- "application/pdf"
```
+
+## disableProviderUpload
+
+
+
+**Default:** `false`
+
+**Example:**
+```yaml filename="fileConfig / endpoints / {endpoint_record} / disableProviderUpload"
+fileConfig:
+ endpoints:
+ litellm:
+ disableProviderUpload: true
+ custom:
+ disableProviderUpload: true
+```
+
+**Notes:**
+- Only hides "Upload to Provider". "Upload as Text" (RAG) and "File Search" are not affected.
+- Can be set on any endpoint key: named custom endpoints (e.g. `litellm`), the generic `custom` fallback, or built-in endpoints like `openAI`.
+- If set on `default`, it applies to all endpoints that do not have their own entry.
diff --git a/content/docs/configuration/librechat_yaml/object_structure/interface.mdx b/content/docs/configuration/librechat_yaml/object_structure/interface.mdx
index b3d9b78ca..569443b40 100644
--- a/content/docs/configuration/librechat_yaml/object_structure/interface.mdx
+++ b/content/docs/configuration/librechat_yaml/object_structure/interface.mdx
@@ -651,3 +651,4 @@ interface:
marketplace:
use: true # Enable marketplace access
```
+
diff --git a/content/docs/configuration/librechat_yaml/object_structure/meta.json b/content/docs/configuration/librechat_yaml/object_structure/meta.json
index ee9d1c6a9..f553a5cc6 100644
--- a/content/docs/configuration/librechat_yaml/object_structure/meta.json
+++ b/content/docs/configuration/librechat_yaml/object_structure/meta.json
@@ -5,6 +5,7 @@
"---General---",
"config",
"interface",
+ "branding",
"registration",
"turnstile",
"---Models & Specs---",