Setup & Authentication

1. Turn the Control API on

  1. Open SettingsControl API
  2. Turn on Control API
  3. The Status row should read Listening

The server runs on the iPad itself and listens on port 6006. It is off by default and stays off until you turn it on.

The first time you enable it, iPadOS asks for Local Network permission. Allow it — without that, nothing outside the iPad can reach the server.

2. Find the iPad’s address

Everything else in these docs is http://<ipad-address>:6006/…, so this is the step to get right.

pMix tells you. The Control API settings page shows the iPad’s LAN address and the MCP endpoint, ready to copy:

SettingsControl API

If you’d rather read it from iPadOS:

SettingsWi-Fi → tap the next to your network → IP Address

You’ll get something like 192.168.1.42. That’s your base URL:

http://192.168.1.42:6006

Bonjour name. The Control API also advertises itself on the network as _pmix-ctrl._tcp, and the iPad answers to a .local hostname derived from its device name (SettingsGeneralAboutName), with spaces and punctuation replaced by hyphens. An iPad named “Studio iPad” is reachable at studio-ipad.local:

http://studio-ipad.local:6006

This is nicer than an IP because it survives a DHCP lease change — but it depends on the client machine speaking mDNS. macOS, iOS, and most Linux desktops do. Windows is the awkward one: see Connecting from Windows.

Make the address stick. DHCP can hand your iPad a different IP after a reboot or a few days off the network. If you’re wiring the API into a control-room system or an MCP client config, set a DHCP reservation for the iPad in your router so it always gets the same address.

3. Verify

From any machine on the same network:

curl http://192.168.1.42:6006/health

Then confirm you’re talking to the right iPad:

curl http://192.168.1.42:6006/info

/info reports the device name, model, port, and the complete list of endpoints your installed version supports. On Windows, use curl.exe (shipped with Windows 10 and later) or a browser — both /health and /info are plain unauthenticated GETs.

If /health times out, work through the checklist in Connecting from Windows — most of it isn’t Windows-specific.

4. The API token

Reading state is open to your local network; changing anything requires a token. pMix.studio creates the token automatically on first launch and stores it in the iPad’s Keychain.

  • SettingsControl APIAPI TokenReveal, Copy, or Regenerate
  • Send it as a Bearer header on writes: Authorization: Bearer <token>
  • Regenerate invalidates the old token immediately if it ever leaks — the new one is in effect straight away, with no restart
curl -X POST http://192.168.1.42:6006/switcher/cut \
  -H "Authorization: Bearer <token>"

One read is also protected: /screenshot captures the full app window, which can include on-screen credentials (the token reveal row, a stream key field), so it requires the token like a write. Plain /snapshot frame grabs stay open.

5. Connect an MCP client

Wire pMix.studio into Claude Code as an MCP server:

claude mcp add --transport http pmix http://192.168.1.42:6006/mcp

Read-only tools work immediately. The first time the assistant tries a write — switching a source, changing a volume — it gets an authentication error and will ask you for the token. You can also supply it up front:

claude mcp add --transport http pmix http://192.168.1.42:6006/mcp \
  --header "Authorization: Bearer <token>"

Any MCP client that speaks Streamable HTTP can connect the same way; the endpoint is POST /mcp. For clients that only speak stdio, and for the Windows specifics, see Connecting from Windows and Pointing an AI assistant at pMix.

Security model

The API binds to your local network only — it is not reachable from the internet, and there is no cloud service in the path. Guests on your Wi-Fi can read state (switcher layout, mixer levels, source list) but cannot change anything or capture the screen without the token.

Treat the token like a stream key. If you’ve shared it with a collaborator and the show is over, regenerate it.

One extra switch sits alongside the main toggle and stays off unless you need it: Allow UI navigation lets a client drive the app’s own panel tabs. It’s meant for smoke tests and screenshot automation — leave it off during a live show.


Back to top

© 2026 pMix Studio. Built by Smash It Studios.

© 2026 pMix Studio · pmix.studio ·