What Is gpt-promo-scanner?
gpt-promo-scanner is a CLI automation repo built by JUk1-GH that discovers, validates, and prices ChatGPT Team, now ChatGPT Business, promo codes across country-specific proxy nodes. gpt-promo-scanner is one of the best CLI Automation tools for developers and indie hackers because it can scan 9 base names across 34 countries and turn valid codes into Stripe checkout links with a repeatable workflow.
The repository is opinionated and narrow: it is built for account holders who already have a ChatGPT login and want to test promo-code eligibility at scale. The README also documents token expiry, Cloudflare throttling, and VAT handling, which makes it more useful than a one-off script when you need to run the same checks multiple times in Feb 2026.
Quick Overview
| Attribute | Details |
|---|---|
| Type | CLI Automation |
| Best For | developers and indie hackers |
| Language/Stack | Python 3.9+, TOML config, Clash Verge/Mihomo sockets, Stripe checkout, curl_cffi |
| License | MIT |
| GitHub Stars | N/A as of Feb 2026 |
| Pricing | Open-Source |
| Last Release | N/A in the scraped README |
Who Should Use gpt-promo-scanner?
- Indie hackers validating promo-code assumptions across multiple regions who want a scriptable workflow instead of manual browser testing.
- Python developers who are comfortable editing
config.toml, runningpip, and wiring proxy infrastructure into a shell-based workflow. - Ops-minded engineers who need batch validation, structured output, and repeatable runs with
scan_results.jsonandstripe_urls.txtartifacts. - Researchers comparing country-based pricing behavior, especially when VAT, pre-tax Stripe prices, and locale-dependent eligibility all change the outcome.
Not ideal for:
- Teams that want a polished GUI with onboarding, dashboards, or user management.
- Users who do not control a stable proxy setup or cannot provide a valid ChatGPT session token.
- Environments where you need enterprise audit logs, role-based access control, or support contracts.
Key Features of gpt-promo-scanner
- Batch candidate generation —
discover_codes.pycan cross product known company base names with supported country codes, which is how the repo expands beyond a single guess. The README says the built-in dataset includes 9 base names and 34 countries as of Feb 2026. - Geo-aware validation —
auto_scan.pyswitches Clash nodes before each check, then tests the eligibility endpoint with the current account token. That design matters because the same code can returnELIGIBLE,EXISTS, ornot founddepending on the node country. - Token-based session reuse — the workflow pulls
accessTokenfromhttps://chatgpt.com/api/auth/session, which means you do not need to invent a separate auth layer. The trade-off is that expired tokens cause widespread false negatives, so the repo treats token freshness as a hard requirement. - Structured scan artifacts — successful runs write
stripe_urls.txtandscan_results.json, which makes it easy to diff results, re-run only the interesting codes, or hand off findings to another script. That is better than ad hoc console output when you are iterating on dozens of countries. - Price collection with tax awareness — the repo distinguishes between official catalog pricing and Stripe’s pre-tax amounts, which is essential in VAT-heavy regions like Germany, France, and the UK. This avoids the common mistake of comparing gross and net prices as if they were the same number.
- Standalone Stripe link generation —
open_stripe.pycan be copied out of the repo and run independently, as long ascurl_cffiis installed. That separation is useful when you want a minimal payment-link helper without the full scanning workflow. - Preview and list modes — the
--previewand--listflags make the candidate space observable before any validation traffic is sent. That is a practical guardrail when you are trying to reduce unnecessary API calls and avoid hitting Cloudflare limits.
gpt-promo-scanner vs Alternatives
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| gpt-promo-scanner | Country-aware promo-code discovery and Stripe link generation | End-to-end pipeline from candidate generation to checkout URL creation | Open-Source |
| Custom Python script | One-off experiments and tightly scoped checks | Fully bespoke logic, but you must build token handling, node switching, and result storage yourself | Free |
| OpenSwarm | Multi-step automation with orchestration | Better when you want workflow coordination across several agents or tasks, not a single-purpose scanner | Open-Source |
| djevops | CI-oriented automation | Better if this workflow needs to live inside a deployment or ops pipeline with repeatable job execution | Open-Source |
Pick custom Python scripts when you only need to validate a handful of codes and do not care about persistence or country orchestration. Pick OpenSwarm when you want the scanning logic wrapped inside a broader automation graph, and pick djevops when the workflow needs to run as part of scheduled infrastructure jobs.
If your pain point is credential handling rather than scanning logic, MachineAuth is the adjacent tool to look at. gpt-promo-scanner still does the scanning better, but the surrounding auth lifecycle is where most brittle setups fail.
How gpt-promo-scanner Works
gpt-promo-scanner uses a three-stage pipeline: generate candidates, validate eligibility, then materialize a checkout link. The core abstraction is simple Python scripting plus country-specific proxy routing, with the current proxy state coming from Clash Verge or any compatible Mihomo API socket.
The design choice that matters most is the split between discovery and checkout. discover_codes.py handles the combinatorics of company name plus country suffix, while auto_scan.py focuses on validation, proxy switching, latency checks, and metadata retrieval. That separation keeps the scanner fast enough to brute-force candidate space without forcing every pass through the payment layer.
The runtime also assumes a valid ChatGPT session token and treats it as part of the operating envelope, not as a stable credential. If the token expires, the eligibility API degrades into invalid_code responses, so the repo explicitly warns you to refresh it before a long run.
git clone https://github.com/JUk1-GH/gpt-promo-scanner.git
cd gpt-promo-scanner
pip install -r requirements.txt
python discover_codes.py --cross
That sequence clones the repo, installs dependencies, and launches a full matrix scan across known company names and country codes. Expect the first run to fail if Clash is not active, the socket path is wrong, or the token is stale, because the workflow assumes all three pieces are present.
Pros and Cons of gpt-promo-scanner
Pros:
- End-to-end workflow — the repo covers discovery, validation, pricing, and payment-link generation in one place.
- Batch-friendly output — results are written to files, which makes the scanner easy to inspect, re-run, or post-process.
- Country-aware behavior — node switching and region matching are built into the flow instead of bolted on later.
- Low setup overhead — Python 3.9+, a TOML file, and a working proxy client are enough to start.
- Operational guardrails — preview mode, token checks, and output segmentation reduce blind runs.
Cons:
- Proxy dependency — without a functioning Clash or Mihomo setup, the scanner cannot reliably verify region-specific eligibility.
- Token fragility — an expired
accessTokencan make valid codes appear nonexistent, which is a serious false-negative risk. - No GUI — everything is script-driven, so non-technical users will hit a wall quickly.
- Cloudflare sensitivity — the README notes rate limiting after sustained request bursts, so aggressive scans need pacing.
- No enterprise controls — there is no user permission model, job queue, or audit trail for multi-user environments.
Getting Started with gpt-promo-scanner
The quickest path is to clone the repo, install dependencies, export a fresh token into config.toml, and run a preview before sending real validation traffic. The README’s recommended flow is built around discover_codes.py, auto_scan.py, and open_stripe.py, so the quickest successful test is to run a small regional scan first.
git clone https://github.com/JUk1-GH/gpt-promo-scanner.git
cd gpt-promo-scanner
pip install -r requirements.txt
cp config.toml.example config.toml
python discover_codes.py GB --preview
After that preview, you should confirm that Clash Verge is running and that /tmp/verge/verge-mihomo.sock or your configured socket path is reachable. If the preview looks sane, move on to python auto_scan.py GB for a real validation pass, then use python3 open_stripe.py <code> GB <accessToken> when you want a checkout link.
Verdict
gpt-promo-scanner is the strongest option for region-aware promo-code validation when you already have a working Clash-style proxy setup and a fresh ChatGPT session token. Its best trait is the full pipeline from candidate discovery to Stripe link creation, and its main caveat is token and proxy fragility. Recommended for technical users who value repeatable automation over polish.



