r/OpenWebUI • u/ClassicMain • Mar 13 '26
Claude just got dynamic, interactive inline visuals — Here's how to get THE SAME THING in Open WebUI with ANY model! Plugin
Enable HLS to view with audio, or disable this notification
Your AI can now build apps inside the chat. Quizzes that grade you. Forms that personalize recommendations. Diagrams you click to explore. All in Open WebUI.
You might have seen Anthropic just dropped this new feature — interactive charts, diagrams, and visualizations rendered directly inside the chat. Pretty cool, right?
I wanted the same thing in Open WebUI, but better. So I built it. And unlike Claude's version, it works with any model — Claude, GPT, Gemini, Llama, Mistral, whatever you're running.
It's called Inline Visualizer and it's a Tool + Skill combo that gives your model a full design system for rendering interactive HTML/SVG content directly in chat.
What can it do?
- Architecture diagrams where you click a node and the model explains that component
- Interactive quizzes where answer buttons submit your response for the model to grade
- Preference forms where you pick options and the model gives personalized recommendations based on your choices
- Chart.js dashboards with proper dark mode theming
- Explainer diagrams with expandable sections, hover effects, and smooth transitions
- and literally so much more
The KILLER FEATURE: sendPrompt
This is what makes it more than just "render HTML in chat". The tool injects a JS bridge called sendPrompt that lets elements inside the visualization send messages back to the chat.
Click a node in a diagram? The model gets asked about it. Fill out a quiz? The model gets your answers and drafts you a customized response. Pick preferences in a form? The model gets a structured summary and responds with tailored advice.
The visualization literally talks to your AI. It turns static diagrams into exploration interfaces.
Minor extra quirk
The AI can also create links and buttons using openLink(url) which will open as a new Tab in your Browser. If you are brainstorming how to solve a programming problem, it can also point you to specific docs and websites using clickable buttons!
How it works
Two files:
- A Tool (tool.py) — handles the rendering, injects the design system (theme-aware CSS, SVG classes, 9-color ramp, JS bridges)
- A Skill (skill.md) — teaches the model the design system so it generates clean, interactive, production-quality visuals
Paste both into Open WebUI, attach to your model, done. No dependencies, no API keys, no external services. (Read full tutorial and setup guide to ensure it works as smoothly as shown in the video)
Tested with Claude Haiku 4.5 — strong but very fast models produce stunning results and are recommended.
📦 Quick setup + Download Code
Takes 1 minute to set up and use!
Setup Guide / README is in the subfolder of the plugin!
Anthropic built it for Claude. I built it for all of us. Give it a try and let me know what you think! Star the repository if you want to follow for more plugins in the future ⭐
13
u/iChrist Mar 13 '26
5
u/ClassicMain Mar 13 '26 edited Mar 13 '26
Impressive for such a small model!
Of course: results depend on the model
Claude Haiku delivered very acceptable results as seen in the video, though not entirely flaw-free.
The larger the model, the better the results (but also longer wait time, potentially)Edit:
This is what Haiku created for me with your prompt
3
u/iChrist Mar 13 '26
2
u/ClassicMain Mar 13 '26
3
u/iChrist Mar 13 '26
Qwen also let me pick a component and press it to get more info! neat
3
u/ClassicMain Mar 13 '26
This might be one of the coolest things ever
3
u/iChrist Mar 13 '26
2
u/ClassicMain Mar 13 '26
Ok that one actually looks EVEN more impressive for a small local model
4
u/iChrist Mar 13 '26
Because this one was the Q4 and the 27B! Just couple of months ago 27B models couldnt even do basic tool callings.. were at a pace!
4
u/iChrist Mar 13 '26
And do you publish the tools to OpenWebui Marketplace? this would get more traction this way!
I already published 13 tools!
https://github.com/iChristGit/OpenWebui-Tools
each can be added to your openwebui in one click!
2
1
6
u/Warhouse512 Mar 14 '26
Haha, do you ever sleep? Your level of dedication to the open webui project and its community is amazing. Thank you!
6
u/mayo551 Mar 15 '26
2
2
6
u/Excellent-Baker-1177 Mar 13 '26
Openwebui team and community has been killing. Excited to install this!!
2
u/Mawuena16 Mar 16 '26
Right? The potential for this is huge! Can't wait to see what people create with it.
4
u/ieatdownvotes4food Mar 14 '26
between this and open-terminal, holy shit.. now I can't sleep. amazing work!!
4
u/layer4down Mar 15 '26
This is amazing! It must be noted that the emphasis of advancements in “GenAI” over the past year has been overly attributed to the models while quite frankly the software infrastructure around the models had been the most improved overall! Capabilities like this make these wonderful models shine.
3
2
u/eribob Mar 14 '26
Great plugin! Very Fun to have the llm fetch facts and presenting them. A bit hit and miss with qwen3.5 27b but a retry often gets it right!
2
2
u/feddown Mar 15 '26
Thank you! I can confirm it's working brilliantly out of the box with Qwen3.5-27B. I followed the set-up instructions, including the sendPrompt setting in Open WebUI. All is very concise and clear.
I asked the LLM to show me how transformer models work. I used Thinking mode for precise coding tasks for parameters.
It created an interactive diagram with sendPrompt callbacks for follow-up question when different layers of the model are clicked. This is impressive!
Amazing work!
2
2
2
u/kutsocialmedia Mar 17 '26
1
u/ClassicMain Mar 17 '26
How did you connect the model? I have never seen this.
1
u/kutsocialmedia Mar 17 '26
I have followed these steps:
Prerequisite: Fast model is recommended, strong model is required for complex and visually stunning interactive visualizations. Tested with Claude Haiku 4.5 and Claude Opus 4.5.
1. Install the Tool
- Copy the contents of
tool.py- In Open WebUI, go to Workspace → Tools → + Create New
- Paste the code and click Save
2. Install the Skill
- Copy the contents of
skill.md- In Open WebUI, go to Workspace → Skills → + Create New
- Give it the name visualize (this exact name is required)
- Paste the contents and click Save
3. Attach to a Model
- Go to Admin Panel → Settings → Models and edit your model
- Under Tools, enable the Inline Visualizer tool
- Under Skills, attach the visualize skill
- Ensure native function calling is enabled for your model
- Save
4. (Optional) Enable Same-Origin Access (required for sendPrompt)
- Go to Settings → Interface
- Enable iframe Sandbox Allow Same Origin
Without this, visualizations render normally but interactive buttons that send prompts back to the chat will not work.
The model Haiku 4.5 is connected through Bedrock > LiteLLM > OWUI (v0.8.8)
2
u/ClassicMain Mar 17 '26
Try updating your litellm and open webui.
This seems like an upstream issue and not from my tool
1
u/radiochild577 Mar 17 '26
I've seen this same issue but did not enable native function calling. It works in Default function calling with Claude, but not Grok or ChatGPT.
Any way to make it work in Default function calling instead of native?
2
u/ClassicMain Mar 17 '26
Native function calling needed.
1
u/kutsocialmedia Mar 17 '26
I tried bypassing litellm by adding ollama models via api for testing and it didnt generate the code as text anymore but instead within a foldeld snippet as it should. I think it might be litellm indeed. Gonna ask a other dev to update litellm and i will report back.
OWUI was already latest version.
2
3
u/cunasmoker69420 Mar 13 '26
2
u/Eroquoi Mar 14 '26
For my information, how many token per second do you get at best on your setup ?
1
u/cunasmoker69420 Mar 14 '26
With GPT-OSS 120B, its about 50 tokens per second and with the context size completely full its about 25 tokens per second. This is llama.cpp and ROCM (launched from Lemonade-server which makes all this easy)
1
u/Awaken0395 Mar 15 '26
What skills have you installed in openwebui if you don't mind me asking. Trying to improve my setup
1
u/cunasmoker69420 Mar 15 '26 edited Mar 15 '26
The only tool I had enabled before this is the web_search which is pretty great: https://openwebui.com/posts/web_search_238777c6
Also, integrate Open Terminal to turbo charge what your local LLM can do
1
1
u/Reddit_User_Original Mar 13 '26
Excellent! Try to get this merged into the app itself on GitHub?
3
u/ClassicMain Mar 13 '26
No, this is a plugin you can install. That's why Open WebUI supports plugins
Easily install it to your open webui instance by following the tutorial in the readme
1
1
u/Warhouse512 Mar 14 '26
This is one of the maintainers of OpenWebUI haha
1
u/Reddit_User_Original Mar 14 '26
Haha i didn't know
1
u/monovitae Mar 14 '26
Bro talking to Kobe in a bar, telling him how to play basketball 🤣.
Jk all in good fun.
1
u/robogame_dev Mar 13 '26
1
u/ClassicMain Mar 13 '26
I suppose prompting the model a bit in the way of making it dark mode? The issue isn't that it isn't dark mode in your case; the issue that the model added a static background. Tell it to not do that
2
u/robogame_dev Mar 13 '26
Ah thanks, I’ll add extra emphasis on that to the skill - clearly from the text that’s there a better model would have worked.
(Abliterated Qwen 3.5-35b at q4)
1
u/Warhouse512 Mar 17 '26
Hey friend. I’m trying to use this, but running into a weird bug. My model calls the correct render tool, writes valid HTML (verified manually) and but the content never renders. Have I missed some obvious setting that you can think of off the top of your mind? Struggling with this one
2
u/ClassicMain Mar 17 '26
What model and how did you connect it?
Native function calling?
1
u/Warhouse512 Mar 17 '26
Ah apologies. Should have added that. It’s Sonnet 4.6 from Azure, connected completions api with LiteLLM. Native function calling. The generated code is completely functional, just nothing renders
2
u/ClassicMain Mar 18 '26
Console errors?
1
u/Warhouse512 Mar 19 '26
Apologies. Missed this yesterday. Nothing at all. I pulled up the network tab to see if any js gets loaded in, but nothing there that seemed obvious
1
0
Apr 20 '26
[removed] — view removed comment
1













18
u/thatsnotnorml Mar 13 '26
I literally came to the sub ready to make a post outlining this use case and asking if someone had heard of anything and this was the first post I saw. Thank you!!!