Docs · SDKs

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/simulator
TypeScript
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 nomac
Python
from nomac import NoMac, AsyncNoMac

nomac = NoMac()  # NOMAC_API_KEY from the environment

The 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/phone

embedPhone, 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.