Skip to main content
This page is the one canonical install path. It works read top-to-bottom for a human and fetched as Markdown for an agent — append .md to this page’s URL (https://docs.vendo.run/install.md) for the raw version.

Point an agent at it

Paste this into your coding agent inside the app you want to install Vendo in:
Agents get first-class surfaces along the way. npx vendo init --agent prints a read-only JSON plan: framework, code diffs, the four questions, extracted tools, and risk recommendations. npx vendo sync --json prints one machine-readable report object. Init also offers to write a vendo-setup skill into .claude/skills/ when your repo uses skills.

Stage 1 — base install

Goal: a working, on-brand agent turn in your product, proven by vendo doctor exit 0.
1

Install the package

vendoai is a thin alias of @vendoai/vendo — either name installs the same composition and the same vendo bin.
2

Run init

Init detects your framework from package.json (next wins over express; anything else is treated as Next), interviews you — model import, product brief, critical-tool risk labels, MCP door — and proposes every code change as a diff you approve one by one. It writes the committed .vendo/ contract: tools.json (extracted from your OpenAPI spec and routes), overrides.json, policy.json, brief.md, theme.json (your brand, extracted from your CSS), and a gitignored .vendo/data/ for the zero-config PGlite store.Unattended (CI or agent-driven):
3

Give it a model

Vendo runs on any AI SDK LanguageModel. If init scaffolded the starter model module, install its pinned peers and set a key:
If your app already exports a model, point init at it with --model-import instead.
4

Finish Express wiring (Express only)

Next.js apps are fully wired by init. Express apps get vendo/server.ts plus two manual lines: mount app.use("/api/vendo", mountVendo()) and wrap the client entry in <VendoRoot>. See the Node quickstart.
5

Verify

Start your dev server, then:
Doctor checks the wiring and .vendo/ files, then makes one live /status round-trip (default http://localhost:3000/api/vendo; override with --url or VENDO_URL). Exit 0 is green; exit 1 lists each broken: line. Fix and re-run until it exits 0 — that is the definition of installed.

Stage 2 — review and remix

Goal: extraction stays fresh and correct as your API and brand evolve.
  • Init adds predev/prebuild hooks so vendo sync runs with your app. Run it manually after API changes; in CI use npx vendo sync --strict — exit 2 on breaking tool changes, exit 3 when saved apps, automations, or grants would break. --json emits the full report for scripts.
  • Review .vendo/tools.json and correct risk labels in .vendo/overrides.json — overrides are yours forever; tools.json is regenerated and never hand-edited. Mark irreversible actions {"critical": true} so policy asks before running them.
  • Tune .vendo/policy.json (default: destructive asks, reads run) and write a real .vendo/brief.md — it is the agent’s product knowledge.
  • theme.json was extracted from your CSS so generated UI ships on-brand; re-run vendo sync after brand changes. See Theming and Host components for remix baselines.

Stage 3 — block unlocks

Goal: turn on the rest of the platform deliberately, one block at a time. vendo doctor ends with a ladder line naming exactly what each remaining block unlocks for your install.

Agent surfaces reference

See the CLI reference for every flag and exit code.