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

Let Cursor Check Your Mobile App on a Live Device

Cursor’s agent can build the screen, but it can’t see the simulator on your desk, so “done” often means “it compiles”. Give it a VibeView device and it checks for itself. In agent mode Cursor runs the vibeview CLI in its own terminal, and a .cursor/mcp.json committed to the repository gives every teammate’s Cursor the same tools. The agent opens your app on a live iOS simulator, Android emulator, Apple TV, Android TV or Roku in the cloud, works through the screen you asked about, and reports back with a screenshot. The session has a page you can open in the browser to follow along or take the controls.

How it works

  1. 1. Install the CLI and log in yourself

    Do the browser login yourself. It’s the one step the agent shouldn’t do. Each teammate signs in with their own account, so no token is ever written into the project.

    npm install -g vibeview
    vibeview login
  2. 2. Install the skill

    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 Cursor from the public mirror. vibeview agent-setup prints the same install command and a one-line instruction to add to your project’s AGENTS.md, so the agent verifies UI changes on a device without being reminded.

    npx skills add vibeview/skills
  3. 3. Add the MCP server to the project

    Put the server in .cursor/mcp.json in your repository (or the global one in ~/.cursor/) and Cursor lists the VibeView tools, named after the CLI verbs, with underscores for hyphens: ui_tree, tap, type, screenshot, logs, plus upload_app, dev_start and dev_stop for the whole loop without a shell. The project file has no secret in it, so you can commit it and every teammate gets the tools; each teammate still signs in with their own vibeview login. If Cursor can’t find the binary, put the full path in "command" (run which vibeview to get it).

    {
      "mcpServers": {
        "vibeview": {
          "command": "vibeview",
          "args": ["mcp"]
        }
      }
    }
  4. 4. Ask for the change and the check

    Say “implement X and verify it on the device”. The agent uploads a debug build (or a Roku channel .zip) once, starts a session and acts by UI-tree reference, never by guessed coordinates. For a React Native app the session tunnels your Metro bundler, so a file the agent saves shows up on the device about a second later. TV apps move by focus: the press command drives the d-pad, and the focus command walks to an element by name.

    vibeview dev --detach --json
    vibeview ui-tree --session <id>
    vibeview tap @e5 --session <id>
    vibeview screenshot --out ./check.png --session <id>
    vibeview logs --session <id>
    vibeview dev-stop
  5. 5. What to expect

    Asked only to “implement X”, an agent won’t always check on a device unprompted; the AGENTS.md line and the words “verify it on the device” are what make it reliable. The agent stops to ask you when a screen needs a real login or a risky confirmation. A simulator or emulator cannot stand in for camera, push delivery or physical-device performance, so keep a hardware pass before release.

Full setup instructions live in the documentation.

Add Cursor to your pipeline

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