Skip to main content
Keep your loop. Vendo adds the guarded tools and renders what they return. Both paths start with npx vendo init, which reads your repo, asks how people will use your agent, and writes the wiring. Pick the framework your loop already runs and follow that page end to end — each one is complete on its own.

Quickstart: AI SDK

Per-request packs, dynamic-tool parts, one route edit.vendoTools(vendo, { principal })

Quickstart: Mastra

A static definition, the request-context caller, one route edit.VENDO_PRINCIPAL_KEY
Either way, the render contract is the same: Embeds in your chat has the envelope a vendo_* tool returns and the components that turn it into a surface.