Documentation

Documentation

Everything you need to install RecordLoop, configure it, and understand what's happening under the hood.

Open source, MIT licensed. View source on GitHub.

Quick start

12 lines. One secret.

Drop this workflow file into your repo. That's the entire install.

.github/workflows/recordloop.yml
name: RecordLoop
on:
  pull_request:
    types: [opened, synchronize, reopened]
permissions:
  pull-requests: write
jobs:
  recordloop:
    runs-on: ubuntu-latest
    if: github.event.pull_request.head.repo.full_name == github.repository
    steps:
      - uses: vihaanshahh/recordloop@v1
        with:
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}
01

Create the workflow file

Copy the YAML above into .github/workflows/recordloop.yml in your repository.

02

Add your OpenAI API key

Go to Settings → Secrets and variables → Actions, then add a new repository secret named OPENAI_API_KEY.

03

Open a pull request

RecordLoop analyzes the diff on every PR and posts a comment with AI-generated test flows. No extra config required.

How it works

From diff to video
in three stages.

PR diff

RecordLoop fetches the changed files via the GitHub API — no local checkout of the analyzer is required.

Agent loop

An LLM agent uses tools (read_file, read_diff, list_files, submit_flows) to navigate the diff and generate flows. Bounded by MAX_ITERATIONS=10, MAX_FILES_READ=30, MAX_TOTAL_INPUT_TOKENS=50,000.

Playwright replay

If a preview-url is configured, the action records each flow as an MP4 and includes the link directly in the PR comment.

Configuration

Action inputs

Every knob exposed by the RecordLoop GitHub Action. All are optional except one of the provider keys.

InputRequired?DefaultDescription
openai-api-keyconditionalOpenAI API key. Used by the analyzer agent loop to read the PR diff and generate flows. Required when provider=openai.
azure-openai-api-keyconditionalAzure OpenAI API key. Required when provider=azure.
azure-openai-endpointconditionalAzure OpenAI resource endpoint, e.g. https://my-resource.openai.azure.com.
azure-openai-deploymentconditionalAzure OpenAI deployment name (used as the model identifier).
providernoopenai"openai" (default) or "azure".
modelnogpt-5.4Model name. Defaults to gpt-5.4. Override to gpt-4o-mini for the cheapest setup.
preview-urlnoPR preview deployment URL. If empty, the action posts planned flows but skips video recording.
github-tokenno${{ github.token }}GitHub token with pull-requests:write. Defaults to the workflow GITHUB_TOKEN.
python-versionno3.12Python version to install on the runner.

Frameworks

Works with anything
that ships markup.

The universal file filter detects changed UI across 25+ frameworks.

ReactVueNext.jsNuxtAngularSvelteSvelteKitAstroSolidQwikRemixBlazorRazorASP.NET MVCPhoenix LiveViewRails ERBDjangoJinjaTwigHandlebarsLiquidPugNunjucksPHPHTMXPlain HTML

Cost

Pay only your
OpenAI bill.

RecordLoop has no billing. You bring your own API key and pay OpenAI directly.

  • Typical PR: $0.001–$0.005 with gpt-5.4 (default)
  • Worst case: ~$0.10 even on reasoning models (bounded by the agent caps)
  • 1,000 PRs/month: ~$2–$6
  • GitHub Actions runtime: free for public repos
  • No subscription, no SaaS markup, no quotas — you bring your own OpenAI key

Dry run

CI smoke tests
without a secret.

RECORDLOOP_DRY_RUN=1

Runs the full pipeline without making an LLM call and returns a synthetic flow. Useful for wiring the action into CI as a smoke test with no secrets configured — great for forks and public preview branches.