[GH-ISSUE #21440] feat: Option to hide Tool Call JSON (arguments/results) from the Chat UI #58148

Closed
opened 2026-05-05 22:24:54 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @ldpg-dev on GitHub (Feb 15, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21440

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

This is great for non-technical users and almost every other chat UI has this already... It makes the AI feel more like a seamless agent and less like a debugger. It also prevents leaking internal JSON structures, SQL fragments, or technical IDs to the end-user.

Currently, Open WebUI streams tool calls to the frontend by injecting <details type="tool_calls"> tags directly into the message content via the middleware. While this is great for transparency, it can be intimidating or "unfriendly" for non-technical users to see raw JSON arguments and results, especially for tools that handle complex data or internal lookups.

I would like to propose a way to hide the JSON window (the black code block) or the entire tool call UI for specific tools or via a global setting.

Desired Solution you'd like

  • Per-Tool Visibility Toggle: Both in the Tool and Skills definition/settings, add a checkbox: "Hide Tool JSON from User". Alternatively, we can initially have a "Hide every tool JSON" env variable
  • Metadata Flag: Allow tools to return a metadata flag that tells the middleware to skip emitting the arguments or result attributes in the <details> tag.
  • Friendly Summaries: Allow tools to provide a "UI Payload" that replaces the raw JSON in the collapsible box with a human-readable string. Alternatively, we can initially just leave the original event being emitted that says a tool is being used but using the NAME instead of the ID of the tool

Alternatives Considered

No response

Additional Context

No response

Originally created by @ldpg-dev on GitHub (Feb 15, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/21440 ### 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 This is great for non-technical users and almost every other chat UI has this already... It makes the AI feel more like a seamless agent and less like a debugger. It also prevents leaking internal JSON structures, SQL fragments, or technical IDs to the end-user. Currently, Open WebUI streams tool calls to the frontend by injecting `<details type="tool_calls">` tags directly into the message content via the middleware. While this is great for transparency, it can be intimidating or "unfriendly" for non-technical users to see raw JSON arguments and results, especially for tools that handle complex data or internal lookups. I would like to propose a way to hide the JSON window (the black code block) or the entire tool call UI for specific tools or via a global setting. ### Desired Solution you'd like - Per-Tool Visibility Toggle: Both in the Tool and Skills definition/settings, add a checkbox: "Hide Tool JSON from User". Alternatively, we can initially have a "Hide every tool JSON" env variable - Metadata Flag: Allow tools to return a metadata flag that tells the middleware to skip emitting the arguments or result attributes in the `<details>` tag. - Friendly Summaries: Allow tools to provide a "UI Payload" that replaces the raw JSON in the collapsible box with a human-readable string. Alternatively, we can initially just leave the original event being emitted that says a tool is being used but using the NAME instead of the ID of the tool ### Alternatives Considered _No response_ ### Additional Context _No response_
Author
Owner

@Classic298 commented on GitHub (Feb 15, 2026):

Heavily Related: https://github.com/open-webui/open-webui/issues/20598

<!-- gh-comment-id:3905248657 --> @Classic298 commented on GitHub (Feb 15, 2026): Heavily Related: https://github.com/open-webui/open-webui/issues/20598
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#58148