PR Swipe turns your pull request queue into a dating app. An agent reviews every open PR before you show up: it clones the repo, reads the change in context, checks CI and runs the tests it can. You get a verdict, the red flags, and a swipe.
Live demo with sample PRs. Drag the card. Nothing touches GitHub.
A schedule keeps a fresh review for every open pull request, keyed to its head commit. Push again and it reviews again. Open the app and swipe.
Install OpenComputer's GitHub App and pick the repos. That selection is everything the agent can reach.
Every 15 minutes it finds new PRs and new commits and reviews each one in its own sandbox: diff, full files, callers, CI logs, tests. Every finding is verified before it is reported.
Right merges, left closes, the comment button posts to the PR. Every swipe waits five seconds so you can undo, and branch protection still applies.
PR Swipe is an OpenComputer template. The web app is a thin page and a small proxy; OpenComputer runs everything else.
agent.ts returns instructions per mode. OpenComputer calls the model, runs tools and loops until the review is done.
Each review gets an isolated Linux sandbox with git and gh to clone, grep and run tests.
githubApp() mints a short-lived installation token for every command. No GitHub token in your code.
Every list, review and swipe is a session with an event log and a typed result. That is the app's whole database.
defineSchedule() runs the review sweep every 15 minutes. Idempotency keys make sure each commit is reviewed once.
The sweep's API key is attached at OpenComputer's outbound edge. The agent never sees it.
Without it you would build a job queue, sandboxed runners, GitHub App token minting, a review store, cron, and model and secret handling.
Fork it, change the review instructions, add your team's conventions, or point the swipe at a different action.
opencomputer/ project.ts agents/pr-swipe/ agent.ts # list ยท review ยท act ยท sweep tools/report.ts # typed session result tools/queue-reviews.ts # sweep starts reviews schedules/sweep.ts # every 15 minutes web/ handler.mjs # proxies the sessions API server.mjs # npm run web public/ # landing + swipe app api/index.js # same handler on Vercel oc-template.toml # one-click deploy manifest
The hosted page you are on runs the demo only. Live mode merges and closes real PRs, so it runs on your deployment, with your GitHub App and your password.
OC_API_KEY as a project secret so the background sweep can start reviews.npm run web locally, or deploy web/ to Vercel with OPENCOMPUTER_API_KEY, OPENCOMPUTER_PROJECT and APP_PASSWORD.