Product

Agents that never overstep the person’s permission

For agent developers: before your agent pays, books or changes anything, it checks that the person’s permission covers it. What isn’t covered never gets attempted.

pay_bill toolExample
const payBill = agent.wrapTool({
  action: 'pay', token,
  amount: (a) => a.amount,
  payee: (a) => a.payee,
}, runPayment);
 
await payBill({ amount: 250,
  payee: 'city-electric' });
Not run: over_limit · this permission allows up to $200 a payment

One line before each action

Call guard() before acting, or wrap a tool so it runs only when the permission covers the call. Node.js and Python.

Checks what a token can’t

Whether the person cancelled the permission, how much of this month’s limit is used, and whether they asked to approve amounts this large.

Keeps working offline

If Permissionn can’t be reached, the token is checked against our published keys: the action, the amount limit and the payees.

How it works

From first request to proof

  1. Get the person’s permission

    Through the consent page, as usual.

  2. Check before acting

    guard() answers in milliseconds, and records and bills nothing.

  3. Act, or ask

    Covered: go ahead. Over the approval line: ask the person. Not covered: don’t.

  4. The business still checks

    Its own rules have the final word, so a guarded agent is simply turned away less often.

What a check covers

  • The token’s signature and expiry
  • That it was given to your agent
  • Whether the person cancelled it
  • The action
  • The amount limit, and this period’s total and count
  • Payees, merchants and other lists
  • That it is the right customer

Plans. Free on every developer plan. Guardrail checks are never billed. See pricing

See it on your own traffic

Start a 14-day trial in watch-only mode: nothing is blocked until you choose, and you see every agent from the first request.