cimplify

Documentation

Build a complete storefront, embed checkout on any site, or wire your agent to the Universal Commerce Protocol. Whether you're shipping your first preview or running production traffic, the same SDK, CLI, and protocol get you there.

Cimplify CLI 0.2

One binary. Ten commands. Live in minutes.

A native binary handles scaffolding, dev, env vars, deploys, custom domains, and self-update. No npm install required, no runtime to ship — just the binary on your PATH.

zero to production
# install (one-time, ~5s)
curl -fsSL https://cimplify.io/install | sh

# scaffold a storefront
cimplify init my-store --template retail
cd my-store && bun dev

# ship it
cimplify login
cimplify projects create my-store
cimplify deploy --prod
cimplify domains add shop.example.com

The SDK

TypeScript-first, never throws

Every method returns Result<T, CimplifyError> and never throws. Branded Money, flat checkout shapes, variant-aware scheduling, all at compile time.

  • Full end-to-end type safety with declared response shapes
  • In-process Hono mock for instant test feedback, no prod calls
  • Server Components helpers + cache tags + revalidate primitives
  • Six storefront templates: bakery / retail / fashion / restaurant / services / grocery
store.ts
import { createCimplifyClient } from '@cimplify/sdk'

const client = createCimplifyClient({
  publicKey: 'pk_test_…',
})

// Variant-aware scheduling. Pass variant_id so the
// resolver picks up per-variant duration / buffers.
const slots = await client.scheduling.getAvailableSlots({
  service_id: 'svc_haircut',
  variant_id: 'var_haircut_premium',
  date: '2026-05-12',
})

if (!slots.ok) {
  console.error(slots.error.code, slots.error.message)
  return
}

// Flat checkout shape. Top-level fields, no envelopes.
await client.checkout.process({
  cart_id: cart.id,
  customer: { name, email, phone },
  order_type: 'delivery',
  payment_method: 'mobile_money',
})
agent-checkout.ts
// 1. Discover what a business sells.
const manifest = await fetch(
  'https://api.cimplify.io/ucp/v1/sweet-bakery'
).then(r => r.json())

// 2. Browse, price, build a cart for the principal.
const cart = await ucp.cart.create({
  business_handle: 'sweet-bakery',
  items: [{ product_id: 'prod_sourdough', quantity: 2 }],
})

// 3. Check out with a verifiable consent proof.
const order = await ucp.checkout({
  cart_id: cart.id,
  consent_proof: {
    action: 'purchase',
    scope: { max_amount: '120.00', currency: 'GHS' },
    signature: principal.sign(challenge),
  },
})

Universal Commerce Protocol

A protocol agents can speak

Every Cimplify business publishes a UCP manifest at /ucp/v1/<handle>. Agents discover capabilities, sign requests with HMAC, and check out with cryptographic consent proofs from the principal they act for. Interoperable with Google AP2, MCP, and card-network agent credentials.

  • Capability manifests so agents know what a business can do before they call
  • HMAC-signed requests with timestamp + body-hash binding
  • Consent proofs: every action carries a signed scope from the principal
  • Same-origin checkout, no humans in the loop, full auditability throughout

Autonomous businesses

Run a storefront while you sleep

Every Cimplify business ships with an operator agent that handles customer conversations across 28 domains. It calls the same SDK you do, with the same Result<T> contract — so anything you can build, it can run.

Order taking
Customer service
Inventory checks
Booking + scheduling
Refunds + cancellations
Product recommendations
Analytics summaries
Order verification
S

Sweet Bakery

Cimplify operator · replies instantly

auto
Hey, do you have the matcha cake in stock for tomorrow?
C
Yes. Three 6" matcha cakes available for next-day pickup. Should I reserve one in your name? (GH₵180)
inventory.check("prod_matcha-6", date)
Yes, with collection at 11am Friday.
C
Reserved. Confirmation CNF-7K2D. Friday 11am pickup, Atomic Junction. Anything else?
orders.reserve({ sku, pickup_at }) → CNF-7K2D
composing reply

Built for both

Humans and agents, same site

Every doc has a human-friendly HTML view and a clean Markdown twin agents can ingest in one fetch.