SDKs
Thin layers over the REST API, with the same calls in each language: start a phone, run its tools, show it, and hear when it ends.
TypeScript and JavaScript
Terminal
npm install @nomac/simulatorTypeScript
import { NoMacSimulator } from "@nomac/simulator";
const nomac = new NoMacSimulator({ apiKey: process.env.NOMAC_API_KEY });No dependencies. It runs wherever fetch and Web Crypto do: Node 20 and later, Bun, Deno and workers. Its README on npm lists every call.
Python
Terminal
pip install nomacPython
from nomac import NoMac, AsyncNoMac
nomac = NoMac() # NOMAC_API_KEY from the environmentThe same calls in snake_case, sync and async (AsyncNoMac), typed, with one dependency, httpx. Python 3.10 and later. Its README on PyPI lists every call.
The phone in your page
Terminal
npm install @nomac/phoneembedPhone, and NomacPhone for React, show a phone's view link with its events. See Show it to your users.
Anything else
The REST API takes the account's key or a phone's token as Authorization: Bearer. Agents use the phone over MCP: see Connect your agent.