A personal AI assistant opens an account at an online service, reads what it offers, books, orders, posts, pays, and hears back when something happens. It registers with no email and no password. Extensive usage is tolled with memory-hard compute.
I sent the assistant on my laptop to book a table for two. It was shown a CAPTCHA, blocked by the CDN, and banned by the service.
Cloudflare lets an assistant through when it is a Verified bot, one that signs its requests, obeys robots.txt and keeps reasonable request rates, or when the site owner allows it. eBay's terms forbid every buy-for-me assistant that eBay has not approved, and OpenAI's is approved. Amazon sued Perplexity over its shopping assistant. Walmart, Etsy and Shopify signed on to sell inside ChatGPT.
Hermes with DeepSeek 4.1 Flash on my laptop has none of that.
Why Kiosk
I'm a builder, so I built Kiosk for every personal assistant and every online service that wants to serve it. It is an open protocol, free to implement: nobody signs a deal or gets on a list first. A visitor brings the assistant they like, cheaper, more private or simply their own, and the service lets it in.
Nothing in Kiosk knows what the service sells. The same protocol carries a grocery order, a hotel booking, a classified ad and a to-do list shared between two housemates' assistants. A social network that people reach only through their assistants would run on it too.
Watch it order
The same Hermes, messaged from my phone over Telegram: one photo of a handwritten list and one sentence. It orders at the grocery demo and pays with the card saved there earlier. The wait is sped up; the counter shows real seconds.
How it works
Find. The service serves the standard discovery files: agents.txt, auth.md, an API catalog (RFC 9727) and /.well-known/kiosk.json, and OAuth server metadata (RFC 8414).
Register. The assistant makes a new key for that one service and registers it as an OAuth client (RFC 7591). It signs a client assertion with that key for each token (RFC 7523). Its access tokens are bound to that key (DPoP, RFC 9449). There is no email and no password, and nobody vouches for it. Another service gets a different key, so the key gives two services nothing to connect.
Pass the toll. A CAPTCHA asks whether the caller is human, and the customer sent a robot on purpose. Kiosk asks for work instead. Registration and every 10th call cost a memory-hard proof of work: 9 to 20 seconds on one Apple M3 laptop core. The service checks it in about 20 ms. Fewer proofs come with a good reputation, and the operator picks how to measure it. By default it is spend. The more the customer spent at the service in the past week, the more calls pass between two proofs, up to no proof at 100 euros. At a classifieds board the measure could be the stars on a person’s posts instead.
Call. Each query and action the service declares has its own REST path, listed in a public catalog. One skill file teaches an assistant to use every Kiosk operator.
Pay. The service signs a checkout with the exact items and price. The assistant pays it with two signed AP2 v0.2 mandates, and the service answers with two signed receipts. The human saves a card once, on the service's own Stripe page, and the skill forbids the assistant to touch that form. After that, every payment at that service needs no form and no click.
Events. Some answers arrive on somebody else's clock: the hotel confirms, the courier sets off, a housemate ticks an item off the shared list. The assistant holds one WebSocket to the service, subscribes to the topics the service declares in the catalog, and resumes from the last event id after a disconnect. The protocol runs both ways: the assistant calls, the service pushes.
For operators
Direct. Your customers' personal assistants come to you directly. You keep the customer relationship and the data.
Your queries and actions. Declare what your service offers; the reference implementation serves the protocol around it. Read the guide.
Events. Declare a topic and emit an event when something happens on your side.
Linked assistants. A human links their assistants to their account. Each assistant has its own spending cap, and the human can revoke it alone.
Anonymized checks. Gate an action on anonymized attributes such as “18+” or a licence category.
Your own Stripe. Payments go through your own Stripe account. Kiosk takes no cut.
For visitors/customers
One key per service. Your assistant makes a new key at each service, so two services have nothing to connect.
A check shares one fact. When a service needs “18+” or a licence category, a broker signs that fact for that one service. The service learns the fact and nothing behind it; the broker is the one party that could connect two services.
The card stays with Stripe. You enter it once, on the service's own Stripe page. The service sees no card number, and the skill forbids your assistant to touch that form.
Each assistant has its own cap. Where a service offers one, you set a spending cap per assistant on its page and unlink an assistant there. Your own login stays.
Nothing passes through kiosk.tech. This site is static files. Your assistant talks to each service directly.
Seven sample operators run the reference code. Copy a prompt and give it to your assistant.
Grocery deliveryOrder a week of groceries for a family of three from getgrocery.demo.kiosk.tech…⧉✓
Order a week of groceries for a family of three from getgrocery.demo.kiosk.tech…
Message your assistantOrder a week of groceries for a family of three from getgrocery.demo.kiosk.tech…➤
Grocery delivery · Stripe test-mode payments · 18+ check for alcoholOrder a week of groceries for a family of three from getgrocery.demo.kiosk.tech — milk, eggs, bread, cheese, and red wine. Delivery address: 85 South Great George's Street, Dublin 2.
Restaurant reservations · Link your assistant to your existing accountI'm in Alfama, Lisbon. Book a table for two at Tasca do Tejo on atablefor.demo.kiosk.tech tomorrow at 8.
Scooter & motorcycle rental · Anonymized KYC check: 18+ and licenceRent an electric scooter near the Jordaan on skooti.demo.kiosk.tech.
Salon bookings · Staff roles come from the salon's login providerBook a haircut at stylish.demo.kiosk.tech.
Hotel bookings · Paid in Stripe test mode, confirmed on the event streamBook me a room in Istanbul at hoteling.demo.kiosk.tech for 2 nights this weekend.
Classifieds · No payments · listings are public textOn philslist.demo.kiosk.tech, post my carbon road bike for €300 with my phone number 555-123-4567 as the contact.
Shared to-do lists · Lists shared between housemates' assistantsCreate a shared to-do list called 'Roommate errands' on tudu.demo.kiosk.tech, add 'take out the recycling', and share it with my housemate.