Docs · Overview

NoMac Platform

Give every user of your product a cloud Mac or an iOS Simulator of their own. Your backend starts it by your user's id, shows it to them, and hears when it ends.

Two platforms

macOS Platform
A whole Mac per user: macOS with Xcode, a shell and the desktop, their own drive, and no session time limit. For agent platforms, AI coding tools and developer products.
Simulator Platform
An iOS Simulator per user, ready in seconds: their app built with Xcode beside it, the screen as text for agents and live in your page. For AI app builders and QA.

The same for both

Your user's id
label names a user's Mac or phone, keeps what is theirs (a Mac's drive, a phone's workspace and saved states) and lists them; reuse finds their running one.
Links with no sign-in
Watch or control a user's Mac or phone in your page or an iframe, one controller at a time.
A token for one session
Hand your user's agent that Mac or phone only, never your account.
Webhooks
Signed events when each is ready and ended, with the label and the cost, to bill your way.
Deleting a user
One call removes what NoMac keeps for a user; the records of time and cost stay for billing.
One SDK
@nomac/sdk and nomac for Python, the same calls, over the REST API, with one API key and one prepaid credit.

A Mac for your user

import { NoMac } from "@nomac/sdk";

const nomac = new NoMac(); // NOMAC_API_KEY
const mac = await nomac.macs.start({ label: user.id, reuse: true });
await mac.waitUntilReady();
const { stdout } = await mac.run("xcodebuild -version");

const { url } = await mac.viewLink({ control: true }); // for your user
const { token } = await mac.token();                   // for their agent

Their drive, the desktop and their agent's token: A Mac per user.

A phone for your user

import { NoMac } from "@nomac/sdk";

const nomac = new NoMac(); // 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

Their app, its screen as text and their saved states: A phone per user.

Price

A Mac costs $0.90 an hour and a phone $0.90 an hour, billed per minute from the account's prepaid credit, one minute at least. An account runs one Mac and 2 phones at once until we raise it.

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