Turn the World into a function
Schema is the API for everything on the web. Say what you need in plain English, and Schema turns it into function calls, runs them, and hands back the answer — fast enough to book a flight before you’d finish typing the request yourself.
Summon it from anywhere with ⌥Space
The web has one interface, and it was built for people. We’re building the second one.
Read the visionIf you can ask for it, Schema can go get it
Flights, carts, reservations, bills, fine print. You describe the outcome, Schema turns it into function calls, and the typed results come back as clean Markdown: tables, checklists, quotes, whatever fits.
“Find a nonstop to Lisbon under $700 the second week of May”
- →flights.search(to: "LIS", max_price: 700, nonstop: true)
- →flights.hold(id: "TP202", seat: "23A")
3 nonstops under $700
| Flight | Route | Departs | Price |
|---|---|---|---|
| TAP 202 | EWR → LIS | Sun, May 11 · 7:50p | $642 |
| United 64 | EWR → LIS | Mon, May 12 · 5:35p | $671 |
| TAP 204 | JFK → LIS | Tue, May 13 · 9:10p | $688 |
Seat 23A held on TAP 202. Press ⌘↵ to book it.
“Get me the earliest DMV slot for a license renewal”
- →dmv.appointments(type: "renewal", sort: "earliest")
- →dmv.hold(slot: "2026-10-06T09:20")
Tue, Oct 6 at 9:20am · Fell St
- Appointment held
- Confirmation
DMV-7Q2K - Bring your current license
- $38 renewal fee
“What’s the return window on this jacket, and is shipping free?”
- →store.policy(topic: "returns")
30 days
Returns ship free, with one catch:
“Items must be unworn with original tags attached.”
“Compare what the filters cost for these three air purifiers”
- →products.compare(ids: [3], fields: ["price", "filter_cost"])
The cheapest to buy isn’t the cheapest to own
| Purifier | Price | Filters / yr | 3-yr total |
|---|---|---|---|
| Coway 200M | $34 | $251 | |
| Levoit 400S | $219 | $58 | $393 |
| Blueair 211i | $319 | $71 | $532 |
“Book a table for four somewhere quiet near Union Square at 7:30”
- →reservations.search(near: "Union Square", party: 4, at: "19:30")
- →reservations.book(venue: "Cotogna", slot: "19:30")
Booked · Cotogna
- 1Checked 6 spots within a 10-min walk
- 2Ruled out 4 with “loud” in reviews
- 3Reserved 7:30pm, party of 4
Confirmation OT-55190
“Log into PG&E and pay this month’s bill”
- →pge.sign_in(credentials: vault("PG&E"))
- →pge.pay(amount: 112.40, from: "checking")
$112.40
Paid from checking ••4417
- Due Oct 14, paid Sep 23
- Receipt sent to your inbox
“Check our registrar for any domains expiring this quarter”
- →registrar.domains(expiring_before: "2026-12-31")
2 of 8 expire before Dec 31
schema.dev· Nov 14 · auto-renew offgetschema.co· Dec 2 · auto-renew off
The other 6 renew automatically.
Fast because there’s nothing to click
Schema doesn’t wait for pages to load or hunt for buttons. It calls functions, gets typed responses, and moves on.
Every site, as functions
Schema maps a website into callable functions with typed arguments. Search, filter, book, pay: each one is a call, not a sequence of clicks.
Calls, not clicks
No waiting for pages to render or buttons to appear. A call goes out, a typed response comes back, and Schema moves on.
Errors it can actually handle
A failed call returns a real error, not a frozen spinner. Schema fixes the arguments, tries again, and keeps going until the goal is met.
Speak it instead
Real-time macOS dictation is built into the bar. Say the task, get the answer.
Answers, not logs
Typed responses come back into the same bar as clean Markdown: the flight, the price, the confirmation.
Runs on your Mac
Schema is a standalone app, not a browser extension. Your Vault stays encrypted on your machine.
Four keystrokes between you and done
Schema lives one shortcut away. It’s built for the tiny errands you’d otherwise open six tabs for.
Summon it anywhere
The bar opens on top of whatever you’re doing. No tab to find, no app to switch to.
Type it or say it
Plain English works. So does talking — dictation is built in and transcribes as you speak.
Schema makes the calls
Your request becomes a handful of function calls. You watch them go by in the bar: no windows, no tabs, no cursor.
Confirm what matters
Anything that spends money or can’t be undone waits for your go-ahead. Everything else just happens.
Logs in for you. Never sees your password.
Connect passwords, 2FA codes, emails, usernames, or any other secret to your Vault. Schema can pass them into any call that needs them, but the model itself never gets to read them.
- Encrypted on your Mac
- Secrets are encrypted and stored on device, and only unlocked when a task needs one.
- Invisible to the model
- Schema asks for a secret by name. The Vault passes it straight into the function call, so the value never enters the model’s context.
- Fetched only on demand
- Nothing is loaded up front. A secret is retrieved at the moment the model calls for it, and not before.
- 2FA included
- Store one-time codes alongside passwords, so logins with two-factor don’t stall halfway through.
- PG&EPassword••••••••••••
- PG&E2FA code••• •••
- Work emailEmailk••••@schema.dev
- RegistrarUsernameschema-ops
- Frequent flyer #Secret••••••7731
vault("PG&E")••••••••••••Built to feel instant, not clever
Speed isn’t a setting Schema turns on. It’s the default, and everything else is the exception.
- 01
Maps before it acts
Schema turns a site into typed functions first, so it knows exactly what’s possible before it does anything. No fixed scripts to break when a site changes.
- 02
Calls the instant it’s sure
Routine calls go out immediately. There’s no waiting around for a slow model to confirm the obvious.
- 03
Thinks only when it has to
Real judgment calls — which fare, which result, which arguments — get the deeper reasoning they deserve, and nothing else does.
- 04
Keeps going until it’s done
A failed call comes back as a typed error. Schema adjusts and retries, and only stops once the goal is verifiably met.
Most agents spend their time clicking. Schema just calls.
Browser agents are slow because they act like people: wait for the page, look, click, repeat. Schema skips the performance. It calls functions directly and saves the deeper thinking for the few moments that need it.
Illustrative benchmark on a fixed Google Flights route. Your mileage will vary with the site.
- 4.8s
- Flight booked end-to-end on Google Flights
- 0
- Clicks, scrolls, or page loads
- ~90%
- Of calls made without a slow model in the loop
- 24/7
- Same speed, no warm-up, no rate-limit wall
Machines shouldn’t have to pretend to be people
Every AI agent today does the same odd thing: it looks at a page designed for human eyes, finds a button sized for a human finger, and clicks it. That’s the wrong abstraction. Machines talking to machines should work fundamentally differently than people talking to machines, so Schema skips the screen entirely.
Humans click. Machines call.
Humans read pages. Machines read types.
Humans wait for things to load. Machines get a response.
- Now
The API for everything
The Schema app turns today’s websites into functions it can call, so your requests become calls and typed answers instead of clicks.
- Next
Sites that speak machine natively
Schema for sites lets businesses publish their own typed functions and decide exactly what every agent can call.
- Eventually
Everything is callable
Every booking, purchase, form, and lookup on the internet becomes a function with a signature. The world, turned into an API.
Your website, as an API for every agent
This is the vision, shipped for businesses. Schema turns your site into a machine-friendly representation: agents stop clicking through pages built for a mouse and start calling functions, getting typed responses back in milliseconds.
search_flights({ from: "SFO", to: "JFK", date: "2026-10-02", nonstop: true })[ { "id": "AC916", "departs": "07:05", "arrives": "15:37", "price": { "amount": 187, "currency": "USD" }, "seats_left": 4 }, { "id": "AC1428", "departs": "09:40", "arrives": "18:15", "price": { "amount": 204, "currency": "USD" }, "seats_left": 11 } ]
- 01
Put Schema in front of your site
Like a CDN. No rebuild, no new backend. Your pages for people stay exactly as they are.
- 02
Choose what’s callable
Schema maps your site into functions with typed arguments. You decide which ones agents can see, and nothing else becomes reachable.
- 03
Agents call, Schema performs
An agent sends arguments, the action is carried out for it, and a typed, validated response comes back. No scraping, no guessing.
- 04
One integration, every agent
Whichever model or assistant shows up, it gets the same fast, structured way in. You don’t build one integration per AI provider.
Stop clicking. Start calling.
Schema is in private beta for macOS. Join the waitlist and we’ll email you a download link as spots open up.
Apple silicon · macOS 14 or later · Free during beta
- 1
Join the waitlist
Takes under a minute.
- 2
Get your download link
We email it as spots open up.
- 3
Sign in with the same email
Use the address you joined the waitlist with.