Automated QA reviewer for pull requests. Trigger with /qa on a PR, and the agent will read the PR context, open the preview deployment in a real browser, execute a QA plan, record a 2x-speed demo video, collect evidence, and post a structured report.
- API: Express + TypeScript
- Web: Next.js dashboard
- DB: PostgreSQL + Prisma
- AI: LangChain.js + Fireworks API
- Browser: Playwright (headless, with session video)
- Evidence: Cloudflare R2 (screenshots, trace, 2x MP4 demo)
cp .env.example .env
docker compose up -d
pnpm install
pnpm db:generate
pnpm db:migrate
pnpm dev- API: http://localhost:3001
- Dashboard: http://localhost:3002
- Create a GitHub App with webhook URL
https://<your-host>/webhooks/github - Permissions: Pull requests (RW), Issues (RW), Contents (R), Deployments (R), Metadata (R)
- Subscribe to events:
pull_request,issue_comment,deployment_status - Install the app on a test repository
- For local dev, use smee.io to forward webhooks
| Command | Behavior |
|---|---|
/qa |
Resolve preview URL from deployments/PR comments; if none, clone PR head and boot locally |
/qa url=https://preview.example.com |
Skip clone; test the given URL |
/qa retry |
Rerun the last QA plan |
Label qa-needed |
Auto-run on label |
| PR opened/sync | Auto-run (if configured in webhooks) |
When no preview URL is available, the agent:
- Shallow-clones the PR head branch at the exact commit
- Auto-detects the framework (Next.js, Vite, CRA, pnpm workspace
apps/web, static HTML) - Runs
install+start, waits for HTTP readiness - Records a headless Playwright session, transcodes to a short 2x MP4
- Uploads evidence to R2 and embeds
<video>in the PR comment
Override detection with .accelute.yml in the repo root:
install: pnpm install --frozen-lockfile
workdir: apps/web
start: npx next dev -p {port}
readyPath: /Clone-and-run executes untrusted PR code on the host running the API (pnpm install + dev server). There is no container sandbox in the MVP.
| Env var | Default | Purpose |
|---|---|---|
CLONE_AND_RUN_ENABLED |
true |
Set false to only test explicit or discovered preview URLs |
ALLOW_FORK_CLONES |
false |
Set true to allow cloning fork head repos (requires app install on fork) |
For production, run the API in an isolated environment (VM, Firecracker, or Docker) and consider disabling clone-and-run.
Inline <video> players in PR comments need a stable public URL:
wrangler r2 bucket dev-url enable qa-agent-evidence
# Set R2_PUBLIC_BASE_URL=https://pub-<hash>.r2.dev in .envDemo videos (session.mp4) are publicly readable at that URL. Other evidence uses 24-hour presigned URLs.
See .env.example for the full list.
apps/api Express API, webhooks, pipeline, browser automation
apps/web Next.js dashboard
packages/db Prisma schema and client
packages/shared Shared zod schemas and types