[GH-ISSUE #23884] feat: Option to hide assistant message header (model name + timestamp + profile image) in single-model deployments, or show it only during active inference #35628

Open
opened 2026-04-25 09:47:41 -05:00 by GiteaMirror · 0 comments
Owner

Originally created by @Tyrannius on GitHub (Apr 19, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23884

Check Existing Issues

  • I have searched for all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request.

Verify Feature Scope

  • I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions.

Problem Description

Summary

In single-model deployments the assistant message header — profile image,
model name (i.e. Qwen 3.6) and timestamp (Today at HH:MM) — is
repeated above every response and adds no information, since there is only
one model and the timestamp is already implicit from chat order. Currently
there is no built-in way to hide or conditionally show this block. I am a friend of

Use case

We run Open WebUI as the only chat frontend for our organisation with a
single branded model. End users don't choose a model — it's always the same
one. The header is pure visual noise that pushes actual content down and
clutters long threads.

Why this belongs upstream

Single-model deployments are common (customer-facing branded chatbots,
internal tools with one vendor LLM, on-prem single-model setups). The
header block makes sense in multi-model contexts to disambiguate. In
single-model contexts it's noise. A small render-gate in the
ResponseMessage component keyed on an admin config would solve this
cleanly without requiring every operator to maintain fragile CSS patches.

Related existing permission pattern: USER_PERMISSIONS_CHAT_MULTIPLE_MODELS
already recognizes the single-model case — this FR extends that spirit
to the per-message header.

Desired Solution you'd like

Proposed solution

Add a permission / admin toggle — ideally both:

  1. Env var SHOW_ASSISTANT_MESSAGE_HEADER with values like
    always | during_inference | never
  2. User-permission equivalent in Admin → Settings → Users → Chat
    Permissions (like the existing USER_PERMISSIONS_CHAT_MULTIPLE_MODELS)

during_inference would render the profile image (and optionally the name)
while the response is being generated — i.e. while the loading indicator
is present — and hide it once the message is finished. This gives users
clear "the AI is working" feedback without the permanent redundant header.

never hides the whole header block on all assistant messages.

Alternatives Considered

Current workaround (CSS inject)

We inject this into the built index.html via a post-start patch script because we prefer a slick and clean UI focused on readability.

/* Hide model name + timestamp permanently */
div.flex.gap-1.items-center:has(> div > #response-message-model-name) {
  display: none !important;
}

/* Hide profile image by default, show only while the message is
   still being generated. OWUI markers during inference:
     .spinner_ajPY  — thinking spinner ("Denke nach…")
     .animate-size  — streaming pulse dot */
img.assistant-message-profile-image {
  display: none !important;
}
[id^="message-"]:has(.animate-size, .spinner_ajPY)
  img.assistant-message-profile-image {
  display: inline-block !important;
}

This works, but:
- Breaks on every UI refactor (class names change across minor versions)
- Requires re-applying after every container image upgrade
- Isn't configurable per user/role


### Additional Context

_No response_
Originally created by @Tyrannius on GitHub (Apr 19, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/23884 ### Check Existing Issues - [x] I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. ### Verify Feature Scope - [x] I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions. ### Problem Description ## Summary In single-model deployments the assistant message header — profile image, model name (i.e. Qwen 3.6) and timestamp (`Today at HH:MM`) — is repeated above every response and adds no information, since there is only one model and the timestamp is already implicit from chat order. Currently there is no built-in way to hide or conditionally show this block. I am a friend of ## Use case We run Open WebUI as the only chat frontend for our organisation with a single branded model. End users don't choose a model — it's always the same one. The header is pure visual noise that pushes actual content down and clutters long threads. Why this belongs upstream Single-model deployments are common (customer-facing branded chatbots, internal tools with one vendor LLM, on-prem single-model setups). The header block makes sense in multi-model contexts to disambiguate. In single-model contexts it's noise. A small render-gate in the ResponseMessage component keyed on an admin config would solve this cleanly without requiring every operator to maintain fragile CSS patches. Related existing permission pattern: USER_PERMISSIONS_CHAT_MULTIPLE_MODELS already recognizes the single-model case — this FR extends that spirit to the per-message header. ### Desired Solution you'd like ## Proposed solution Add a permission / admin toggle — ideally both: 1. **Env var** `SHOW_ASSISTANT_MESSAGE_HEADER` with values like `always | during_inference | never` 2. **User-permission equivalent** in Admin → Settings → Users → Chat Permissions (like the existing `USER_PERMISSIONS_CHAT_MULTIPLE_MODELS`) `during_inference` would render the profile image (and optionally the name) while the response is being generated — i.e. while the loading indicator is present — and hide it once the message is finished. This gives users clear "the AI is working" feedback without the permanent redundant header. `never` hides the whole header block on all assistant messages. ### Alternatives Considered ## Current workaround (CSS inject) We inject this into the built `index.html` via a post-start patch script because we prefer a slick and clean UI focused on readability. ```css /* Hide model name + timestamp permanently */ div.flex.gap-1.items-center:has(> div > #response-message-model-name) { display: none !important; } /* Hide profile image by default, show only while the message is still being generated. OWUI markers during inference: .spinner_ajPY — thinking spinner ("Denke nach…") .animate-size — streaming pulse dot */ img.assistant-message-profile-image { display: none !important; } [id^="message-"]:has(.animate-size, .spinner_ajPY) img.assistant-message-profile-image { display: inline-block !important; } This works, but: - Breaks on every UI refactor (class names change across minor versions) - Requires re-applying after every container image upgrade - Isn't configurable per user/role ### Additional Context _No response_
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#35628