What it looks like
Ask, and a working screen shows up in your product.
It asks before it writes anything, then acts as you.
Screens in your brand
When the answer is one to look at, the agent writes a screen instead of describing one. It is a real React component running on live data from your own API, in your fonts, colors, and radii.vendo init reads those out of your app
and writes them to .vendo/theme.json.
Register your own components and the screen renders your real UI rather than the
built-in kit.
A finished screen can stay. Pin it into a slot on one of your pages and it holds
that spot, re-running on every open, so it opens on today’s numbers.

Maple's own overview page. The spending card is the one a user asked for.
What it can reach
The agent’s hands are a fixed set, and nothing outside it exists. Wherever a tool came from, it crosses the same guard on the way out.Your API
One command reads your OpenAPI, tRPC, server actions, or routes and writes
the tool set.API tools →
Their accounts
Each user connects their own Gmail, Slack, or GitHub once, and later calls
run as them.Connected accounts →
On a schedule
The same tools, fired by a cron or an event, with nobody there to watch.Automations →
It acts as the signed-in user
Every call runs inside your process, through your routes and your auth, carrying the asking user’s own identity. Vendo’s servers never call your API. Before a call lands, the guard reads its risk grade. Reads go through. Writes and deletes stop and ask, quoting the exact request rather than the tool’s name. A decision can be remembered, and raising a tool’s risk lapses the grants that came before it. Approved or blocked, every call writes an audit line.
The ask names the exact request. Every call keeps its own line, approved or not.
Where it lives in your product
One provider carries the wire and your brand. What renders inside it is your call.- The overlay — a launcher pill in the corner that opens a panel over your page, or docks beside it and lets the page reflow.
- The palette —
⌘Kopens the same conversation in its compact form, with the user’s own apps and their activity on the chip strip. - Slots — a place in one of your pages that a generated view can occupy.
- Triggers — a button anywhere in your product that hands the agent one task, composer prefilled, never sent.
- The bare thread, or the hooks, when the conversation belongs inside your own layout.
Start with one package
None of the above is the first step. The agent on its own is: install@vendoai/agents, write one call, and it answers.
Start where you are
The embedded surface is the step after that, andvendo init asks which of
these you are doing and wires that one.
Vendo's Full-Stack Agent
Vendo runs the loop and renders screens in your brand.
<VendoProvider>Quickstart →In your existing agent
Keep your loop. Vendo adds tools and renders the result.
vendoTools(vendo)Quickstart →From outside agents
Your own agent, acting as the signed-in user.
createVendo({ mcp: true })Quickstart →