Launch on your phone
Your agent runs one command from your project. zaplaunch gets the latest change onto your phone and opens the app.
zaplaunch run MyAppBUILT FOR REAL DEVICES
zaplaunch is a launcher your coding agent, like Codex or Claude Code, uses to open your iOS app on your phone. One command, and the latest change is in your hand.
Open source. Your Mac. Your phone.

FROM CODE TO DEVICE
Your agent runs one command. zaplaunch builds and installs when it needs to, then opens the app on your phone so you can try the change.
Your agent runs one command from your project. zaplaunch gets the latest change onto your phone and opens the app.
zaplaunch run MyAppPair once over USB and turn on Xcode’s network connection. After that, your agent launches the app with no cable while the phone stays in your hand.
With zaplaunch -c, your agent relaunches the app on your phone and reads its console output while it debugs.
Your agent passes values at launch, like --env APP_ENV=production. Your app reads them from its process environment.
zaplaunch --skill installs a Claude Code skill. Codex and other agents with shell access run the same commands from your repo’s AGENTS.md.
zaplaunch --skillBuild the changes and run MyApp on my phone using zaplaunch.
FOR A NEW CODE CHANGE
Restart the app on my iPhone and attach the console output.
FOR THE NEXT DEBUGGING PASS
Open the keyboard. Try the gesture. Check the screen you just changed. Using the current build gives you something concrete to bring back to your agent.
At Tortuga, we use zaplaunch for that handoff. Ask the agent to launch the app, pick up the phone, and tell it what needs work.
Once zaplaunch is installed and your device is paired, your agent runs these commands for you.
Your agent lists your paired devices and remembers the one to use.
zaplaunch devices
zaplaunch use "My iPhone"Tell your agent the project’s scheme and bundle ID in your repo’s agent instructions. For Claude Code, install the bundled skill.
zaplaunch --skillFrom the project directory, your agent launches the latest change on your phone. If it’s already installed, the app just opens.
zaplaunch run MyApp
zaplaunch com.example.MyAppReplace the example device name, scheme, and bundle identifier with your own.
Keep Xcode, signing, and pairing ready so your agent can get the app onto your device.
A Mac with full Xcode 15 or later selected, and an iPhone running iOS 17 or later (iPads on iPadOS 17 work too). Enable Developer Mode and configure your project’s signing and dependencies. Standalone Command Line Tools aren’t enough.
Yes. Pair the device over USB, trust the Mac, and tick “Connect via network” for the phone in Xcode. After that, your agent launches the app without a cable. Pairing is per Mac, and the device must be unlocked for installs to finish.
Yes, if it can run shell commands, like Codex or Claude Code. zaplaunch --skill writes a Claude Code skill to ~/.claude/skills/zaplaunch/SKILL.md. Codex runs the same commands; put them and your project details in your repo’s AGENTS.md.
Your agent runs zaplaunch -c com.example.MyApp with your bundle ID. It relaunches the app and streams its console output until stopped, so the agent should run it in the background and read the output.
LESS HANDOFF. MORE HANDS-ON.
Give your agent a way to launch it.
Give yourself something to try.