Lauther is the person's pocket, open to software that isn't on their phone. Your server or web app asks one request at a time — someone signs up, an order lands, a refund needs a yes — and each one is answered by the person. One HTTP call from the backend you already have, with no native app to ship.
A token from the app is all a personal project needs — Apps → + → New token. Registering a service, for the day your users should get these too, lives in the console and is a two-minute job.
Two calls cover what people reach for first. Everything else is the same shape.
# Someone signed up curl -X POST https://api.lauther.id/v1/push \ -H "Authorization: Bearer lpt_…" \ -d '{"title":"New signup","message":"anna@example.com · plan: free"}' → {"ok":true,"id":"…","delivered":1} # Ask before you refund — and wait for the tap curl -X POST https://api.lauther.id/v1/approve \ -H "Authorization: Bearer lpt_…" \ -d '{"title":"Refund €49 to anna@example.com?", "message":"Order 1042 · 3 days old", "wait":25, "requireBiometric":true}' → {"ok":true,"response":"approve"}
deny; a question nobody answered comes back without a
response at all, so your code stops. Ask for a fingerprint and
the answer records that a person gave it. The token goes in the header;
body and URL forms exist for clients that can only paste a string.Both published, both a token away from working. Node 18 and up.
npm install lauther-client // Tell someone something await lauther.push({ title: "Order shipped" }); // Or ask, and wait for the answer if (await lauther.ask("Deploy v2.4 to production?")) { await deploy(); } → true only when a person pressed Approve
Add this to Claude Code, Cursor or Windsurf and the agent puts the question on your phone before it deploys, deletes or spends — then waits for your thumb.
// .mcp.json {"mcpServers": {"lauther": { "command": "npx", "args": ["-y", "lauther-mcp"], "env": {"LAUTHER_TOKEN": "lpt_…"} }}} → APPROVED after 34s. Confirmed by biometric.
One blocking call puts a real decision in front of a real person and returns their answer to your script. Built for AI agents, deploy pipelines and anything that spends money. POST /v1/approve
Two endpoints and a QR code. Each user arrives as a per-service alias and a random ID — everything you need to recognise a returning customer. POST /v1/pair/start
Gate the expensive action behind a fingerprint. The response tells you it was confirmed biometrically, so you can log why you trusted it. POST /v1/identity/verify
Point a notification at a page on your own site. The tap lands there already signed in, ready to answer with a real keyboard. POST /v1/push {path}
Publish once, reach every subscriber, and let them stay anonymous to you. Ideal for a status page or an alert feed. POST /v1/topics/publish
Three routes home for a returning user — from the app, by the name they chose for you, or a fresh scan. Build all three and nobody gets stranded. POST /v1/session/claim
Lauther implements the Pushover message API, so anything that lets you change the server URL works the moment you point it here. Anything with a webhook field works as it is.
Sign in with a link sent to your email, and you're in — the address is for sign-in and recovery only.
Apps → + → New token gives you an lpt_… string. Revoke or regenerate it any time.
Paste the curl above, or open the Workbench and let it build the request for you.
Every integration you ship lands in an app your users chose for themselves — one inbox, their own names, their own off switch. How it works from their side →