# 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.

1. On the machine that runs T3 Code, install the NoMac CLI and sign in.

Terminal
   ```
   npm install -g @nomac/cli
   nomac login
   ```

2. Start a Mac from your project's folder and name it in your SSH config.

Terminal
   ```
   nomac start
   nomac ssh-config
   ssh nomac true
   ```

3. In T3 Code, open **Settings → Devices**, choose the environments that should use it, then **Add source → Machine over SSH**. Enter `nomac` and leave the identity file and port empty. Choose **Test connection** in the host's menu.

4. 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.

5. 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](/content/docs/session/build/index.html).

While T3 Code holds its SSH connection the Mac counts as in use, so it does not stop when idle: it runs until `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:

Terminal
   ```
   claude mcp add -s user --transport http nomac https://mcp.nomac.app/mcp
   codex mcp add nomac -- npx @nomac/cli mcp
   ```

Then run `/mcp` in Claude Code once to sign in, or use an [API key](/content/docs/connect#api-keys/index.html). Every way to connect is on [Connect your agent](/content/docs/connect/index.html).
