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

# Proof of Changes via Cursor Automation

> Get device-backed proof on every PR from your existing CI, without installing the Revyl GitHub App

The easiest way to get [Proof of Changes](/develop/proof-of-changes) running is the [GitHub App](/integrations/github). This guide covers the alternative: setting up Proof of Changes with a Cursor Automation when you can't install the GitHub App, or you use a different SCM provider.

## Who this is for

This guide is for teams that:

* Already build every PR in their own CI (GitHub Actions or equivalent)
* Already use Cursor Automations
* Want a device-backed proof comment on the PR
* Haven't connected the Revyl GitHub App yet

## What happens on each PR

```text theme={null}
CI builds the app
  → Uploads the build to Revyl: revyl build upload
  → Cursor Automation starts
  → Matches Revyl build for the PR head SHA
  → Starts the Revyl session: revyl device start
  → Captures screenshots + validations
  → Saves the session URL
  → Comments on the PR with the collected information
```

If no matching build exists, the Automation comments that proof was not run and stops — it never rebuilds and never claims proof without a device session.

## Getting started

### 1. Install Revyl in Cursor

Install the [Revyl plugin](/integrations/cursor/plugin) and authenticate.

### 2. Add an upload step to CI

After your existing build produces a simulator `.app` or installable `.apk`,
upload it:

```bash theme={null}
revyl build upload \
  --file path/to/app.apk \
  --app "<your-app-id>" \
  --platform android \
  --version "$GITHUB_SHA" \
  --yes \
  --json
```

See the ready-made [`upload-for-cursor-proof.yml`](https://github.com/RevylAI/revyl-cli/blob/main/examples/ci-github-actions/upload-for-cursor-proof.yml) workflow in the public CLI examples. It stores `REVYL_API_KEY` as a CI secret and the app id as a variable; GitHub Actions metadata (`scm_head_sha`, PR number, and related fields) is stamped automatically so the Automation can match the build to the commit.

### 3. Enable the Cursor Automation

Create an Automation at [cursor.com/automations](https://cursor.com/automations):

1. Paste the prompt from
   [`PROMPT.md`](https://github.com/RevylAI/revyl-cli/blob/main/examples/cursor-automation/prove-mobile-pr/PROMPT.md).
2. Enable **Comment on pull request** and **shell**. Do not enable Revyl MCP.
3. Trigger **CI completed** / **Workflow run completed** on the upload job. Do
   not use Pull request pushed as the default.
4. Add secret `REVYL_API_KEY` and variable `REVYL_APP_ID`.

Full trigger and identity notes:
[`AUTOMATION_SPEC.md`](https://github.com/RevylAI/revyl-cli/blob/main/examples/cursor-automation/prove-mobile-pr/AUTOMATION_SPEC.md).
