CLI
The veto CLI — login, scaffold a merchant, manage policy, and drive any protocol-speaking merchant (discover, catalog, quote, pay, status, receipt verify). Zero dependencies, runs on Node ≥ 22.6.
@veto-protocol/cli ports the magic-link / device-code login and adds buyer + merchant
verbs that drive any protocol-speaking merchant over plain fetch. Zero runtime
dependencies; runs under node --experimental-strip-types.
npx @veto-protocol/cli --helpAuth
veto login [--email <e>] [--force] # magic-link device-code sign-in → ~/.veto/config.json
veto logout # delete saved credentials
veto whoami [--json] # print the signed-in identity (masked)Merchant setup
veto init [dir] [--force] # scaffold a runnable merchant (server.ts + .env)
veto keys [--json] # mint a receipt-signing seed + publish-ready JWKS
veto policy show [--json] # show the active MerchantPolicy (hosted)
veto policy set <field> <value> # change one policy field (creates a new version)Buyer flow (drives any merchant by URL)
veto discover <url> [--json] # GET the discovery manifest
veto catalog <url> [--json] # list products
veto quote <url> --sku <s> --qty <n> [--intent ..] \
[--mandate <jws|@file>] [--rail mock] # create a session
veto pay <url> --session <id> --payment '<json>'|@file | --mock
veto status <url> --session <id> # poll session state
veto receipt verify <jws> [--jwks <url|@file>] # offline receipt verificationMCP install
veto mcp install [--client claude|cursor|continue] # write the MCP server config block
veto mcp print [--json] # print the config without writingEvery command surfaces errors in the protocol shape { reason_codes, error_human }, so a
failure is always reason-coded — the same vocabulary the API
uses.
HTTP adapters
Mount a checkout handle on node:http, Express, Hono, or Next.js — one line each — or call the handle directly with no HTTP at all.
MCP server
The agent's install — @veto-protocol/mcp adds the buyer-side checkout flow as MCP tools so an agent in Claude, Cursor, or Continue can transact against any protocol-speaking merchant.