iOS Simulators, as an API.

Give every user of your product a live iOS Simulator. Booted in seconds, their app built beside it, the screen in your page.

For AI app builders, agent companies and QA platforms.

user-18
A weather app on a NoMac Simulator phone
user-27
A wallet app on a NoMac Simulator phone
user-42
A meal planning app on a NoMac Simulator phone
user-56
The home screen of a NoMac Simulator phone
user-73
A habit tracker on a NoMac Simulator phone
to a ready phone
~4 s
to read the screen
<1 s
to rebuild and run
~7 s
per minute
1.3¢

Medians from the US east coast. A project's first build takes longer.

The whole integration

server.tsTypeScript
import { NoMacSimulator } from "@nomac/simulator";

const nomac = new NoMacSimulator();

// A Simulator for your user, booted in seconds
const phone = await nomac.phones.start({ label: user.id, reuse: true });
await phone.waitUntilReady();

// Their app, built with Xcode beside it (the token is never stored)
const { root } = await phone.fetchGit({ url: user.repo, token: user.gitToken });
await phone.tool("app_run", { path: root });

// The live screen for your page: <NomacPhone url={url} />
const { url } = await phone.viewLink({ control: true });

Start a Simulator, build the app, show the screen.

Made for platforms

One Simulator per user

Your user's id is the label: their project, build cache and saved states come back with them, private to them.

In your page

One React component, or a link with no sign-in to watch or control. Your user and your agent share one screen.

The screen as text

Your agent reads the screen as text and taps by label. A sign-in screen is about 70 tokens, not a screenshot.

Native builds in seconds

Xcode 27.1 builds Swift and Xcode projects on the same Mac, so a change is on screen in about 7 seconds.

Secrets never stored

A git token travels with the call that uses it. One call deletes everything a user left behind.

Usage per user

Each session ends with a signed webhook: your user's id, the minutes and the cost, to bill your way.

Pricing

Pay as you go

$0.80per Simulator hour

Billed per minute from prepaid credit, the Xcode builds included. No subscription, no seats. 2 at once on every account.

Get started

Enterprise

Custom

More Simulators at once, reserved capacity, volume pricing, an uptime SLA and a direct line to the team.

Talk to us

Questions

Who is it for?+

Products whose users need iOS of their own: AI app builders that show the app as it is built, agent companies whose agents test iOS apps, and QA platforms.

How many Simulators at once?+

Every account runs 2 at once, enough to build and try it. NoMac Enterprise raises your account's limit, with reserved capacity if you need Simulators nobody else can take.

What does NoMac keep about my users?+

Per user: their workspace (project and build cache) until it is 90 days unused, saved states until you delete them, and each session's replay for 7 days. Never their secrets. One call deletes it all; the sessions' times and cost stay for billing.

Which languages?+

TypeScript and Python SDKs, and a REST API for anything else. The live screen is one React component, or one function for any page.