← all repositories
expo/exact

Expo's Exact: an app runtime built for AI agents first

Write your UI once in a small declarative language and let a coding agent build, run, screenshot, and test it across web, macOS, iOS, and Linux — with the clock under its control.

exact
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

What it does

Exact is a cross-platform application runtime from Expo. You describe your interface in Contract, a small declarative language, and write data logic in TypeScript or Rust. The Contract compiler lowers your UI into a compact plan: on the web it becomes one ES module over a ~20 KB runtime driving the real DOM; on macOS, iOS, and Linux a Rust runner executes the same plan, a Rust layout kernel computes every box with CSS rules, and each platform draws with AppKit, UIKit, or a GPU painter. No webview, no JavaScript bridge in the UI, and no app JavaScript runs before the first pixel.

The interesting bit

The design assumes agents will write most of the code. There are exactly ten agent operations (tree, screenshot, tap, type, state, layout, logs, clock, prefer, perf) that work identically on every host — deliberately capped after the predecessor’s API ballooned to eighty wire names. The agent even owns the clock: instead of sleeping through animations, it says clock +60000 or clock settle and reads the result. No timing flakes.

Key highlights

  • Performance budgets tracked on every commit; a regression is a P0 with a name on it. Targets include 100 ms p50 cold start and 100 ms edit-to-present dev restarts.
  • On the RealWorld benchmark, the web runtime was up ~300 ms before React’s SSR build had hydrated, using 26 KB of code against React’s 81 KB.
  • “Write the web, ship the platform”: layout and naming follow CSS, but unsaid presentation — controls, colors, type, gestures, accessibility — comes out native per platform.
  • The browser is the parity oracle: native layout, Canvas 2D, SVG, and gradients are checked against what Chrome draws.
  • Optional pieces (GPU rendering, Markdown editor, SQLite, a game engine) are separate artifacts loaded on demand — pay only for what you use.

Caveats

  • Pre-1.0 and changing daily: no API stability, no backwards compatibility, no migration guide — by design. This repo is itself a rebuild of an earlier attempt.
  • The full native story needs Xcode 27.1+, Rust, Bun, and Chrome; Linux currently covers the web loop and the Linux host only.
  • First macOS/iOS builds are slow — roughly 13 minutes each in the README’s agent run, though later builds take a minute or two.

Verdict

Worth watching closely if you build cross-platform apps or agent-driven tooling — the agent-native design and CSS-everywhere layout are genuinely fresh ideas. Skip it if you need a stable API to ship on tomorrow; it explicitly isn’t that yet.

Frequently asked

What is expo/exact?
Write your UI once in a small declarative language and let a coding agent build, run, screenshot, and test it across web, macOS, iOS, and Linux — with the clock under its control.
Is exact open source?
Yes — expo/exact is open source, released under the MIT license.
What language is exact written in?
expo/exact is primarily written in Rust.
How popular is exact?
expo/exact has 3k stars on GitHub.
Where can I find exact?
expo/exact is on GitHub at https://github.com/expo/exact.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.