Agents
Two kinds of agent meet UISet. Agents that use your app read it through UI SDK’s agent bridge and work its controls directly. Agents that build your app read UISet’s skill and docs and put the right pieces together.
Agents that use your app
UI SDK’s bridge gives an agent the page as data: each control’s name, value and actions. UISet names every control and gives each kit actions that mean something: a data grid sorts, filters and edits, a scheduler adds events, the rich text editor reads and writes Markdown. Destructive steps carry a confirmation, so a person approves them.
await agent.snapshot()
// [{ ref: "c12", component: "data-grid", label: "Orders", actions: ["sort", "filter", "edit", ...] }, ...]
await agent.act({ steps: [{ ref: "Orders", action: "filter", args: ["Region", "Europe"] }] })
The benchmark
UI SDK measured agents doing a project-settings task with browser tools on another library, and with the bridge on UI SDK. We ran the same comparison on UISet’s own kits: the same tasks, done once by an agent with browser tools (a page snapshot, click, type) and once by an agent with the bridge (snapshot, act, query).
Across 3 tasks on UISet's kits, agents using the bridge made 40% fewer tool calls, read 79% less text and finished 40% sooner than agents using browser tools, and every run of both finished its task (medians of 3 runs each).
Project settings
“Rename the project to Atlas, make it public, move it to Europe, turn on the weekly digest, and save the project.”
| Median of runs | Browser tools | UISet and the bridge | Change |
|---|---|---|---|
| Tool calls | 10 | 6 | −40% |
| Text read (characters) | 3.9k | 3.0k | −24% |
| Time | 21 s | 16 s | −21% |
| Tokens, with Claude Code’s own | 68.9k | 68.4k | −1% |
| Finished the task | 3 of 3 | 3 of 3 |
Data grid
“In the Orders grid, show only the orders from Europe, sorted by amount from highest to lowest.”
| Median of runs | Browser tools | UISet and the bridge | Change |
|---|---|---|---|
| Tool calls | 6 | 6 | 0% |
| Text read (characters) | 54.3k | 9.7k | −82% |
| Time | 25 s | 15 s | −40% |
| Tokens, with Claude Code’s own | 74.1k | 72.3k | −2% |
| Finished the task | 3 of 3 | 3 of 3 |
Scheduler
“Add a 30-minute event called Roadmap sync on Wednesday this week, starting at 10:00 AM.”
| Median of runs | Browser tools | UISet and the bridge | Change |
|---|---|---|---|
| Tool calls | 11 | 3 | −73% |
| Text read (characters) | 17.5k | 3.7k | −79% |
| Time | 30 s | 13 s | −56% |
| Tokens, with Claude Code’s own | 70.5k | 68.8k | −2% |
| Finished the task | 3 of 3 | 3 of 3 |
Method: Claude Sonnet 5.5, run through Claude Code on 2026-11-15. Both approaches get the same prompt and the same page, and only the tools that approach allows; the harness checks the page afterwards, so a run counts as finished only if the page shows the result. Text read counts the characters the tools returned. Time is the agent’s whole run. Tokens include about 67,000 of Claude Code’s own instructions and tool definitions, the same for both. Claude Code shortens very long command output, so on the data grid the browser agents saw less than the full page snapshot, which favors them. The harness, the prompts and every run’s raw numbers are in the repository.
Let an agent work in your app, and stay in charge
The Agent Console is the human side of the bridge. Risky steps wait for your approval right in the app. Every change the agent makes is listed, highlighted where it happened, and can be undone without losing your own edits. It works with any model. Try a prompt below.
Agent
IdleNo changes to undo
Nothing yet. Changes the agent makes show up here, and you can undo them.
Simulated model, no API key. The bridge, approvals, history and undo are real.
pnpm dlx shadcn@latest add superzero11/uiset/agent-consoleAgents that build your app
Coding agents tend to hand-wire arrow keys and ARIA instead of using the behaviors that already exist. UISet’s skills teach them the items, the skins and the rules, and llms.txt points them at the docs.
Install the skills
One skill for UISet, and one for each kit.
npx skills add superzero11/uisetOr give it the docs
llms.txt lists every page; llms-full.txt holds them all in one file. Every docs page has its Markdown one click away.
A prompt to start from
This project uses UISet (components, kits, templates and themes for Vercel's UI SDK).
Read https://uiset.dev/llms.txt for what's available, and the docs page for each item you use.
Install items with: npx shadcn@latest add superzero11/uiset/<item>
Wrap the app in <UISet skin="base"> from @/components/ui/uiset.
Don't hand-write keyboard handling or ARIA that a UI SDK component covers, and give every control a name.