Model or dataset
suyancc/openai-plus-vxt avatar
suyancc/openai-plus-vxt

OpenAI Plus VXT: a WXT browser extension for ChatGPT signup, checkout links and payment autofill

一个基于 WXT 的浏览器插件,用于辅助 ChatGPT 注册、Checkout 链接提取、随机地址资料生成,以及 OpenAI/PayPal 支付页资料自动填写。

567 stars144 forksTypeScriptLicense varies

At a glance

What is it?
OpenAI Plus VXT is a TypeScript extension built on WXT that automates parts of ChatGPT registration, extracts checkout links from a logged-in session, generates random US address profiles and fills OpenAI and PayPal payment forms. It is a workflow tool for people who do this repeatedly, not a general ChatGPT client.
Who is it for?
Adopt OpenAI Plus VXT if you already run the Outlook OTP service on Windows and want the registration, checkout-link and payment-autofill steps in one panel, and accept that the selectors and endpoints are maintained by hand. Do not adopt it if you cannot run a local service on port 8787, if you work only in Firefox (the scripts exist but the README's autofill targets are Chrome-shaped), or if you need a stable API rather than page automation.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 118 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What OpenAI Plus VXT automates, and who it is built for

The README describes four jobs in one extension: registration assist, checkout link extraction, random address profile generation, and payment page autofill. They share a single floating panel on the right side of the page, which can be collapsed, and whose collapsed state, active tab, input contents and settings persist locally. That persistence is the tell. This is not a one-shot script; it is designed for someone repeating the same signup-and-pay sequence many times and wanting the form state to survive a refresh.

The audience is narrow. The README points to a Telegram group and ships a Windows-only helper binary, so the assumed user is on Windows, comfortable running an .exe, and already familiar with the OpenAI signup funnel. If you only want to use ChatGPT, this project does nothing for you. Its value is in the steps before and around the subscription: creating the account, pulling a checkout link out of a session, and getting a payment form filled with plausible data.

How the panel, content script and background worker divide the work

The repository layout is explicit about the split. entrypoints/background.ts handles background messages, Outlook verification code retrieval and checkout creation. entrypoints/content.ts is the content script entry point that mounts the right-side panel and the autofill modules. Everything else lives under src/, split into features: register, link-extractor, address-autofill, version-check, sms and settings.

The link extraction flow is the most concrete. When you switch to the link tab, the extension reads https://chatgpt.com/api/auth/session and pulls accessToken, user.email and account.planType out of the response. It can then produce a ChatGPT checkout long link or short link. Parameters are adjustable inside the extension and persisted. There are two modes: local, where the extension background calls the ChatGPT checkout endpoint directly, and a server API mode, where the accessToken is posted to a remote endpoint that returns the raw checkout link.

The address flow goes the other way. The extension fetches random profile data from https://www.meiguodizhi.com/, optionally constrained to a country or city, and keeps the current profile in local storage so a page refresh does not lose it. Payment autofill then consumes that profile on two hosts: pay.openai.com/c/pay, where it selects PayPal, fills name, country, address, postcode and phone, and ticks the terms box; and paypal.com/checkoutweb/signup, where it fills country, email, card details, name, address, password, and shows a note that the current password matches the email. The two autofill switches are independent and on by default.

Installing the extension and running the Outlook OTP service

The README lists Node.js, pnpm and Chrome or Chromium as prerequisites. Install dependencies first, then start the dev browser. WXT launches a browser with the extension loaded.

bash
pnpm install
pnpm dev

If you prefer to drive the browser yourself, the manual debug path builds first and then runs a PowerShell launcher script from the repository.

bash
pnpm dev:manual

For a distributable build, the sequence in the release section is type check, build, zip, and the output lands in .output.

bash
pnpm compile
pnpm build
pnpm zip

Automatic verification code retrieval needs a separate local service. The README links a zip in the releases and says to unpack it and run outlook-otp-service.exe, which listens on http://127.0.0.1:8787 by default. The register tab then polls that service every 5 seconds, searching for the keyword 验证码 and reading at most the latest 3 messages. Without the local service, you fall back to single-email mode and type the code yourself. Account lines use a four-field format.

text
email----password----client_id----refresh_token

One detail worth checking before you rely on it: the extension requests host permissions for 127.0.0.1:8787 and localhost:8787, so the service must be reachable on one of those two names, not on a LAN address.

The checkout server mode sends your access token to a third-party host

This is the part I would flag to anyone evaluating the project. The link tab's server API mode posts the ChatGPT accessToken to a hardcoded address, 64.176.37.149:8788, and that host is also in the extension's host permissions. The README documents the request shape plainly.

http
POST http://64.176.37.149:8788/checkout/raw
Content-Type: application/json

{"token":"PASTE_TOKEN_HERE"}

That token is a live session credential for the account you just signed into. Sending it to an IP address you do not control is a decision the extension makes easy and the README does not discuss. The local mode avoids this entirely by having the background worker call the checkout endpoint itself, so if you have no reason to prefer the server path, the local mode is the one to select. The README does not state who operates that server, whether it logs tokens, or what happens if it goes offline.

A second, quieter limitation: the README's own note says payment pages, third-party sites and API structures can change at any time, and that autofill selectors need ongoing maintenance. That is an admission that the payment autofill is brittle by design. When PayPal or OpenAI reshuffle a form, the extension does not degrade gracefully, it simply stops filling fields, and you find out at the payment step.

Incognito split, permissions, and what gets stored where

The manifest sets incognito to "split", so normal and incognito windows get separate extension contexts. The README says this exists so that reading the ChatGPT session matches the login state of the current window. To use it in incognito you must open chrome://extensions, find OpenAI Plus VXT, open Details, and enable Allow in incognito. The README also states that panel input, active tab, verification history and address settings are stored separately per context, so the two windows do not overwrite each other.

The extension injects content scripts on chatgpt.com, auth.openai.com, pay.openai.com, www.paypal.com and paypal.com. Host permissions cover the two local Outlook endpoints, the checkout server, ChatGPT and OpenAI auth and pay, PayPal, meiguodizhi, and the GitHub Releases API used for version checks. That last one is how the update banner works: the settings page shows the current version and can force a check, and if the latest release is newer, the top of the panel shows the version, a download link and release notes.

Nothing in the README describes a sync or export path. The address profile, the settings and the verification history live in local storage, which means moving to another machine means starting over, aside from whatever account lines you keep outside the extension.

How it compares with writing your own Playwright script

The obvious alternative is a Playwright or Puppeteer script that drives a real browser through the same funnel. The difference is where the automation lives. A Playwright script owns the whole session: it launches the browser, navigates, types, and can be committed to a repository and rerun deterministically. OpenAI Plus VXT does the opposite. It attaches to a browser you are already using, reads the session the browser already holds, and fills forms on pages you navigated to yourself. That means it inherits your existing login, cookies and incognito state, which a headless script has to reconstruct.

The trade-off runs the other way too. A Playwright script is testable and versioned; the extension's behaviour depends on the live DOM of pages you do not control, and its selectors are maintained by hand. The repository does include a test/ directory and a .playwright-mcp/ entry, so some browser automation tooling exists in the tree, but the README does not document a test suite or what it covers. If your goal is a repeatable, auditable pipeline, a script is the better shape. If your goal is to sit in a browser you are already logged into and have the tedious fields filled, the extension is the better shape.

Maintenance, releases and the missing licence

The last push to the default branch was on 2026-06-05, and the most recent release listed is v0.0.8 from 2026-06-03, following v0.0.7 and v0.0.6 earlier the same week. That is a burst of releases, not a long tail, and the repository is not archived. The README's release procedure is manual: bump version in package.json, run pnpm compile, pnpm build and pnpm zip, create a vX.Y.Z release, upload the zip from .output, and write release notes. There is no CI configuration mentioned, so every release depends on someone running those three commands locally.

Upgrade cost is therefore low if you track releases and rebuild, and the built-in version check will tell you when a newer release exists. The cost that is not low is selector maintenance. Every time OpenAI or PayPal changes a payment form, someone has to update the autofill code, and until they do, the extension silently underperforms.

On licensing: the repository has no licence file, and the package.json marks the project as private. The README does not state terms of use. That means there is no grant of rights to copy, modify or redistribute the code, and anyone planning to fork it or ship it internally should treat the absence of a licence as a question to resolve with the author rather than an implicit permission. This is a factual observation about the repository, not legal advice.

Editorial conclusion

Adopt OpenAI Plus VXT if you already run the Outlook OTP service on Windows and want the registration, checkout-link and payment-autofill steps in one panel, and accept that the selectors and endpoints are maintained by hand. Do not adopt it if you cannot run a local service on port 8787, if you work only in Firefox (the scripts exist but the README's autofill targets are Chrome-shaped), or if you need a stable API rather than page automation. Before installing, verify three things: that the checkout server mode is not the default you depend on, that the address data actually comes from meiguodizhi.com in your region, and that the extension's incognito split context matches the window you log in from. The repository carries no licence file, so the terms you are agreeing to are the ones in the README and nothing more.

Frequently asked questions

Is ChatGPT Plus worth the money?

The README does not evaluate the subscription's value. What it documents is the machinery around it: a checkout link extracted from the ChatGPT session, and autofill for the OpenAI and PayPal payment pages that link leads to.

Why pay $20 for ChatGPT?

The README does not answer this. It treats the payment step as a workflow to be automated, covering pay.openai.com/c/pay and paypal.com/checkoutweb/signup, and leaves the decision about the subscription itself to the user.

What are the 5 things you shouldn't tell ChatGPT?

The README says nothing about what to disclose in a conversation. It does note that the server API mode posts your ChatGPT accessToken to 64.176.37.149:8788, which is a data-handling decision worth weighing before you use that mode.

Why are people leaving ChatGPT?

The README does not discuss this. The project is a browser extension for the signup and payment steps, and it makes no claim about why anyone would stop using the service.

Official sources

  1. Issues
  2. README
  3. Releases
  4. suyancc/openai-plus-vxt on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/suyancc-openai-plus-vxt.svg)](https://hysenlabs.com/projects/suyancc-openai-plus-vxt)