gpt-promo-scanner — CLI Automation tool screenshot
CLI Automation

gpt-promo-scanner: Best CLI Automation for developers in 2026

8 min read·

Automates ChatGPT Business promo-code discovery, geo-aware validation, and Stripe checkout generation with Python scripts, proxy switching, and batch result capture.

Pricing

Open-Source

Tech Stack

Python 3.9+, TOML config, Clash Verge/Mihomo sockets, Stripe checkout, curl_cffi

Target

developers and indie hackers

Category

CLI Automation

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

AttributeDetails
TypeCLI Automation
Best Fordevelopers and indie hackers
Language/StackPython 3.9+, TOML config, Clash Verge/Mihomo sockets, Stripe checkout, curl_cffi
LicenseMIT
GitHub StarsN/A as of Feb 2026
PricingOpen-Source
Last ReleaseN/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, running pip, and wiring proxy infrastructure into a shell-based workflow.
  • Ops-minded engineers who need batch validation, structured output, and repeatable runs with scan_results.json and stripe_urls.txt artifacts.
  • 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 generationdiscover_codes.py can 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 validationauto_scan.py switches Clash nodes before each check, then tests the eligibility endpoint with the current account token. That design matters because the same code can return ELIGIBLE, EXISTS, or not found depending on the node country.
  • Token-based session reuse — the workflow pulls accessToken from https://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.txt and scan_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 generationopen_stripe.py can be copied out of the repo and run independently, as long as curl_cffi is installed. That separation is useful when you want a minimal payment-link helper without the full scanning workflow.
  • Preview and list modes — the --preview and --list flags 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

ToolBest ForKey DifferentiatorPricing
gpt-promo-scannerCountry-aware promo-code discovery and Stripe link generationEnd-to-end pipeline from candidate generation to checkout URL creationOpen-Source
Custom Python scriptOne-off experiments and tightly scoped checksFully bespoke logic, but you must build token handling, node switching, and result storage yourselfFree
OpenSwarmMulti-step automation with orchestrationBetter when you want workflow coordination across several agents or tasks, not a single-purpose scannerOpen-Source
djevopsCI-oriented automationBetter if this workflow needs to live inside a deployment or ops pipeline with repeatable job executionOpen-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 accessToken can 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.

Frequently Asked Questions

Looking for alternatives?

Compare gpt-promo-scanner with other CLI Automation tools.

See Alternatives →

You Might Also Like