OpenUI Lang: Support live data sources

Open
#388 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@Aditya-thesys is already working on this.

Since Mar 25, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement

Is your feature request related to a problem? Please describe.
OpenUI responses can render data-rich UI, but the data in a response is mostly fixed at the time the model generates it. If the underlying data changes, the user often needs to ask again or the app needs to regenerate the whole response.

This is limiting for UI that should stay current, such as dashboards, metrics, stock prices, tickets, incident status, analytics, weather, inventory, or any view backed by an API or MCP tool.

Describe the solution you'd like
Allow OpenUI responses to include live data sources that can refresh independently of the original model response.

Ideally, OpenUI should support data sources backed by APIs, MCP tools, or registered host functions. A generated response could declare that a component depends on a live query, and the renderer/runtime would keep that data fresh.

This should support:

  • Declaring live data dependencies in OpenUI Lang.
  • Fetching data from an API, MCP tool, or host-provided provider.
  • Refreshing data on an interval, on demand, or when inputs change.
  • Showing loading, error, and stale states in rendered UI.
  • Updating only the affected part of the response instead of regenerating the entire message.
  • Cancelling or ignoring stale requests when a newer request is made.
  • Keeping the model output declarative and safe, so the model cannot execute arbitrary code.
  • Clear docs and examples for live charts, tables, cards, and metric components.

Describe alternatives you've considered

  • Ask the model to regenerate the full response every time data changes.
  • Fetch data outside OpenUI and manually inject it into component props.
  • Build custom components that handle their own data fetching.
  • Use only static snapshots of API results in generated responses.

These approaches work for simple cases, but they either duplicate data-fetching logic, make generated UI harder to reuse, or prevent OpenUI responses from staying current.

Additional context
This would make OpenUI much more useful for dashboards, monitoring views, analytics reports, admin panels, and assistant responses that need to reflect real-time or frequently changing data.

This likely overlaps with Query / Mutation, tool provider support, and MCP integration. The important part is that live data should be represented as a safe declarative dependency in OpenUI Lang, with actual execution handled by trusted runtime providers.

Dominant language
TypeScript
Stars
10k
Forks
698
Avg merge
1d 6h
Merged PRs (30d)
148

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from thesysdev/openui

All issues in thesysdev/openui

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.