VENDO_API_KEY is the model gateway, the
store, the sandbox, the connector broker, and the heartbeat that wakes your
automations.
Get a key
vendo login opens your browser at the approval page. Approve the code while
signed in to the console, and the minted key is written to .env.local.
Terminal
What the key fills
createVendo decides which implementation composes at each seam. A key fills
the seams your composition left unset.
An adapter you pass explicitly always wins. The adapters themselves never read
the environment, so nothing is decided in a hidden branch.
There is no validate endpoint and no entitlement cache.
vendo doctor checks
locally that the key is present and well formed; a bad or revoked one surfaces
on the first real service call as Invalid or revoked API key (401).Key scopes
Every key carries one of two scopes, fixed when it is minted.
Runtime is preselected in the console’s Create key dialog and Admin is a
deliberate second click. A runtime-scoped key that hits an admin door is refused
with HTTP 403 and the
blocked code, before the request body is read.
Terminal
--project is optional only when there is exactly one candidate: one
organization with one project in it.
Pricing
A plan’s price is the amount of usage it includes. Past the included dollars, usage meters at the published rates and pauses at the plan’s spend cap.
Usage meters org-wide across every project, at rates that are identical on every
plan including Free.
Free hard-stops at $5 with a clear error naming the reset date, never a charge.
Owners are emailed at 50%, 90%, and 100% of the cap.
Hosted sandbox
Building an app needs a box. The key composescloudSandbox into the unset
sandbox slot, and boxes boot from Cloud’s pooled base image — Node plus the
in-box agent. A build box is disposable: it is released the moment the build
finishes, and what survives is the sealed bundle, not the box.
To construct it by hand, for instance to raise the per-request timeout:
timeoutMs is the per-request abort budget and defaults to five minutes.
baseUrl overrides the console origin.
Cloud is the alarm clock
Automations run in your process, on your data, with the owner’s grants. Nothing about them is deployed anywhere else. What a key buys you is the one part that is genuinely painful to run yourself: something reliable to knock on the door. Once a minute, Cloud calls every enrolled deployment:VENDO_BASE_URL to the deployment’s full public URL and
there is nothing else to configure.
The body is empty and the call carries a standard-webhooks signature over that
secret, so your deployment can tell it is Cloud. Cloud holds no schedule, decides
nothing about what is due, and never writes a run: your engine answers
202 { fired: n }, and the ledger the console shows you is the one your
deployment wrote. A duplicate knock claims nothing.
Set VENDO_TICK_SECRET to override the derived secret, or to wire your own cron
without a key. A development process is the exception either way — Cloud cannot
reach a localhost wire, so a dev process runs its own ticker.
External triggers ride the Composio connectors. Connect the account once in the
console; hooks.vendo.run is the public URL the service posts to, and it
forwards the delivery verbatim to your deployment’s own webhook door and relays
your answer back.
Share and publish
With the key set, the apps runtime calls the hosted API.share returns a frozen copy with id, doc, and createdAt. publish adds
the assigned version alongside id, appId, and createdAt.
Error handling
Key format is
vnd_ followed by 40 hex characters. vendo init --cloud-key
rejects a malformed key before writing it, and doctor warns on one already in
the environment — E-CLOUD-001.
Neither makes a network call to do so.
VENDO_CONSOLE_URL is the console’s own origin. Point it at a different
console, for instance a staging environment:
--api-url <url> for a one-off override.