← Back to home

Unichat

Build the interface inside the conversation.

Build chat UIs whose replies can stay as text, render as working widgets, or become a new safe interface composed on the fly. The conversation stays the app instead of becoming a doorway to another one.

Chat-native UI Installed widgets On-the-fly composition Server-bound actions
unichat/widget-thread validated runtime
Message Answer normally

Use text when text is the clearest interface for the moment.

Known widget Mount a working tool

Resolve a typed reply through the application's installed widget registry.

New widget Compose what is missing

Describe a validated interface from safe primitives without generating executable UI code.

Assistant

I turned the rollout request into a plan you can update without leaving the thread.

Composed widget Project rollout planner

Now · Next · Later · preview actions bound by the application

Stay in the flow

A useful reply can be a sentence, a status card, a form, a comparison, or a small workflow. People can read and act without translating a conversation into a second screen.

Known when possible

Product teams install trusted widgets for recurring jobs. A typed widget envelope lets the chat select one, supply its data, and keep its interactions inside the transcript.

Create only what is needed

When no installed widget fits, Unichat composes a constrained UI document from safe primitives. Validation and application-owned actions keep that flexibility inside an explicit boundary.

Widget thread

Let each turn use the interface the human job needs.

01

Ask

Start with the request and context already present in the chat.

02

Choose

Reply with text, select an installed widget, or compose a new one.

03

Render

Mount the validated interface as the next item in the same thread.

04

Act

Route interaction IDs to application-owned handlers and tools.

05

Revise

Continue the conversation to update, replace, or dismiss the widget.

Product boundary

Two rendering paths. One application-controlled runtime.

Conversation events carry ordinary messages or typed WidgetEnvelope replies. Installed widgets resolve through the application's registry and can render on web or native surfaces. New interfaces use a declarative UiDocument grammar made from 21 allowed primitives. Documents are validated before rendering; unsupported shapes fail closed and no generated executable code runs. Interaction IDs bind to server-owned actions, so the application keeps authority over side effects. Models are optional adapters. The durable product is the contract, validator, renderer, and action boundary.
Chat UI Studio

The production root demonstrates a real transcript, known widget replies, working interactions, and a manual widget builder with web and native contract examples.

On-the-fly composer

The runtime workbench turns conversation context into typed forms, planning tables, trackers, and other safe interactive documents. Its local composition remains useful when no live model is configured.

Built with Unichat

Memory Steward is a provider-free example of a review workflow built with the system. It remains release proof, not Unichat's product identity.