← all repositories
acheong08/ChatGPT

Reverse-engineering ChatGPT before OpenAI sold the API

A Python library that once let you talk to ChatGPT without an official API key, and now wraps both the unofficial web interface and the paid official API.

27.9k stars Python Chat AssistantsLanguage Models
ChatGPT
Velocity · 7d
+22
★ / day
Trend
steady
star history

What it does

revChatGPT is a Python package with two personalities. V1 reverse-engineers the ChatGPT web interface so you can automate conversations with an access token or email/password. V3 is a thin wrapper around OpenAI’s official paid API. Both come with a command-line chat client and a developer API for streaming or single-shot responses.

The interesting bit

The V1 layer is the cat-and-mouse part: it routes traffic through an open-source Cloudflare bypass proxy to avoid being blocked, and supports plugins, GPT-4 browsing, and conversation history manipulation. The README cheerfully notes rate limits of 5 requests per 10 seconds on the proxy and 50 per hour from OpenAI — enough to remind you this is a tolerated workaround, not a supported platform.

Key highlights

  • Dual API: V1 for free web-interface access (unofficial), V3 for official API keys
  • CLI with multi-line input, history editing, and tab-completion of previous prompts
  • Plugin support in V1, including unverified third-party plugins installable from code
  • Config-driven: JSON file at $HOME/.config/revChatGPT/config.json
  • Python 3.9 minimum, 3.11+ recommended

Caveats

  • V1 email/password login excludes Google and Microsoft accounts
  • Windows users must manually create a HOME environment variable for config discovery
  • Plugin installation from code “may or may not work” if the plugin wasn’t already installed via the web UI

Verdict

Worth a look if you need to script ChatGPT without an API budget, or want a quick CLI wrapper for the official API. Skip it if you need reliability guarantees — this is a personal project with a “Don’t sue me” disclaimer.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.