The E2E testing platform your pipeline was missing.
Generation, execution, self-healing, and reporting, all inside the pull request. What lands is plain Playwright in your repo. Keep your CI green without writing the suite yourself.
Platform
How teams run GreenCI
MODE 01
Bootstrap
Describe your journeys in plain English. One workflow run returns a starter suite as a PR.
MODE 02
PR guard
Every pull request gets new and updated specs. Coverage grows as the app does.
MODE 03
Migration
Point it at a Cypress suite and get Playwright back, with TODOs where a human should look.
The problem
Sound familiar?
Real customers, real traffic, zero E2E tests. Every deploy is a small act of faith.
The tests you do have fail randomly. Everyone hits re-run and stops trusting red.
Writing Playwright specs is the chore that loses to the roadmap. Every sprint.
Bootstrap mode
Day one: describe your app. Get a test suite back.
No tests yet? You don't need any. Write down your critical flows the way you'd explain them to a new hire. GreenCI reads your real pages, writes a spec per journey, runs them, and opens a PR with the ones that pass.
- uses: samarrahTech/greenci-action@v1
with:
api-key: ${{ secrets.GREENCI_API_KEY }}
mode: bootstrap
journeys: |
Sign in with email and password at /login
Search for a product and open a listing
Add to cart and reach the checkout stepRun it once from the Actions tab. When it finishes, there's a PR with your starter suite.
For AI builders
Built your app with AI? You already know how to use this.
If Cursor, Claude Code, Lovable, Bolt, or v0 built your app, you shipped fast and nobody wrote tests. That's the workflow, not a character flaw. GreenCI closes the loop the same way you opened it: in plain English.
Your AI ships features
Cursor and friends write app code faster than anyone writes tests for it.
GreenCI checks it works
Every PR gets tested against what you said the app should do, including the PRs your agent opens.
You stay in English
Journeys in, green checks out. The test code is there in your repo whenever you want to look.
On every pull request
Every PR after: it maintains itself
STEP 01
You open a PR
GreenCI reads the diff and figures out what actually changed for users.
STEP 02
It writes the tests
New Playwright specs for new flows, updates for changed ones.
STEP 03
Green tests land in your branch
It runs them first. Only passing tests get committed, and the PR gets a report.
Proof, not promises
We ran it on this exact page.
The site you're reading is tested by GreenCI. We typed five plain-English journeys into a workflow file and ran it once. It opened a PR with five Playwright specs, four of them self-healed before they reached us. We merged it, and they gate every deploy of this page.
๐ฑ Foundational E2E suite generated by GreenCI
This PR contains the verified-passing starter suite for your critical journeys. Review it like any code: the tests are plain Playwright and fully yours.
Features
Everything you need
Start from zero
No tests? Describe your flows in plain English and get a passing starter suite as a PR.
Honest self-healing
When a test breaks, it gets fixed. When your app breaks, you get told. We never heal over a suspected bug.
Lives in your PRs
Tests are generated, run, and committed inside the pull request. No separate tool to check.
Cypress migration
Point it at your Cypress suite and get Playwright back, TODO-marked where it needs a human.
Plain Playwright
Everything it writes is standard Playwright in your repo. Cancel anytime and keep every test.
Free plan, live today
50 test generations a month, no card, no sales call. Paid tiers open later.
Security
Your code stays yours.
Never stored
On the hosted plan your diff is processed transiently to generate tests. It is never stored and never used for training.
Or never sent at all
Bring your own Anthropic or OpenAI key and the action calls it straight from your runner. Your code never touches our servers.
Runs in your CI
GreenCI is a GitHub Action inside your pipeline, not a platform your app has to be exposed to. It tests the app on the runner.
Pricing
Simple pricing
The free plan is live today. Paid plans are not purchasable yet. The prices below are what they will cost.
Free
$0
- โ50 test generations/mo
- โ1 repository
- โBootstrap + PR modes
- โSelf-healing included
- โSupport via GitHub issues
Starter
$39/mo
- โ500 test generations/mo
- โUnlimited repositories
- โPR integration
- โSelf-healing included
- โSupport via GitHub issues
Team
$99/mo
- โ2,000 test generations/mo
- โUnlimited repositories
- โPR integration
- โSelf-healing included
- โPriority support
Enterprise
Custom
- โEverything in Team
- โVolume pricing
- โSSO and SAML
- โAudit logs
- โInvoicing and PO terms
- โDedicated support and SLA
Annual billing saves two months. Starter is $390 a year, Team is $990 a year.
Generations reset monthly. We warn you at 80% of your quota and never stop a run that is already going.
FAQ
Frequently asked questions
That's exactly what bootstrap mode is for. Write down your critical flows in plain English: 'sign in', 'add to cart', 'reach checkout'. Run the action once. GreenCI reads your real pages, writes a spec per flow, runs them against your app, and opens a PR with the ones that pass. You review it like any other PR.
Yes, maybe especially for you. You never write or read test code unless you want to. Describe what your app should do in plain English. GreenCI writes, runs, and maintains the Playwright tests on every change, including the changes your AI makes next.
Anything Playwright can drive in a browser: React, Next.js, Vue, Rails, Django, a 15-year-old server-rendered app. GreenCI grounds its selectors in your rendered HTML, so it doesn't care how that HTML got there.
On the hosted plan, the action sends your PR diff and existing test files to the GreenCI API, where an LLM provider processes them transiently to generate tests. They are never stored and never used to train models. Or bring your own LLM (an Anthropic or OpenAI key): the action calls your provider straight from your CI runner, and your code never touches GreenCI's servers.
It works from your pull request diff, so it generates tests for whatever changed, wherever that lives. What it does not do yet is understand workspace boundaries on its own. In a monorepo, point base-url at the app you are testing, set test-dir per package, and run the action once per app you want covered.
Yes. Tests are added as commits to your PR branch. Review them like any other code change. Nothing merges without your approval.
With ChatGPT, you are the pipeline. You gather the context, paste it in, copy the code out, run it, paste the failures back, fix, commit, then do it all again next PR. GreenCI is that loop running by itself. It reads your real pages, writes the tests, runs them against your app, heals what broke, tells you when the failure looks like a real bug, and commits only what passes. It does that on every PR, including the ones nobody was thinking about tests for. ChatGPT can write you a test. GreenCI keeps your CI green.
Every test has to pass against your app before it gets committed. We run them, we don't just write them. When a failure looks like a real app bug, GreenCI flags it on the PR instead of rewriting the test until it goes green. A healed test that hides a bug is worse than a failing one, so healing is blocked on those.
Try it on your own repo, free.
50 generations/month ยท no credit card ยท plain Playwright in your repo, yours either way.
Stay in the loop
Not ready yet?
We ship often, so leave your email and we'll tell you when the big stuff lands. No drip campaigns.
Be the first to join the waitlist