---
title: "OpenAI Intelligent UI vs OpenUI: Business Apps"
canonical: https://wavect.io/blog/openai-intelligent-ui-vs-openui/
language: en
description: "OpenAI Intelligent UI vs Thesys OpenUI: API boundaries, runtime actions, saved state and a practical guide to generative UI in your own business application."
image: "https://wavect.io/img/blog/headers/header_openai-intelligent-ui-vs-openui.png"
---

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

12 min read · 8 Oct 2026 Last reviewed October 8, 2026

[**Next**](/blog/ai-agent-design-patterns/)

# OpenAI Intelligent UI vs OpenUI: Generative UI for Business Apps

TL;DR

OpenAI Intelligent UI brings adaptive responses to ChatGPT. Thesys OpenUI lets application teams compose interfaces from registered components. Evaluate where the workflow lives, which interactions need a model, and how state and actions remain reliable. Begin with one task and compare correct completion, time to usable controls and total cost against the existing interface.

OpenAI announced Intelligent UI for ChatGPT on 7 October 2026, combining text with interactive responses. Its implementation uses streamable components and a compiler. [OpenAI's launch announcement](https://openai.com/index/gpt-6-for-everyone/)

Meanwhile, the [Thesys OpenUI repository](https://github.com/thesysdev/openui) displayed roughly 10,000 GitHub stars when checked on 8 October. That is evidence of developer interest. A star count cannot establish how many business workflows run successfully in production.

The useful question for a product team is what happens when a user wants to *do something* with the answer. A procurement assistant that explains an approval is helpful. One that presents the relevant request, lets the user inspect it and records the correct approval can remove an entire handoff.

Sources reviewed on 8 October 2026. The workflow and evaluation criteria below are Wavect's proposed engineering approach, not a report of an OpenUI client deployment or a measured performance test.

## What is the difference between Intelligent UI and OpenUI?

**Intelligent UI is a ChatGPT capability; OpenUI is a framework you can integrate into an application.** OpenAI's [Intelligent UI help page](https://help.openai.com/en/articles/20001598-intelligent-ui-in-chatgpt) describes answers whose layout and interaction adapt to the question.

Thesys documents as a declarative language for composing your registered components. Your application renders the model's description. Here, *generative UI* means selecting and arranging the interface at runtime around the user's task.

| Decision | ChatGPT Intelligent UI | OpenUI in your application |
| --- | --- | --- |
| User's starting point | A ChatGPT conversation | Your product or internal tool |
| Interface foundation | ChatGPT's response experience | Your registered component library |
| Team's immediate task | Evaluate whether the conversation solves the task | Integrate the renderer, data and interaction paths |
| Main evaluation question | Does the answer help the user understand or act? | Does the complete workflow improve on the existing UI? |

This is also a different delivery model from asking a coding agent to build a screen that developers review and ship. Runtime generation creates a new presentation while someone uses the product. That makes stable interaction, recovery and component constraints part of the product design.

## Can you add OpenAI Intelligent UI to your own app through an API?

**The reviewed launch does not announce an embeddable Intelligent UI renderer.** It describes ChatGPT's product experience. A model API and a complete interactive product interface are separate integration contracts; do not plan an implementation around an SDK inferred from a feature announcement.

For a developer-controlled interface *inside ChatGPT*, OpenAI separately documents an MCP server with an optional iframe UI, using the MCP Apps standard. See its current [MCP server and UI quickstart in the Plugins documentation](https://developers.openai.com/plugins/build/app-quickstart).

Start with the distribution decision. If users already work in your customer portal, prototype the interaction there. If the intended entry point is ChatGPT, evaluate that host's integration route. A company may eventually support both, but the first useful experiment needs only one.

## Which OpenUI project should developers evaluate?

This guide covers `thesysdev/openui`, maintained by Thesys. The repository lists React, Vue, Svelte and Angular runtimes, with additional ready-made React interface components. Its [MIT license](https://github.com/thesysdev/openui/blob/main/LICENSE) covers the open-source project. Managed-service charges and model inference remain separate considerations.

Other similarly named projects include [Weights & Biases' OpenUI, for generating and previewing UI code](https://github.com/wandb/openui), and [Open WebUI, a self-hosted AI interface](https://github.com/open-webui/open-webui). Use the repository owner when comparing packages, examples or deployment instructions.

For an existing application, begin with a deliberately small component catalog. Register the summaries, tables, filters and confirmation views that the workflow actually needs. OpenUI's [component documentation](https://www.openui.com/docs/openui-lang/defining-components) defines components through schemas and renderers.

Our recommendation is to make consequential components semantically specific. An application-owned `PurchaseApproval` can consistently show the request, amount, currency and approval meaning. A generic button with model-generated text gives the product fewer opportunities to enforce that consistency. Component validation still needs separate business validation.

## Does OpenUI need an LLM call for every click?

**No. OpenUI can generate the interface once and run supported interactions through its runtime.** Its [architecture documentation](https://www.openui.com/docs/openui-lang/architecture) separates generation from execution and connects tools through `toolProvider`.

For example, changing a date filter can update the existing view and fetch fresh data. A request to redesign that view can return to the model. Those operations deserve different paths because one is a known interaction and the other requires new composition.

The [queries and mutations documentation](https://www.openui.com/docs/openui-lang/queries-mutations) distinguishes reads with `Query` from writes with `Mutation`. A mutation runs when triggered through `@Run`. This provides useful execution wiring; the server must still decide whether a particular operation is permitted.

Keep the tool surface narrow. Expose a named operation such as approving an existing purchase request, with validated arguments. Avoid giving generated interfaces a generic endpoint that can execute arbitrary SQL, URLs or commands. A read path also needs access checks: a harmless-looking table can still contain another customer's records.

Separate layout generation from data retrieval where possible. Let an approved tool return current numbers and calculate totals in ordinary code. This can reduce the amount of business data sent through a model and prevent stale generated prose from becoming the apparent source of truth. Whether it reduces cost depends on the actual request, tool and regeneration workload.

## A generative UI example: purchase approvals with a stable action boundary

Consider a hypothetical internal request: “Show the purchases awaiting my approval, compare delivery dates and let me review one.” The user should be able to explore the list freely. Approving a specific purchase must remain an explicit, verifiable operation.

1. **Load the user's permitted view.** The backend derives identity and organization from the authenticated session. It returns authorized records with their current versions and permitted actions.
2. **Generate the useful presentation.** The model composes the registered table, comparison and explanation components. Material approval details come from the application's reviewed record, including the supplier, amount and currency.
3. **Keep confirmation under application control.** The confirmation component shows exactly what will change. It becomes usable only when required data and validation are complete, and preserves user input while other content streams.
4. **Recheck at execution.** The backend verifies current permissions, the record version and the permitted state transition. It commits the action with duplicate protection.
5. **Display the recorded outcome.** The UI shows the backend's receipt or current status. A timeout leaves an uncertain result to reconcile; it does not justify inventing success or submitting a new approval blindly.

A proposed application request might contain the following fields. This is an illustrative contract for your own endpoint, not OpenUI SDK syntax:

```
{
  "request_id": "PR-2048",
  "expected_version": 7,
  "operation_id": "8b47e18a-2986-4eb4-94a4-c6466bc12476"
}
```

The server obtains the actor from the session. It binds the operation ID to that actor, organization and action payload, rejects conflicting reuse, and atomically checks the record version when writing. If approval details change, the user reviews the updated request before confirming again.

This design follows the principle of checking authorization immediately before execution, described in [OWASP's transaction-authorization guidance](https://cheatsheetseries.owasp.org/cheatsheets/Transaction_Authorization_Cheat_Sheet.html). The particular request fields and workflow above are our proposed implementation choices.

The important design consequence is that every route into a business operation shares the same checks. A generated control, an ordinary screen and an agent tool must not become three different permission systems. Our [AI agent design-pattern guide](/blog/ai-agent-design-patterns/) covers the surrounding execution choices.

## Where should OpenUI state and business records be saved?

**Save interaction state and business state deliberately, with different owners.** OpenUI's [interactivity guide](https://www.openui.com/docs/openui-lang/interactivity) documents persistence hooks through `onStateUpdate` and `initialState`. The application supplies the storage and reload behavior.

| State | Suggested owner | Recovery requirement |
| --- | --- | --- |
| Selected tab, filters and unsent input | Application UI state | Restore predictably without silently submitting a draft |
| Saved interface description | Versioned application storage | Check compatibility with the current component catalog |
| Purchase status and approval receipt | Authoritative backend records | Reload current truth and reconcile uncertain operations |

Scope saved interfaces to their user and organization. Reopening a dashboard should fetch authorized current data. Treat a saved “approved” label as presentation, never as proof that an approval exists in the system of record.

There is also an integration detail worth checking: `onAction` handles conversation and URL actions, while runtime operations such as `@Run` are handled internally. Enforce business permissions in the tool/backend path that actually executes, rather than assuming one UI callback intercepts every operation.

## OpenUI vs A2UI, AG-UI and MCP Apps: which layer do you need?

These names describe different boundaries. Compare the responsibility you need before selecting dependencies.

| Technology | Documented role | Useful question |
| --- | --- | --- |
| [OpenUI](#source-openui-language) | A language and runtime for generated component interfaces | How will our application compose and run this UI? |
| [A2UI](https://a2ui.org/introduction/what-is-a2ui/) | Declarative UI descriptions rendered through client components | Do we need a UI description contract across clients? |
| [AG-UI](https://docs.ag-ui.com/introduction) | Communication between an agent backend and a frontend | How do agent events, state and user input cross that boundary? |
| [MCP Apps](https://apps.extensions.modelcontextprotocol.io/api/documents/overview.html) | UI resources and interaction inside compatible MCP hosts | Should this tool bring an interface into an assistant? |

A first feature can use an existing backend and a small renderer integration. Add another protocol when it solves an actual connection requirement. Adopting all of them is not a prerequisite for learning whether a generated view helps your users.

## What should a production generative UI test actually verify?

OpenUI's own [reliability guidance](https://www.openui.com/docs/openui-lang/reliability) acknowledges unknown components, unsupported values, unresolved references and incomplete generations. A screen that appears successfully can still omit the control or information needed to complete the task.

Use these proposed acceptance scenarios for the purchase workflow. Test them against the actual component library, model configuration and application backend.

| Scenario | Expected result |
| --- | --- |
| Generation stops halfway through a form | Incomplete confirmation stays unavailable; the user can recover through a stable form. |
| The model requests an unknown component or tool | Reject the unsupported request and show a useful fallback. |
| An amount or supplier changes after review | Reject the stale version and show updated details for renewed review. |
| The user's permission changes while the page is open | Apply current server permissions at execution. |
| A double click or reconnect repeats the request | Commit one operation and recover its recorded outcome. |
| A tool result contains instructions to change policy | Keep the content as data; it cannot grant new authority. |
| New UI arrives while the user types | Preserve entered values and a predictable keyboard focus position. |
| The backend rejects an approval | Show the rejection; generated text cannot override the result. |

Include keyboard and screen-reader checks. W3C explains why [focus order must preserve meaningful operation](https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html) and why [status messages need to be available to assistive technology](https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html). Streaming makes these especially useful test cases: a new component should not steal the user's place, and a failed write should be announced clearly.

## When is generative UI worth the cost?

**Start where changing the presentation removes repeated interpretation or navigation.** Good pilot candidates include exploring an unfamiliar dataset, comparing several supplier options or investigating exceptions across records. A fixed form remains a strong baseline for a frequent, stable task that experienced users already complete quickly.

Compare three versions of one task: the current screen, an assistant with a fixed response component, and a constrained generated interface. The generated version earns adoption if it improves completed work enough to justify its additional implementation and operating costs.

We suggest measuring **time to the first usable control**: elapsed time from the request until the first task-relevant control has its required data, passes validation and can be operated. Report the median and p95. A placeholder, a title or an unfinished button does not count. This is a proposed product metric, not an industry benchmark.

Pair it with correct completion rate, user corrections, incomplete screens, retries and total cost per completed workflow. OpenUI publishes [its own generative UI benchmarks](https://www.openui.com/benchmarks), but a format-level token comparison cannot determine your whole application's economics.

`Cost per completed workflow = total model, repair, tool and hosting cost / correctly completed workflows`

Measure human review time alongside that figure. Count calls used to create and regenerate the UI, even when later clicks run without inference. For the wider accounting method, use our [AI agent cost-per-action guide](/blog/ai-agent-cost-per-action-2026/).

Our assessment is that generative UI is becoming a practical option in the agent stack. The launch and developer interest do not prove that every business app should generate every screen. The strongest implementation may be a stable product with a few adaptable views exactly where users benefit.

To scope a pilot, bring one workflow, a recording of how people complete it today and representative records. Wavect's [AI development service](/services/artificial-intelligence/) can help define the component catalog, integration and acceptance criteria. Our [TwinSoft AI delivery case study](/case-studies/twinsoft-ai/) illustrates a separate product engagement; it is not an OpenUI reference implementation.

Use the [MVP technology-stack decision guide](/software-development-guide/how-to-choose-a-tech-stack-for-mvp/) for the broader ownership decision, or [discuss one generative UI workflow with Wavect](/contact/).

## Intelligent UI and OpenUI questions

### Is OpenUI made by OpenAI?

This guide covers Thesys's thesysdev/openui project. OpenAI's Intelligent UI is a separate ChatGPT capability. Use the repository owner to distinguish Thesys OpenUI from other similarly named projects.

### Is an OpenAI Intelligent UI API available for embedding?

The launch reviewed on 8 October 2026 does not establish an embeddable Intelligent UI renderer. OpenAI separately documents MCP tools with optional UI inside ChatGPT. Confirm the intended host and integration contract before choosing an implementation.

### Does every OpenUI interaction use model tokens?

Supported runtime interactions can execute without another model call. Conversation continuation and interface regeneration can still use inference. Count both generation and repair when measuring the full workflow.

### Does OpenUI replace the application backend?

Your application still needs authoritative records, access checks and reliable operations. The generated interface should call narrow, validated tools and display their recorded results. A component schema alone cannot authorize a purchase.

### Can users return to a generated interface later?

Design persistence explicitly. Save appropriate UI state, retain compatible interface definitions when needed, and reload current authorized business data. A saved screen must not become the authority for a transaction.

### What should a generative UI pilot measure?

Compare correct completion, time to the first usable control, corrections, incomplete screens, accessibility and total cost per completed workflow against the existing interface. Keep business authorization intact in every variant.

Models and infrastructure

## Continue through this cluster

Model selection, inference economics, local deployment, compression and serving architecture.

[Start with the cornerstone**Self-Hosting LLMs in the EU: When Open Weights Actually Pay Off**](/blog/self-hosting-llms-eu-cost/)

- [OpenAI Decisions API: Confidence, Refusals and Routing](/blog/openai-decisions-api-model-routing/)
- [Claude Model Router: What Switches the Model, and When?](/blog/claude-model-router-hooks-vs-proxy/)
- [Cloudflare Clef vs Jev: Pricing, Benchmarks and Migration](/blog/cloudflare-clef-vs-jev/)
- [Context Language Models vs Compaction: What to Pilot](/blog/context-language-models-vs-compaction/)
- [Caveman 3.0 for Claude Code: Local Input Compression, Recovery and Benchmarks](/blog/caveman-3-claude-code-input-compression/)

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

12 min read · 8 Oct 2026 Last reviewed October 8, 2026

[**Next**](/blog/ai-agent-design-patterns/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/openai-intelligent-ui-vs-openui/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-08",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-10-08",
      "url": "https://wavect.io/blog/openai-intelligent-ui-vs-openui/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "OpenAI Intelligent UI brings adaptive responses to ChatGPT. Thesys OpenUI lets application teams compose interfaces from registered components. Evaluate where the workflow lives, which interactions need a model, and how state and actions remain reliable. Begin with one task and compare correct completion, time to usable controls and total cost against the existing interface.",
  "articleBody": " Blog overview/AI and agents/Models and infrastructure OpenAI Intelligent UI vs OpenUI: Generative UI for Business Apps TL;DR OpenAI Intelligent UI brings adaptive responses to ChatGPT. Thesys OpenUI lets application teams compose interfaces from registered components. Evaluate where the workflow lives, which interactions need a model, and how state and actions remain reliable. Begin with one task and compare correct completion, time to usable controls and total cost against the existing interface. OpenAI announced Intelligent UI for ChatGPT on 7 October 2026, combining text with interactive responses. Its implementation uses streamable components and a compiler. OpenAI's launch announcement Meanwhile, the Thesys OpenUI repository displayed roughly 10,000 GitHub stars when checked on 8 October. That is evidence of developer interest. A star count cannot establish how many business workflows run successfully in production. The useful question for a product team is what happens when a user wants to do something with the answer. A procurement assistant that explains an approval is helpful. One that presents the relevant request, lets the user inspect it and records the correct approval can remove an entire handoff. Sources reviewed on 8 October 2026. The workflow and evaluation criteria below are Wavect's proposed engineering approach, not a report of an OpenUI client deployment or a measured performance test. What is the difference between Intelligent UI and OpenUI? Intelligent UI is a ChatGPT capability; OpenUI is a framework you can integrate into an application. OpenAI's Intelligent UI help page describes answers whose layout and interaction adapt to the question. Thesys documents OpenUI Lang as a declarative language for composing your registered components. Your application renders the model's description. Here, generative UI means selecting and arranging the interface at runtime around the user's task. Choose according to where the workflow needs to live DecisionChatGPT Intelligent UIOpenUI in your application User's starting pointA ChatGPT conversationYour product or internal tool Interface foundationChatGPT's response experienceYour registered component library Team's immediate taskEvaluate whether the conversation solves the taskIntegrate the renderer, data and interaction paths Main evaluation questionDoes the answer help the user understand or act?Does the complete workflow improve on the existing UI? This is also a different delivery model from asking a coding agent to build a screen that developers review and ship. Runtime generation creates a new presentation while someone uses the product. That makes stable interaction, recovery and component constraints part of the product design. Can you add OpenAI Intelligent UI to your own app through an API? The reviewed launch does not announce an embeddable Intelligent UI renderer. It describes ChatGPT's product experience. A model API and a complete interactive product interface are separate integration contracts; do not plan an implementation around an SDK inferred from a feature announcement. For a developer-controlled interface inside ChatGPT, OpenAI separately documents an MCP server with an optional iframe UI, using the MCP Apps standard. See its current MCP server and UI quickstart in the Plugins documentation. Start with the distribution decision. If users already work in your customer portal, prototype the interaction there. If the intended entry point is ChatGPT, evaluate that host's integration route. A company may eventually support both, but the first useful experiment needs only one. Which OpenUI project should developers evaluate? This guide covers thesysdev/openui, maintained by Thesys. The repository lists React, Vue, Svelte and Angular runtimes, with additional ready-made React interface components. Its MIT license covers the open-source project. Managed-service charges and model inference remain separate considerations. Other similarly named projects include Weights & Biases' OpenUI, for generating and previewing UI code, and Open WebUI, a self-hosted AI interface. Use the repository owner when comparing packages, examples or deployment instructions. For an existing application, begin with a deliberately small component catalog. Register the summaries, tables, filters and confirmation views that the workflow actually needs. OpenUI's component documentation defines components through schemas and renderers. Our recommendation is to make consequential components semantically specific. An application-owned PurchaseApproval can consistently show the request, amount, currency and approval meaning. A generic button with model-generated text gives the product fewer opportunities to enforce that consistency. Component validation still needs separate business validation. Does OpenUI need an LLM call for every click? No. OpenUI can generate the interface once and run supported interactions through its runtime. Its architecture documentation",
  "articleSection": "Generative UI",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "citation": [
    {
      "@type": "WebPage",
      "name": "OpenAI's launch announcement",
      "url": "https://openai.com/index/gpt-6-for-everyone/"
    },
    {
      "@type": "WebPage",
      "name": "Thesys OpenUI repository",
      "url": "https://github.com/thesysdev/openui"
    },
    {
      "@type": "WebPage",
      "name": "Intelligent UI help page",
      "url": "https://help.openai.com/en/articles/20001598-intelligent-ui-in-chatgpt"
    },
    {
      "@type": "WebPage",
      "name": "OpenUI Lang",
      "url": "https://www.openui.com/docs/openui-lang"
    },
    {
      "@type": "WebPage",
      "name": "MCP server and UI quickstart in the Plugins documentation",
      "url": "https://developers.openai.com/plugins/build/app-quickstart"
    },
    {
      "@type": "WebPage",
      "name": "MIT license",
      "url": "https://github.com/thesysdev/openui/blob/main/LICENSE"
    },
    {
      "@type": "WebPage",
      "name": "Weights & Biases' OpenUI, for generating and previewing UI code",
      "url": "https://github.com/wandb/openui"
    },
    {
      "@type": "WebPage",
      "name": "Open WebUI, a self-hosted AI interface",
      "url": "https://github.com/open-webui/open-webui"
    },
    {
      "@type": "WebPage",
      "name": "component documentation",
      "url": "https://www.openui.com/docs/openui-lang/defining-components"
    },
    {
      "@type": "WebPage",
      "name": "architecture documentation",
      "url": "https://www.openui.com/docs/openui-lang/architecture"
    },
    {
      "@type": "WebPage",
      "name": "queries and mutations documentation",
      "url": "https://www.openui.com/docs/openui-lang/queries-mutations"
    },
    {
      "@type": "WebPage",
      "name": "OWASP's transaction-authorization guidance",
      "url": "https://cheatsheetseries.owasp.org/cheatsheets/Transaction_Authorization_Cheat_Sheet.html"
    },
    {
      "@type": "WebPage",
      "name": "interactivity guide",
      "url": "https://www.openui.com/docs/openui-lang/interactivity"
    },
    {
      "@type": "WebPage",
      "name": "A2UI",
      "url": "https://a2ui.org/introduction/what-is-a2ui/"
    },
    {
      "@type": "WebPage",
      "name": "AG-UI",
      "url": "https://docs.ag-ui.com/introduction"
    },
    {
      "@type": "WebPage",
      "name": "MCP Apps",
      "url": "https://apps.extensions.modelcontextprotocol.io/api/documents/overview.html"
    },
    {
      "@type": "WebPage",
      "name": "reliability guidance",
      "url": "https://www.openui.com/docs/openui-lang/reliability"
    },
    {
      "@type": "WebPage",
      "name": "focus order must preserve meaningful operation",
      "url": "https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html"
    },
    {
      "@type": "WebPage",
      "name": "status messages need to be available to assistive technology",
      "url": "https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html"
    },
    {
      "@type": "WebPage",
      "name": "its own generative UI benchmarks",
      "url": "https://www.openui.com/benchmarks"
    }
  ],
  "dateModified": "2026-10-08",
  "datePublished": "2026-10-08",
  "description": "OpenAI Intelligent UI brings adaptive responses to ChatGPT. Thesys OpenUI lets application teams compose interfaces from registered components. Evaluate where the workflow lives, which interactions need a model, and how state and actions remain reliable. Begin with one task and compare correct completion, time to usable controls and total cost against the existing interface.",
  "headline": "OpenAI Intelligent UI vs OpenUI: Generative UI for Business Apps",
  "image": "https://wavect.io/img/blog/headers/header_openai-intelligent-ui-vs-openui.svg",
  "inLanguage": "en",
  "keywords": "Generative UI, OpenAI Intelligent UI, OpenUI",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/blog/openai-intelligent-ui-vs-openui/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/blog/openai-intelligent-ui-vs-openui/",
  "wordCount": 2586
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog overview",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/ai-agents/",
      "name": "AI and agents",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/models-infrastructure/",
      "name": "Models and infrastructure",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/openai-intelligent-ui-vs-openui/",
      "name": "OpenAI Intelligent UI vs OpenUI: Business Apps",
      "position": 5
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "This guide covers Thesys's thesysdev/openui project. OpenAI's Intelligent UI is a separate ChatGPT capability. Use the repository owner to distinguish Thesys OpenUI from other similarly named projects."
      },
      "name": "Is OpenUI made by OpenAI?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The launch reviewed on 8 October 2026 does not establish an embeddable Intelligent UI renderer. OpenAI separately documents MCP tools with optional UI inside ChatGPT. Confirm the intended host and integration contract before choosing an implementation."
      },
      "name": "Is an OpenAI Intelligent UI API available for embedding?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Supported runtime interactions can execute without another model call. Conversation continuation and interface regeneration can still use inference. Count both generation and repair when measuring the full workflow."
      },
      "name": "Does every OpenUI interaction use model tokens?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Your application still needs authoritative records, access checks and reliable operations. The generated interface should call narrow, validated tools and display their recorded results. A component schema alone cannot authorize a purchase."
      },
      "name": "Does OpenUI replace the application backend?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Design persistence explicitly. Save appropriate UI state, retain compatible interface definitions when needed, and reload current authorized business data. A saved screen must not become the authority for a transaction."
      },
      "name": "Can users return to a generated interface later?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Compare correct completion, time to the first usable control, corrections, incomplete screens, accessibility and total cost per completed workflow against the existing interface. Keep business authorization intact in every variant."
      },
      "name": "What should a generative UI pilot measure?"
    }
  ]
}
```
