Use text when text is the clearest interface for the moment.
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.
Resolve a typed reply through the application's installed widget registry.
Describe a validated interface from safe primitives without generating executable UI code.
I turned the rollout request into a plan you can update without leaving the thread.
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.
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.
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.
Let each turn use the interface the human job needs.
Ask
Start with the request and context already present in the chat.
Choose
Reply with text, select an installed widget, or compose a new one.
Render
Mount the validated interface as the next item in the same thread.
Act
Route interaction IDs to application-owned handlers and tools.
Revise
Continue the conversation to update, replace, or dismiss the widget.
Two rendering paths. One application-controlled runtime.
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.
The production root demonstrates a real transcript, known widget replies, working interactions, and a manual widget builder with web and native contract examples.
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.
Memory Steward is a provider-free example of a review workflow built with the system. It remains release proof, not Unichat's product identity.