> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revyl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify agent changes

> Let AI coding agents run your app in Revyl sessions to verify their own changes

AI agents work in a verification loop: make a code change, start the app, and iterate on the feedback. Revyl lets agents run your app in a cloud session, in a Web browser (alpha) or on a mobile simulator or emulator, and verify their changes.

## Prerequisites

- Revyl CLI installed and authenticated. See [Authentication](/authentication) for more details.
- An AI Agent is installed (Cursor, Claude Code, Codex)

## Initialize and Install Skills

Navigate to your project and initialize Revyl using the CLI:

```bash
revyl init
```
The initialization will:

1. Either link to an existing app or create a new one
2. Configure the framework to be used for the dev loop
3. Offer optional agent skill setup. Choose your AI coding tool and the skills you want; the recommended skills are preselected, and an empty selection skips installation. See [Agent Skills](/agents/skills) for workflow choices and [MCP Setup](/agents/mcp#skill-selection-storage-and-updates) for client setup.
4. Ask if you would like to build the app and upload the build to get started. Note: a build is required to verify any changes. See [Framework Guides](/frameworks) for how to configure your build for your framework.
5. You can then finish the setup. There is no need to start a dev session because that will be driven by the AI Agent.

If you selected the dev-loop skill, your agent can now use it to run the
verification loop. If you skipped skill setup, run `revyl skill install` when
you are ready to choose skills; initialization alone does not install them.

## Add a Revyl section to your AGENTS.md or CLAUDE.md

If your repo already has an AGENTS.md or CLAUDE.md file, add a section to it directing your AI Agent to use Revyl whenever a code change occurs, so it verifies changes as part of its normal workflow. Otherwise, create a new file with that section.

Here is an example:

```markdown wrap
# Agent Guidance
## Revyl Verification

When developing or changing a feature in this repo, use the Revyl dev loop to verify the behavior on a device before finishing.

- Read and follow the local `revyl-cli-dev-loop` skill guidance before running Revyl commands.
- Verify the user-visible outcome with device evidence, such as `revyl device screenshot`, `revyl device report --json`, or explicit interaction through `revyl device instruction`.
- Summarize Revyl verification in the final response: what path was exercised, what evidence was captured, and any issues or limitations. If Revyl cannot be run, state the concrete blocker and the fallback verification used.
```

<Check>Whenever a change occurs, your AI coding agent will now use Revyl to verify the change and iterate based on the feedback.</Check>

## Add Pull Request Guidance

You can also add the Revyl session info to a Pull Request that gets opened so that you can review the recorded session, exact steps, network logs, and performance of the verification that was done. 

Here is an example section to add to the AGENTS.md or CLAUDE.md file:

````markdown wrap
## Revyl Evidence in Pull Requests

When opening or updating a PR for work where Revyl was run, include:

- A link to the Revyl session report. Generate it with `revyl session share <session-id> --json` and use the `shareable_link` it returns, so reviewers without a Revyl account can open the report. If your team does not want reports reachable outside the organization, add `--private`: the link then requires signing in to Revyl.
- Screenshots embedded inline. Publish each image with `revyl session publish <file> --session <session-id> --json` and embed the `public_url` it returns. Never point image markdown at a local file path: the file is not uploaded, so it renders as a broken image.
- An explicit width on every image. Use an HTML `<img>` tag rather than `![alt](url)`, because a markdown image renders at full resolution and one phone screenshot then fills the whole comment.

There should be a body in the PR as such:

```markdown
## Revyl Verification

<table>
<tr>
<td align="center"><img src="https://backend.revyl.ai/api/v1/reports-v3/proof-media/home.png?token=<share-token>" alt="Signed-in home screen" width="220"><br><sub><b>Start state</b></sub></td>
<td align="center"><img src="https://backend.revyl.ai/api/v1/reports-v3/proof-media/settings.png?token=<share-token>" alt="Settings screen" width="220"><br><sub><b>After navigation</b></sub></td>
</tr>
</table>

- Report session: https://app.revyl.ai/sessions/report?token=<share-token>
```

````
<Check>Whenever a Pull Request is opened by your AI coding agent, the Revyl verification will be posted for review.</Check>


## Best Practices
- Frameworks like Expo/React Native support hot reloading, so most changes don't need a rebuild. Others require a build every time, which can slow down verification — use [Remote Builds](/remote-builds) to cut that time down.
