>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
TypeScript

Lokale scripts en web-apps uitvoeren via een ChatGPT-account in plaats van de betaalde OpenAI API

OpenAI OAuth

OpenAI API-facturen groeien sneller dan je laatste side project af is. Ondertussen hebben veel mensen al een betaald ChatGPT Plus-abonnement, maar je moet opnieuw betalen voor elke aanvraag om toegang te krijgen tot modellen zoals gpt-5.4-mini of afbeeldingen genereren.

Het EvanZhouDev/openai-oauth project biedt een manier om deze dubbele betaling te vermijden. Het zet een gewoon ChatGPT-account om in een API-endpoint, volledig compatibel met de standaard OpenAI-client en Vercel AI SDK.

Waarom een lokale proxy gebruiken

OpenAI biedt het Codex CLI-hulpmiddel voor het werken met code. Onder de motorkap maakt deze CLI aanvragen naar interne endpoints chatgpt.com/backend-api/codex, met OAuth-autorisatie.

De bibliotheek openai-oauth onderschept deze tokens en start een lokale HTTP-server. Je stuurt standaard aanvragen naar localhost:10531/v1, en de bibliotheek vertaalt ze naar ChatGPT.

Het hulpmiddel lost twee problemen op:

  1. Start een lokale server voor scripts en hulpprogramma's zonder API-sleutels te kopen.
  2. Biedt een "Aanmelden met ChatGPT"-knop voor React-apps van derden. Gebruikers melden zich aan met hun eigen account, en aanvragen verlopen via hun eigen abonnement.

Lokale start met één commando

De snelste manier om de proxy te testen is via de CLI. Er hoeven geen API-sleutels te worden ingevoerd.

npx openai-oauth

Het hulpprogramma opent een browservenster voor ChatGPT-autorisatie, slaat tokens op in ~/.codex/auth.json en voert het adres uit naar de console:

OpenAI-compatible endpoint ready at http://127.0.0.1:10531/v1
Use this as your OpenAI base URL. No API key is required.
Available Models: gpt-5.6-terra, gpt-5.6-sol, gpt-image-2

De server kan naar de achtergrondmodus worden gestuurd met de --detach-vlag, of worden beheerd met logs- en stop-commando's.

Als je in TypeScript schrijft, hoef je geen apart proxyproces te starten. De bibliotheek maakt rechtstreeks verbinding in je code:

npm i @openai-oauth/local @openai-oauth/ai-sdk ai
import { createOpenAIOAuth } from "@openai-oauth/ai-sdk";
import { openaiCredentials } from "@openai-oauth/local";
import { generateText } from "ai";

const openai = createOpenAIOAuth(openaiCredentials());

const result = await generateText({
	model: openai("gpt-5.4-mini"),
	prompt: "Привет!",
});

De code haalt de autorisatie uit het lokale Codex-profiel en stuurt aanvragen rechtstreeks naar de ChatGPT-backend.

Hoe de SDK werkt

De architectuur van de bibliotheek is opgedeeld in twee niveaus: Credential Sources en Client Adapters.

Package Structure

Autorisatiebronnen verwerken het ophalen van tokens:

  • @openai-oauth/local leest tokens van de lokale schijf in de ~/.codex-directory.
  • @openai-oauth/react haalt het token op uit de browsersessie van de gebruiker.

Adapters verpakken het token in het vereiste formaat:

  • @openai-oauth/ai-sdk bereidt een provider voor voor Vercel AI SDK.
  • @openai-oauth/openai-client maakt een configuratie voor het officiële openai-pakket.
  • @openai-oauth/core geeft een laag-niveau fetch en baseURL voor gebruik in elke andere client.

Hier is een voorbeeld van het werken met de officiële openai-client:

import { createOpenAIOptions } from "@openai-oauth/openai-client";
import { openaiCredentials } from "@openai-oauth/local";
import OpenAI from "openai";

const client = new OpenAI(createOpenAIOptions(openaiCredentials()));

const response = await client.chat.completions.create({
  model: "gpt-5.4-mini",
  messages: [{ role: "user", content: "Привет!" }],
});

Afbeeldingen genereren

De repository ondersteunt het werken met het GPT Image 2-model. Endpoints /v1/images/generations en /v1/images/edits worden op dezelfde manier geproxied als tekstmodellen.

Voorbeeld van een aanvraag via cURL:

curl http://127.0.0.1:10531/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"A tiny house in a forest"}'

Of in code met Vercel AI SDK:

const result = await generateImage({
	model: openai.image("gpt-image-2"),
	prompt: "A tiny house in a forest",
});

Aanmelden met ChatGPT in React

Sign in with ChatGPT

De meest verleidelijke functie in v2 is kant-en-klare autorisatie voor webservices. Je installeert het @openai-oauth/react-pakket en voegt een knop toe aan je interface:

import { SignInWithChatGPT } from "@openai-oauth/react";

export default function LoginPage() {
	return <SignInWithChatGPT />;
}

Browsers blokkeren directe aanroepen naar API's van derden vanwege CORS. Daarom stuurt de client autorisatieheaders naar je backend, en proxied de backend de aanvraag verder.

Voor veilige OAuth-sessietransmissie moeten gebruikers de "Aanmelden met ChatGPT"-browserextensie voor Chrome of Firefox installeren. De kant-en-klare knop detecteert automatisch de aanwezigheid van de extensie en biedt aan om deze te installeren indien nodig. Binnen de browser wordt de sessie versleuteld met WebCrypto en opgeslagen in IndexedDB.

Beperkingen en risico's

Je kunt dit project niet volledig universeel noemen. Het heeft opmerkelijke beperkingen:

  • De lijst met beschikbare modellen is beperkt tot wat de Codex CLI biedt voor je abonnement.
  • Web-app-autorisatie werkt alleen in Chrome en Firefox. Nog geen Safari-ondersteuning.
  • Het /v1/responses-endpoint in de CLI werkt stateless. Je moet de volledige conversatiegeschiedenis in elke aanvraag doorgeven.
  • Niet-officiële gebruik van de ChatGPT-backend is in strijd met de servicevoorwaarden van OpenAI.

Het project zou niet gebruikt moeten worden voor openbare productiediensten met veel gebruikers. Account-pooling of het doorgeven van tokens aan derden kan ervoor zorgen dat je ChatGPT-account wordt verbannen.

Voor wie is deze repository nuttig

De bibliotheek wint met zijn eenvoud van opstarten voor individuele ontwikkeling, side projects en prototypetests. Je krijgt toegang tot OpenAI-modellen tijdens lokale debugging zonder een creditcard te koppelen aan het API-dashboard.

De Apache-2.0-licentie maakt de code open voor allerlei experimenten. Je kunt de proxy in actie proberen in een paar minuten door npx openai-oauth uit te voeren in je terminal.

Gerelateerde projecten