Differentiation
Agent UI without React or Tailwind
Most agent UI libraries assume React, Tailwind, and a bundler. agent-ui ships the agentic vocabulary — thinking, tool calls, approvals, questions — as copy-paste HTML and CSS you own.
The gap
If your UI is a settings form, use a general component library. If your UI is “an agent is thinking, running tools, and waiting for approval,” you need primitives those libraries skip — and you may not control the stack.
Honest comparison
| Library | Strength | Where it fails this job |
|---|---|---|
| AI SDK Elements | Best-in-class agentic React vocabulary | React + Tailwind + AI SDK coupling |
| assistant-ui | Mature React chat runtime | Install-based; not copy-paste HTML ownership |
| Agno Agent UI | Ready chat app for AgentOS | Next.js template, not a portable primitive set |
| daisyUI chat | Pure CSS, framework-agnostic | Requires Tailwind; no tool/approval vocabulary |
| agent-ui | Agentic primitives in plain HTML/CSS/JS | Small MVP; you compose rich objects yourself |
What stays true
- Source visible
- Every preview has a canonical snippet. No hidden framework layer.
- Host owns execution
- Components render state. They never execute tools or imply approval.
- Native first
- Without JavaScript, semantic HTML and normal forms still make sense.
- Any stack
- htmx, Rails, Astro, Next, or a static prototype an agent just generated.
Next step
Copy the chat-with-tools starter, or let an agent follow the AI setup path and llms.txt.