Skip to main content
The CLI is for developers. It’s mainly for people building and experimenting on Sumvin. The recommended way to use Sumvin is the MCP connector, or the API if you’re building (docs coming).An agent running in your terminal can approve Stamped Mandates that the CLI signs for you. Never give an unattended agent --yes.
An errand is a long-running purchase task that runs under a Stamped Mandate. You ask. You sign. Then Sumvin searches, checks the merchant, watches for your conditions, and settles the purchase. sumvin errand covers the whole lifecycle: creating one, signing or declining its bounds, checking on it, and answering its questions.
Private preview: this is rolling out and may not be available on your account yet.
Coming soon: payments arrive in a fast-follow release.
errand create is available to accounts in the early-access group. The other verbs — list, get, events, clarify, cancel — work for any account that already has errands.

sumvin errand create

Submits a plain-language request, with the most it may spend and the currency.
Creating an errand authorises nothing. The errand then waits at pending_approval for your signature before it searches for anything — see sumvin errand approve below. Flags Output states
  • Created: the errand’s ID and its starting status.
  • Retried with the same idempotency key: the same errand, reported as already existing rather than duplicated.
  • Not in the early-access group: the command refuses and tells you so.
  • Missing or malformed limit: if --max or --currency is missing or isn’t in the right shape, the CLI refuses before contacting Sumvin: An errand needs the most it may spend and the currency it is in. Set it with --max <amount> and --currency <code>, e.g. --max 200 --currency GBP.
  • Limit refused by Sumvin: an unsupported currency, or an amount finer than the currency holds, is refused — the CLI shows the reason with the same hint.

sumvin errand list and sumvin errand get

list filters by status, intent type, and sort order. get shows one errand in full, and can expand its mandate or spend details inline. Errand statuses, in lifecycle order: qualifying, pending_clarification, pending_approval, approved, searching, validating, monitoring, executing, completed, failed, expired, cancelled. At pending_approval, nothing has been searched yet.

sumvin errand events

Lists the activity log for one errand — every status change and clarification, in order.

sumvin errand clarify

Answers a question the agent asked before it can continue. Questions come before you sign.
Each --answer N=<text> answers question N from sumvin errand get. Repeat the flag to answer more than one question in the same call.

sumvin errand approve and sumvin errand reject

After you create an errand, and answer any question it has, it waits for your signature before it searches for anything. approve signs the errand’s bounds: what you asked for, the most it may spend and the currency, any conditions, and when the authorisation lapses. Approving needs a local signing key — see sumvin keys — because your approval has to be provably yours, not something Sumvin’s own systems could produce on your behalf.
The CLI shows you the mandate before asking for confirmation:
You’re signing bounds, not a chosen product. Once you sign, a match found within them is bought without asking you again — there’s no second look at the pick. Read the ceiling and the conditions as carefully as the statement — they are what decides whether a match is bought.
Rejecting is terminal: the errand is cancelled and its reservation released. Nothing is signed, searched, or spent. It needs no key, because it authorises nothing. Flags (both commands) Output states
  • Approved: the errand moves on to search, checks the merchant, watches for your conditions, and settles the purchase — all within the bounds you signed.
  • Rejected: the errand is cancelled.
  • “Not awaiting approval”: only an errand in pending_approval can take a decision.
  • “Mandate has expired”: approving is refused once the deadline passes — reject it and start a new errand.

sumvin errand cancel

Stops an errand that’s still in progress.

Exit codes

Every verb uses 0 for success and 1 for failure. Cancelling an errand that’s already in a terminal status still exits 0 — the end state you wanted already holds.
Try asking your agent: “Check whether my last errand needs anything from me.”