Your users ask. Your app does it.
Mihe is an assistant you embed in your product. It operates the app for whoever is signed in, through your permission model, behind a confirmation they tap, and it records every attempt, including the ones it refused.
Orders
Your app- #1041Daniel ReyesComplete$126.50
- #1042Priya ShahPaid, charged twice$48.00
- #1043Lena FischerPaid$19.25
Maya is a manager. Send the request to see what the assistant does with it.
Offered to the model for Maya
- low
mark_order_complete - high
refund_order
Audit log
Every attempt lands here, including refused ones.
Why you can let it act
A tour product needs none of this, because nothing it does can lose money. An assistant that refunds orders does.
How we keep it safe- The model never decides what runs.
- What the model is offered and what policy allows come from the same function, so they cannot drift. The code that talks to the model cannot import the code that decides, so no path from its output to an effect skips the check.
- Identity comes from your backend.
- Every permission is a claim in a short-lived token your server signed for the signed-in user. Nothing the browser says about itself is believed.
- The confirmation is yours, not the model's.
- The card a user approves is worded from your registry. Text hidden in your own data, a product name or a customer note, cannot change what they think they are approving.
- High risk means a tap.
- Even in a voice conversation. A transcribed “yes, go ahead” is not enough to move money or delete data.
- Every attempt is written down.
- Each action lands in an append-only audit log with who asked, what was sent and what happened, including the ones that were stopped.
When it can’t, it shows them where
If a user may not do something, or is better off doing it themselves, the assistant navigates and points instead. Five built-in commands, free, and none of them change data. Showing stops at opening the form. Filling it in and submitting it is an action, with a permission, a risk tier and a confirmation.
navigatehighlightfocusscroll_toopen_form
Typed or spoken, one assistant
A back office that types and a counter that can’t get the same assistant, operating the same app through the same registry. A spoken request and a typed one go through one dispatch, with the same confirmations and the same audit trail. Voice is off until you turn it on.
How voice worksWhat integrating takes
Work in three places. The first is the one people skip, and it is the one that matters most.
- 1Your backendSigns a short-lived token for whoever is signed in, with their real permissions, and verifies the signature on the actions Mihe calls.
- 2Your frontendThe SDK registers your screens, components and actions, so the assistant knows what is on the page and what it may do there.
- 3The dashboardAllowed origins, risk tiers, per-action kill switches, voice and knowledge. Changed without a deploy.
Pay for what it does
Prepaid credit, pay as you go. No plans, no seats and no monthly minimum, and the price of a turn already includes the model.