For agents

Connect Imitor to Claude Code, Cursor, Codex or any MCP client: the command, the eight tools, and the same operations as JSON commands for CI.

Generated from the README at every deploy, so this page and the repository say the same thing.

Connect your agent

Claude Code
$claude mcp add imitor -- npx imitor mcp

Run in the app’s folder.

Cursor
$npx imitor mcp

Paste as the server command in Cursor’s MCP settings, with the app’s folder as the working directory.

CCodex
$codex mcp add imitor -- npx imitor mcp

Run in the app’s folder.

Any MCP client
$npx imitor mcp

Any MCP client: the command, over stdio, from the app’s folder.

CI (GitHub Actions and others)
$npx imitor

In CI, run the whole set of flows and publish the result.

The tools

Imitor is built to be driven by coding agents. Connect it as an MCP server from the app's folder:

claude mcp add imitor -- npx imitor mcp

Any MCP client works the same way: the command is npx imitor mcp, over stdio.

ToolWhat it does
imitor_initSets Imitor up in the app (Metro wrap, imitor.config.json, ignores). Only shows the changes unless dryRun is false
imitor_describeLists the flows, devices and stand-ins configured, and whether a build exists
imitor_buildBuilds the web preview of the app as it is on disk
imitor_screenshotTakes one screenshot and returns the image. Reach the screen by route, by flow, or with inline steps; state overrides the state label for that call
imitor_run_flowRuns one flow and reports every step, its shots, and where it failed
imitor_record_videoRecords a .webm video of a flow with animations on
imitor_read_problemsFailed steps, page errors, stand-ins seen and coverage limits from the last full run
imitor_open_previewServes the build locally and returns a URL a person can open

Every result names the stand-ins visible in the shot, so an agent knows which parts are not drawn like the real app.

The same operations exist as commands that print JSON, for scripts and CI:

npx imitor describe
npx imitor screenshot --flow first-run --device pixel-9 --scheme dark
npx imitor flow --flow first-run
npx imitor record --flow first-run
npx imitor problems

Screenshots and videos from these land in preview/captures/. Each call starts from a fresh app state: empty, or the state the flow (or the config) sets up (see Start a flow from a state). A screenshot without --flow takes the top-level settings, and --state <label> (or state in the MCP tool) overrides the state label for that one call. Results say which state and seeded data a capture started from, and list seedErrors.