One sentence.
A live web app.
Describe what you want. Horai builds it, deploys it to a public URL, and hands you the source. Run it hosted, or run the agent on your own machine with your own keys.
Your keys never leave your signer
The self-hosted runtime is two processes. The agent thinks, plans, and calls tools. The signer holds your keys and is the only place they are ever decrypted. They talk over a local socket, and the signer has no network interface at all.
The site that ships it makes zero third-party requests. What you install is what you read.
has network
never sees a key
socket
⟷
decrypts only to sign
no network, by design
From a sentence to a URL
Three things happen, in this order, every time.
Describe it
Say what you want in plain language. Horai replies with a proposal: what it will build, the palette and layout it plans to use, and one question if something is unclear.
It builds and checks
The agent writes a real multi-file app, builds it in an isolated container, and renders the result in a browser before it calls it done.
It goes live
Your app gets a public URL and a source zip you can take anywhere. Ask for changes and the same URL updates.
Real apps, real memory, your terms
Built for people who want the thing, not a demo of the thing.
▸ proposal bill splitter · slate + lime · 1 question ▸ build 5 files · vite · 3.4s ▸ verify rendered in chrome · form saves · totals update ▸ live apps.horai.sh/splitbill · source.zip
Working apps, not brochures
A bill splitter has a form that saves, totals that update as you type, and state that survives a reload. Horai tells the difference between an app and a landing page, and builds the one you asked for.
Memory that carries over
Threads keep their history, apps remember what they were built from, and the things you tell Horai about yourself follow you across projects. You can see and delete all of it.
you make the tip 12% instead of 10% - const tip = 0.10 + const tip = 0.12 ▸ 1 file changed · rebuilt · same URL
Iterate on the live thing
Ask for a change and the agent reads the running app's source, edits only what you asked for, and redeploys to the same address.
from openai import OpenAI client = OpenAI( base_url="https://api.horai.sh/v1", api_key="your key") client.chat.completions.create( model="auto", messages=[...])
One API for every model
An OpenAI-compatible endpoint with one key. Point any SDK at it. Bring your own provider keys and the bill goes to you, not through us.
Three ways to pay. No plan wall.
Pay for what the agent actually uses, or bring your own key and pay us nothing.
- No card, no email, connect a wallet
- Build and deploy from the chat
- Public URL and source zip for every app
- Add keys from the providers you already pay
- Encrypted at rest, shown only as a badge
- Every route runs on your key, nothing is debited here
- Same in the hosted app and the self-hosted runtime
- Top up with USDC on Base or Solana, or USDG on Robinhood Chain
- Debited at the provider's cost, per request
- Every line of spend visible in your dashboard
Questions people ask first
What can Horai build?
Static sites and single-page apps: landing pages, dashboards, trackers, tools, small games. Anything that runs in a browser without its own backend. Each app is a real multi-file project you can download.
Where does my app live?
On a public URL under Horai's app domain, on its own origin. You also get the source as a zip with no lock-in to Horai.
Do I need an account?
No. Connect a wallet and sign a message. That signature is your login. No email, no password.
What is the self-hosted runtime?
The same agent, running on your machine as two processes. The signer holds your keys and never gets a network interface. It talks to Horai for inference and builds using your own API key.
Which models can I use?
Any model available through the built-in router, or any provider you add a key for. Horai picks the cheapest capable route unless you pin one.
Can I change an app after it's live?
Yes. Ask in the same thread. The agent edits the running app's source and redeploys to the same URL.