Let Codex Verify Your Mobile App on a Live Device
Codex can write a mobile feature from a prompt, but it has nothing to run it on, so it hands back code it has never seen working. Connected to VibeView, Codex checks the change itself: from its shell, or through the MCP server that one codex mcp add registers, it installs your build on a live cloud iOS simulator, Android emulator, Apple TV, Android TV or Roku, goes through the flow it changed and tells you what happened, screenshot included. One Codex default needs changing first: its sandbox blocks network access, which every VibeView command needs. You can follow any session in the browser and take over at any point.
How it works
-
1. Install the CLI and log in yourself
Do the browser login yourself, once. After that, Codex can use the CLI on its own. For unattended runs, an API token in the environment works instead.
npm install -g vibeview vibeview login -
2. Let Codex’s commands reach the network
Codex’s default workspace-write sandbox keeps network access off for the commands it runs, and every vibeview command talks to VibeView, so they fail until you turn network access on in ~/.codex/config.toml (or approve each command when Codex asks).
[sandbox_workspace_write] network_access = true -
3. Install the skill and the AGENTS.md line
The vibeview-agent skill is plain instructions: which build to upload, how to start a session, to read the tree before acting, and to stop the session at the end. The skills CLI installs it for Codex from the public mirror. vibeview agent-setup also prints a one-line instruction to add to AGENTS.md, which Codex reads, so it verifies UI changes on a device without being reminded.
npx skills add vibeview/skills -
4. Or register the MCP server
Over MCP, Codex gets the same commands as tools, named after the CLI verbs, with underscores for hyphens (ui_tree, tap, type, screenshot, logs), plus upload_app, dev_start and dev_stop so the whole loop needs no shell at all. One command adds the server; the config.toml version is below.
codex mcp add vibeview -- vibeview mcp # or in ~/.codex/config.toml [mcp_servers.vibeview] command = "vibeview" args = ["mcp"] -
5. Ask for the change and the check
Put “and verify it on the device” in the task. Codex uploads the debug build (or a Roku channel .zip), which it reuses until a native change, then starts a detached session and works from the UI tree: every tap names an element reference, not a guessed coordinate. A React Native session tunnels your local Metro bundler, so Codex sees an edit on the device about a second after saving it. On a TV, the press command drives the d-pad and the focus command walks to an element by name. When a screen needs a real login or a risky confirmation, Codex stops and asks you.
vibeview upload-app ./android/app/build/outputs/apk/debug/app-debug.apk vibeview dev --detach --json vibeview ui-tree --session <id> vibeview tap @e5 --session <id> vibeview screenshot --out ./check.png --session <id> vibeview dev-stop
Full setup instructions live in the documentation.
More integrations
App Store Connect & TestFlight
One App Store Connect API key sends your iOS and Apple TV builds to TestFlight testers.
CircleCI
Run your tagged test groups on live cloud devices from CircleCI, with results in the job.
Claude Code
Your coding agent runs the app on a live device and checks the result itself.
Add Codex to your pipeline
Start free and run your first check on a live device.