You built the app. You tested it on three devices. You wrote the description, took the screenshots, hit submit. Then, two days later, Apple sends back a rejection over a purpose string you forgot to fill in, or a private API you did not even know your SDK was calling. Now you are back in the queue, waiting again. Greenlight is a free command-line tool that tries to catch those rejections before Apple ever sees your build.
Quick facts
License: MIT. Primary language: Go. First release (v0.1.0) landed in February 2026, and the project is actively maintained. It runs entirely on your own machine, with no account and no uploads for the core scans.
What it is
Greenlight is a pre-submission compliance scanner for the Apple App Store. In plain terms: it reads through your app project and checks it against Apple's App Review Guidelines, the long rulebook every iOS app has to satisfy before it goes live. It looks at your source code, your privacy files, your built app binary (the IPA, which is just the packaged file you upload to Apple), and your App Store Connect listing, then hands you a report of everything that could get you bounced.
The whole thing runs from your terminal. One command, greenlight preflight, fires off every scanner at once and gives you a full report in about a second. No sign-up, no sending your code to someone else's server.
The real-world problem it solves
Apple's review process is a black box with a slow feedback loop. You submit, you wait a day or two, and if something is wrong you get a terse note pointing at a guideline number. Fix it, resubmit, wait again. A single silly mistake, a leftover "lorem ipsum" placeholder, an insecure http:// link, a vague permission message like "we need your location," can cost you a full review cycle.
Greenlight moves that feedback from days to seconds. Instead of learning about a problem from Apple, you learn about it from a scan you ran on your laptop before lunch.
Where it's useful
An indie developer shipping a weekend side project runs greenlight preflight . the night before submitting and finds a hardcoded API key sitting in the code, the kind of secret that trips guideline 1.6 and leaks credentials at the same time.
A React Native team that added a social login button gets flagged for missing Sign in with Apple, which Apple requires under guideline 4.8 whenever you offer third-party login. They add it before review instead of after a rejection.
A studio with an ad-supported app learns that its tracking SDK needs an App Tracking Transparency prompt (the "Allow this app to track?" popup) that nobody wired up, so they fix the privacy manifest before it becomes a compliance problem.
A small team wiring Greenlight into their CI pipeline sets it to output JSON and fail the build automatically if any critical issue shows up, so a risky change never even reaches a human reviewer.
Why it stands out
Two things make Greenlight interesting. First, it is genuinely offline for the core checks. Your unreleased app never leaves your machine, which matters when your code is the whole business. Second, it goes deep across four different layers at once: it grep-style scans code for more than 30 known rejection patterns, validates your PrivacyInfo.xcprivacy manifest against the Required Reason APIs Apple now demands, cracks open the actual IPA binary to check icons and size limits, and can hit the App Store Connect API to verify your live listing.
There is also a neat trick for the AI-coding crowd. Greenlight ships as a skill for Claude Code and a package for Codex, so you can tell your coding assistant "run greenlight preflight and fix everything until it passes," and it will loop through the findings, patch them, and re-scan until the project comes back clean. It even has a built-in copy of Apple's guidelines you can search from the terminal, so when it cites section 3.1.1 you can actually read what that means without leaving your shell.
The honest caveat: a scanner like this catches the mechanical, rule-shaped problems. It cannot judge whether Apple's reviewers will find your app useful enough or decide it is too similar to something else, which are the squishier reasons apps still get rejected. Think of it as clearing the obvious hurdles, not a guarantee of approval.
How to get started
On a Mac, the quickest path is Homebrew:
brew install revylai/tap/greenlight
greenlight preflight /path/to/your/project
If you have Go installed, go install github.com/RevylAI/greenlight/cmd/greenlight@latest works too, or you can clone the repo and run make build. Point it at your project folder and read the report. Findings are ranked, so start at the CRITICAL ones and work down. If you have a built IPA handy, add --ipa build.ipa to include the binary checks.
Takeaway
Greenlight will not promise you a golden ticket into the App Store, and it should not. What it does is turn Apple's slow, cryptic rejection loop into a fast local checklist you can run as many times as you want, for free, without your code leaving your laptop. For anyone who has lost a week to a resubmission over a missing purpose string, that alone earns it a spot in the pre-launch routine.