Honest AI
Copy components for prompts, agent traces, tool calls, and approvals into your project.
Honest AI is a set of interface pieces an agent or chat product needs around its model: a field for the prompt, a trace of what the agent is doing, a record of the tools it called, and a way to ask the person a question before it acts.
Each component renders the state you pass in. None of them calls a model, streams a reply, or runs a tool. Your application does that work and passes the result as props. Because of that, a component never shows progress your application did not report.
For interfaces generated by a model, open Generative UI. It adds an Honest AI Lang parser and streaming renderer, component libraries backed by Honest components, and a chat state and transport layer.
Honest AI is built on Honest UI. The Honest UI CLI copies each component into your project under components/ai, along with the Honest UI components it uses, so you can change the source directly.
Available components
Conversation
Agent activity
Decisions
Results
Styles
What your application supplies
- The model and the transport. Call your model from a route or server action and stream the result however your stack does it.
- State. Map your agent's events onto props: a status for Thinking State, an array of calls for Tool Chips, a list of questions for Approval Card, the text so far for Streaming Text.
- Words. Each component takes a
labelsprop for every string it writes, including the names read by screen readers. Replace the English defaults when you translate. - Failure handling. Tell the component when something failed. Components that show progress have an error status. Components that send a decision, such as Approval Card and Diff Table, show an error when the promise you return rejects, and keep what the person chose.
Reading the previews
The previews on these pages have no model behind them. Where a preview moves, a timer is standing in for an agent, and the text under the preview says so. Where a preview has a result, it shows the object your handler would receive.
Theming
The components use Honest UI's theme tokens, and they are built from Honest UI components: Button, Collapsible, Popover, Menu, Dialog, Table, Command, Select, and the form controls. A change to your theme or to one of those components carries through.