T3 Code
T3 Code's device panel can show and drive the iOS Simulator on a NoMac Mac over SSH, with no Mac of your own.
A NoMac Mac as a device host
T3 Code reaches a Mac over SSH, installs its device tools there on first use, and streams the Simulator into its Device panel. A NoMac Mac has what it checks for: Node and npm, Xcode and the iOS Simulator, and SSH with port forwarding.
- On the machine that runs T3 Code, install the NoMac CLI and sign in.
npm install -g @nomac/cli
nomac login- Start a Mac from your project's folder and name it in your SSH config.
nomac start
nomac ssh-config
ssh nomac true- In T3 Code, open Settings → Devices, choose the environments that should use it, then Add source → Machine over SSH. Enter
nomacand leave the identity file and port empty. Choose Test connection in the host's menu. - Open the Device panel in a thread. The first time, T3 Code installs its device tools on the Mac (about 10 seconds). Start the iPhone Simulator to watch and tap it.
- For your agent, turn on Agents can use devices in Settings → Devices, then start a new agent session.
Build the app on the same Mac: nomac sync . sends the project to ~/drive/src, kept between sessions, and ssh nomac or nomac exec runs xcodebuild there. See Build and test an app.
nomac stop or its time limit (2 hours by default; nomac start --max-duration 3600 sets one hour). The next nomac start from the same folder keeps the name nomac, and T3 Code reconnects. On its own, a Simulator on the Mac does not see your machine's localhost: a dev server there needs a tunnel.NoMac's MCP server in T3 threads
T3 Code keeps the MCP servers your Claude Code and Codex already use, so an agent in a T3 thread can start Macs and iOS Simulators itself. Add NoMac at user scope and sign in once outside T3 Code, since T3 does not open sign-in links in the middle of a thread:
claude mcp add -s user --transport http nomac https://mcp.nomac.app/mcp
codex mcp add nomac -- npx @nomac/cli mcpThen run /mcp in Claude Code once to sign in, or use an API key. Every way to connect is on Connect your agent.