Built for the engineers who get paged
Errand is infrastructure, so it behaves like it: explicit APIs, deterministic policies, full traces. Most teams publish their first agent surface the same afternoon.
quickstart
# 1. Install the CLI
npm i -g @errand/cli
# 2. Connect your stack
errand connect shopify # or: stripe, square, custom
# 3. Publish your agent surface
errand publish
# -> catalog feed https://agents.yourstore.com/catalog
# -> MCP server https://agents.yourstore.com/mcp
# -> ACP checkout https://agents.yourstore.com/acp/checkout
# -> llms.txt https://yourstore.com/llms.txt mcp tools
// What an agent sees: four tools, strict schemas
{
"tools": [
{ "name": "search_catalog", "description": "Find products and services" },
{ "name": "get_quote", "description": "Price a cart incl. tax and fees" },
{ "name": "book", "description": "Reserve an appointment slot" },
{ "name": "buy", "description": "Complete checkout with a signed mandate" }
]
} policy file
# errand.policy.yaml
checkout:
max_order_value: 500 # USD, refuse above
require_mandate: true # AP2 cart mandate on every purchase
booking:
window_days: 30
cancellation_hours: 24
platforms:
chatgpt: { rate_limit: 60/min }
gemini: { rate_limit: 60/min }
unverified: { allow: quote_only } Boring by design
REST and JSON, idempotency keys, webhooks with signatures, sandbox mode. No SDK lock-in required.
Policy as code
Everything agents may do is declared in one reviewable file. Ship it through your normal PR flow.
Traceable end to end
Every order carries the originating query, the verified mandate, and the payment reference in one trace.
Full API reference and sandbox
Complete docs, a hosted sandbox with a fake store, and reference agents to test against ship with early access.
Get early accessThe next customer walking into your store is an agent.
Be ready before your competitors are. Early access partners ship in weeks, not quarters.