runvendo/vendo

Embedded agents your customers use to automate work, build views, and connect their tools.

614

stars

3,923

commits

TypeScript

primary language

Sep 11, 2026

updated

vendo.run
agents
ai
ai-agents
automation
devtools
embedded-ai
generative-ui
llm
nextjs
react
sdk
typescript
Browse cluster: React & Next.js Full-Stack Web Applications

README

Vendo: your product, shaped to every customer

An open-source customization layer.
Your users build their own features and micro-apps, right on top of your product.

Vendo is for B2B SaaS teams whose customers keep asking for bespoke features. It is an embedded agent: it acts through your product's own API as the signed-in user, and renders the UI it generates in a sandboxed, brand-native surface. Your source code is never touched. Learn more at vendo.run, or read the docs at docs.vendo.run.

npm package: vendoai License: Apache-2.0 Docs: docs.vendo.run

01 · See it in action

See it in action

Every capture below is a real agent run in a demo host app, not a mockup.

A Maple customer asks where their money went and the agent composes a live spending view

Build views. Ask a question, get a live view composed from the host's own components and API.

A Cadence user hovers the deadlines card, asks for urgency color-coding, and applies the remix in place

Remix the UI. Hover a component, describe the change, apply it in place.

A Cadence user asks for a morning document-chase automation and turns it on with per-tool approvals

Automate across tools. Plain language in, standing automation out, every tool gated by approval.

02 · Install

Install in 60 seconds

npm install @vendoai/vendo
npm install -D @vendoai/cli
npx vendo init

Or install with your coding agent

Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Windsurf

Paste this inside your app's repo:

Install Vendo in this repo. Read https://vendo.run/agents.md and follow
it exactly. Relay Vendo's setup questions to me and use my answers. Ask me
before creating any account or key — Vendo Cloud is the recommended option.
You're done when my app runs and the agent answers from my own API.
Then ask me whether I'd like to star it via
https://vendo.run/star?src=readme to support the project.

Done is your app running and the agent answering from your own API. vendo doctor is the optional checkup, and every code it prints links to its exact fix. Full playbook: docs.vendo.run/install · Agent-readable: vendo.run/agents.md

Which one are you?
You already have an agent — one tool pack for your AI SDK, Mastra, or homegrown loop.
Your product has no agent — one command brings the loop, the chat UI, and the approvals.
Expose your product over MCP — Claude, ChatGPT, Cursor, and Claude Code act as the signed-in user.
Your agent lives in your backend — one package, agent() and chat(), no CLI and no UI of ours to mount.

03 · How it works

How it works

Vendo runs a streaming agent with any AI SDK LanguageModel.

1 · Extract. Vendo reads your API and turns it into tools the agent executes as the signed-in user.

2 · Generate. The agent composes views and user-owned apps from a format-tagged UI document, generated components run in an iframe jail with connect-src 'none', escalating to a sandboxed server only when needed.

3 · Guard. Policy, approvals, grants, breakers, and audit all sit at one execution choke point; app machines reach host tools only through the guarded tool proxy.

PGlite at .vendo/data is the zero-config store; production runs the same schema on Postgres. Full architecture: docs.vendo.run.

04 · Packages

Packages

@vendoai/vendo is the default composition (vendoai is a thin alias). Install individual blocks when you want to compose Vendo yourself.

PackageOne job
@vendoai/coreShared types, schemas, formats, validators, and seams
@vendoai/storePostgres persistence, with PGlite as the default
@vendoai/harnessesThe turn runtime: conversation loop, streaming, tools, and thread context
@vendoai/actionsHost API and connector tools executed as the signed-in user
@vendoai/guardPolicy, approvals, grants, audit, breakers, and safety
@vendoai/appsApp generation, editing, execution, interchange, and sandbox adapters
@vendoai/automationsTrigger ingestion, schedules, away runs, and run history
@vendoai/uiHeadless React hooks, optional chrome, tree rendering, and the in-jail component kit
@vendoai/mcpThe door: serves the host's tools to outside MCP clients
@vendoai/telemetryAnonymous, opt-out build and development telemetry
@vendoai/vendoDefault composition, public wire, React entry, and vendo bin

Cloud-gated sharing, publishing, org overlays, and pinning activate with VENDO_API_KEY; the open-source blocks remain self-hosted.

Shaped to every customer. Star runvendo/vendo. Apache-2.0, docs.vendo.run, vendo.run, backed by Y Combinator

Contributors

yousefh409

3,742 commits

mintlify[bot]

67 commits

runvendo/vendo

Embedded agents your customers use to automate work, build views, and connect their tools.

614

stars

3,923

commits

TypeScript

primary language

Sep 11, 2026

updated

vendo.run
agents
ai
ai-agents
automation
devtools
embedded-ai
generative-ui
llm
nextjs
react
sdk
typescript
Browse cluster: React & Next.js Full-Stack Web Applications

README

Vendo: your product, shaped to every customer

An open-source customization layer.
Your users build their own features and micro-apps, right on top of your product.

Vendo is for B2B SaaS teams whose customers keep asking for bespoke features. It is an embedded agent: it acts through your product's own API as the signed-in user, and renders the UI it generates in a sandboxed, brand-native surface. Your source code is never touched. Learn more at vendo.run, or read the docs at docs.vendo.run.

npm package: vendoai License: Apache-2.0 Docs: docs.vendo.run

01 · See it in action

See it in action

Every capture below is a real agent run in a demo host app, not a mockup.

A Maple customer asks where their money went and the agent composes a live spending view

Build views. Ask a question, get a live view composed from the host's own components and API.

A Cadence user hovers the deadlines card, asks for urgency color-coding, and applies the remix in place

Remix the UI. Hover a component, describe the change, apply it in place.

A Cadence user asks for a morning document-chase automation and turns it on with per-tool approvals

Automate across tools. Plain language in, standing automation out, every tool gated by approval.

02 · Install

Install in 60 seconds

npm install @vendoai/vendo
npm install -D @vendoai/cli
npx vendo init

Or install with your coding agent

Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Windsurf

Paste this inside your app's repo:

Install Vendo in this repo. Read https://vendo.run/agents.md and follow
it exactly. Relay Vendo's setup questions to me and use my answers. Ask me
before creating any account or key — Vendo Cloud is the recommended option.
You're done when my app runs and the agent answers from my own API.
Then ask me whether I'd like to star it via
https://vendo.run/star?src=readme to support the project.

Done is your app running and the agent answering from your own API. vendo doctor is the optional checkup, and every code it prints links to its exact fix. Full playbook: docs.vendo.run/install · Agent-readable: vendo.run/agents.md

Which one are you?
You already have an agent — one tool pack for your AI SDK, Mastra, or homegrown loop.
Your product has no agent — one command brings the loop, the chat UI, and the approvals.
Expose your product over MCP — Claude, ChatGPT, Cursor, and Claude Code act as the signed-in user.
Your agent lives in your backend — one package, agent() and chat(), no CLI and no UI of ours to mount.

03 · How it works

How it works

Vendo runs a streaming agent with any AI SDK LanguageModel.

1 · Extract. Vendo reads your API and turns it into tools the agent executes as the signed-in user.

2 · Generate. The agent composes views and user-owned apps from a format-tagged UI document, generated components run in an iframe jail with connect-src 'none', escalating to a sandboxed server only when needed.

3 · Guard. Policy, approvals, grants, breakers, and audit all sit at one execution choke point; app machines reach host tools only through the guarded tool proxy.

PGlite at .vendo/data is the zero-config store; production runs the same schema on Postgres. Full architecture: docs.vendo.run.

04 · Packages

Packages

@vendoai/vendo is the default composition (vendoai is a thin alias). Install individual blocks when you want to compose Vendo yourself.

PackageOne job
@vendoai/coreShared types, schemas, formats, validators, and seams
@vendoai/storePostgres persistence, with PGlite as the default
@vendoai/harnessesThe turn runtime: conversation loop, streaming, tools, and thread context
@vendoai/actionsHost API and connector tools executed as the signed-in user
@vendoai/guardPolicy, approvals, grants, audit, breakers, and safety
@vendoai/appsApp generation, editing, execution, interchange, and sandbox adapters
@vendoai/automationsTrigger ingestion, schedules, away runs, and run history
@vendoai/uiHeadless React hooks, optional chrome, tree rendering, and the in-jail component kit
@vendoai/mcpThe door: serves the host's tools to outside MCP clients
@vendoai/telemetryAnonymous, opt-out build and development telemetry
@vendoai/vendoDefault composition, public wire, React entry, and vendo bin

Cloud-gated sharing, publishing, org overlays, and pinning activate with VENDO_API_KEY; the open-source blocks remain self-hosted.

Shaped to every customer. Star runvendo/vendo. Apache-2.0, docs.vendo.run, vendo.run, backed by Y Combinator

Contributors

yousefh409

3,742 commits

mintlify[bot]

67 commits

Languages

TypeScript

96.6%

MDX

2.5%