Skip to content

  • Captured with consent
  • Read by your agent as intent
  • Through the Inverse API, paid per use

Deploying runs on your laptop. Paste it into your agent: it installs the Inverse skill, signs you in once, and ships this project. Free to start.

Inverse Interface

What people meant, handed to your agent.

Add the snippet to your app. It asks each person before it records, and Inverse hands your agent what they meant.

  1. Open snippet

    MIT, no account

    The recorder, consent prompt and event formats, in /v1.js and the inverse-interface package. It never records typing and asks each person first.

    • Consent prompt, per person
    • interface-event.v1 and intent.v1
    • /v1.js
  2. Inverse API

    $2.00 per package

    Inverse turns a session into intent: what people tried, where they got stuck, and the evidence. It checks quality, stores the result and delivers it to your agent, and bills only for packages that pass.

    • First five packages free
    • Delivery over MCP and webhooks
    • Keys and usage in Launch
  3. Your model, run by Inverse

    $0.50 per package

    Store your OpenAI, Anthropic or compatible key on the project. Inverse calls your model, then runs the same checks.

    • Your key, encrypted
    • Shown only as its last four
    • $0.50 instead of $2.00
index.html
<script
  src="https://www.inverse.at/v1-0.3.0.js"
  integrity="sha384-xOx29+7qQagCloCIx75FiNuQGMzkH5CKflpmvKlYYtroFwn1SBOYmuQeoA/C2Ugg"
  crossorigin="anonymous"></script>
<script>Inverse.capture({ key: "pk_live_…", task: "Find pricing" });
</script>

Paste it into any page. It asks each person before it records, and resolves null if they choose Not now. Your publishable key works only from the domains you allow.

npm install inverse-interface

Estimate your monthly bill

Estimate. Live usage draws from prepaid credit; test keys are always free.

A consented session recorded as semantic events.

Unit price
$0.10
Free each month
10
Capture cost by volume tier
TierUnitsEach
First 1010Free
Up to 1,000 paid490$0.10
Capture per month$49.00

Combined, all services

$256.00

  • Capture $49.00
  • Intent $90.00
  • Ask $50.00
  • Propose $60.00
  • Rooms $7.00

Volume tiers apply per service. Prices in USD; pass-through delivery isn't included.

Credit is drawn at the prices above, only for live usage.

Compared with building it yourself

Inverse

$139.00 / month

500 captures, 50 packages

Build it yourself

$3,010.00 / month

Build, spread over 12 months
$2,000.00
Upkeep
$1,000.00
Event storage
$5.00
Model tokens
$5.00

Building it yourself costs less above about 1,241 intent packages a month, at these assumptions.

Assumptions

Consent prompt, recorder with typing redaction, event storage, the analysis prompt, quality checks, delivery to your agent.

Example. A small team checking a flow their agent shipped: 1,000 consented sessions a month, 100 turned into intent packages. Inverse: $289.00 a month. Building it: about $3,020.00 a month in the first year, mostly the build.

Covers Capture and Intent. Rooms and Propose aren't counted. Assumptions are estimates; change them to match your team.

API playground

Runs here, with sample data. No key needed.

Ask a person for consent, record what they do as semantic events, and end the session to get an intent package.

Good for

  • See where people stall in a flow your agent just shipped
  • Collect consented sessions from beta testers
  • Record what happened when someone asks for help
index.html
<script src="https://www.inverse.at/v1.js"></script>
<script type="module">
  const capture = await Inverse.capture({ key: "pk_live_…", task: "Check out" });
  // null if they chose Not now. Later:
  const pkg = await capture?.end(); // intent.v1
</script>

What the person sees

Help improve this page?

Acme records what you click and say, never what you type. You can stop any time.

Not nowAllow

Hosting on Inverse

Deploy on Inverse, and the room comes with it.

One command from your terminal or your agent. Every link becomes a live room with a call on top, and Interface is already wired in.

What Inverse adds to your app

Before

Your app, on its own.

It works. One person at a time uses it, and you never hear how it went.

Ship

Ship it to Inverse. Now it's a room.

One command, one link. The room wraps your app; your code doesn't change.

Use together

People join and use it together.

Everyone's in the real app, with their own cursor and a call on top.

Hear

With consent, the room is heard.

What people say and react to becomes context, stamped “Speaker A”, and flows to your agent.

Propose

Your agent proposes. Someone accepts.

The change runs through your app's own code. Then the loop starts again.

1 of 3

Every link is a live room.

People join with a name and use the real app. Each has their own copy, with a call on top.

Features

  • Lead, and everyone follows you
  • Step in to talk
  • Mark up the screen together
  • Resume the same room later
  • Private, link, email or public
Sharing and rooms

2 of 3

Your app senses the room. Each person decides what it gets.

your app
import { createInterfaceKit } from "inverse-embed/interface-kit";

button.onclick = async () => {
  const kit = await createInterfaceKit({ room: true }).start();
  kit.on("transcript", (l) => show(l.by, l.text));
  kit.on("reaction", (e) => burst(e.data.emoji));
};

Asked once per signal, in context. Agents see “Speaker A”, never a name. Video and sound never leave the browser.

Features

  • Voice and reactions
  • Attention and cursor intent
  • Streams: shared JSON, attributed
  • Pause all and Take back
Interface kit docs

3 of 3

Your agent hears what happened, and proposes what's next.

your agent, over MCP
# your agent, connected from the room: ⋯ → Connect your agent
  tools: get_intent, get_transcript, get_stream, get_app_insights, propose

# what people said: ×3 on the intro, “nothing happens for ages”
propose { action: "trim", args: { clip: "Intro", to: 8 },
  reason: "The intro runs 12s before anything happens." }

Terminal output is an example.

Nothing changes until someone accepts. The edit runs through your app's own code, and the agent sees the answer.

Features

  • Insights: friction, questions, requests
  • Intent API: JSON, SSE, LangChain
  • MCP server for your agent
  • Proposals people accept or reject
Context for agents

How it compares

Frontend hosting serves pages to one person at a time. Inverse serves the room around your app, and is newer at everything else.

CapabilityFrontend hostingInverse
Deploy a web app from your terminalYesYes
Own edge network, regions, SLAYesNot yet
Custom domainsYesPro and Team
Servers, databases, secretsOftenBring your own
People use the app together on a callBuild it yourselfEvery link
Usage context your agent can readAnalytics dashboardsIntent API, MCP

Start free. Upgrade when people show up.

Rooms, the call and the interface kit run in the browser and stay free on every plan. Plans set the limits our servers enforce.

Compare plans
  • Free

    $0USD / month

    For trying Inverse and shipping side projects.

    • 3 apps
    • 5 people per room
    • 10% fee on app sales
  • Pro

    Recommended

    $20USD / month

    For developers whose apps people use every week.

    • 25 apps
    • 25 people per room
    • 5% fee on app sales
  • Team

    $60USD / month

    For teams that own apps together. 5 developers included.

    • Shared team workspace: 5 developers, then $12 each a month
    • 200 builds a day
    • 5% fee on app sales

Prices in USD per month. Payments by Stripe.

Questions

What does it cost?

Free covers 3 apps and 10 builds a day (5 until you sign in with GitHub). Pro is $20 a month and Team $60 a month, for higher limits, custom domains and longer insights. Everything that runs in the browser stays free. Selling an app costs 10% per sale on Free and 5% on paid plans, plus Stripe's processing fee. See pricing.

Where does my app actually run?

Builds and serving go through an established hosting provider's deployments API today; the rooms run on a separate realtime service. We don't run our own edge, regions or runtime yet, so we don't quote speed or uptime numbers. What Inverse adds is the room, the call and the context loop. Our own runtime is on the roadmap.

Will my app build?

Next.js, Vite, Astro, SvelteKit, Nuxt, Remix, React Router, SolidStart, Gatsby, Angular and Create React App are detected and built. Uploads are source only, up to 5,000 files and 50 MB. If your app needs a database or secrets, you configure those; Inverse doesn't provision them.

Do I have to move production?

No. Keep production where it is and ship the version you want people to use together to Inverse. It's one more command, not a migration.

Is it real co-editing?

Not by default. Everyone sees each other, follows the leader and can step in, but each person has their own copy of the app's state. Streams and cursors from the interface kit let your app share exactly what you choose.

Isn't sensing people creepy?

It's off unless your app asks, and then each person decides, one signal at a time. Agents see aliases like “Speaker A”, never names. Video and sound never leave anyone's browser. People can pause everything or take back what they shared.

No terminal needed

Drop a project. Inverse builds it and serves it.

Drag in a project folder or ZIP. Inverse leaves out dependencies and build output, builds it on its servers, hosts it, and gives you a link where every visit opens a live room.

Next.js, Astro, SvelteKit, Nuxt, Remix, React Router, SolidStart, Gatsby, Angular, Create React App and Vite. Free plan: 3 apps, 10 builds a day with GitHub sign-in.

No URL yet? Drop your project folder or ZIPNext.js, Astro, SvelteKit, Vite and more. Inverse builds and hosts it, then opens it in a live room.

Already deployed somewhere?

Paste your app's URL to open it in a room. Got an Inverse link? Join it here.

Hand your agent what people meant. Host it where they meet.