NewiPhone Duo, live in your browser. Try it →
Vibeview
Pricing
Integration

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

Add Codex to your pipeline

Start free and run your first check on a live device.