Docs · A phone per user

A phone per user

NoMac Platform gives every user of your product their own iOS Simulator. Your backend starts a phone for a user, shows it to them, and hears when it ends.

Start a phone for your user

import { NoMacSimulator } from "@nomac/simulator";

const nomac = new NoMacSimulator(); // NOMAC_API_KEY
const phone = await nomac.phones.start({ label: user.id, reuse: true });
await phone.waitUntilReady();
const { url } = await phone.viewLink({ control: true }); // for your user

Make the API key at nomac.app/keys and keep it on your server: it starts and stops phones for the whole account. Your user gets a link or a token for their own phone only.

A label per user

label is your own name for the phone, such as your user's id: up to 64 letters, digits and . _ : @ -. Everything a phone keeps belongs to its label.

Workspace
The user's projects and their build cache, so their next build is incremental.
Saved states
A signed-in app to start their next phone from.
Phones
reuse: true answers the user's running phone instead of starting another, and GET /sessions?label= lists theirs.

Phones with another label never reach these, and neither does a token for another user's phone. Billing records keep the label, so use your own user id, not an email.

The rest of the platform

Show it to your users
Watch and control links with no sign-in, the embed, and a token for one phone.
Webhooks and billing
Signed events when a phone is ready and when it ends, with the label and the cost.
Your users' data
Tokens that are never stored, and one call that deletes a user.
SDKs
TypeScript and Python, over the REST API.

Your users' agents use the phone with the tools in Run your app and tests and Read and tap the screen.

Price and limits

The phones are NoMac Simulator's, at the same price: $0.80 an hour per phone, billed per minute from the account's prepaid credit, one minute at least. Every account runs 2 phones at once.

For more phones at once, reserved capacity or monthly invoicing, talk to us about NoMac Enterprise.