Comment exécuter des scripts locaux et des applications web via un compte ChatGPT au lieu de l'API payante OpenAI

Les factures de l'API OpenAI augmentent plus vite que votre dernier side project n'atteint sa phase finale. Pendant ce temps, beaucoup possèdent déjà un abonnement ChatGPT Plus payant, et pourtant vous devez payer à nouveau pour chaque requête afin d'accéder aux modèles comme gpt-5.4-mini ou générer des images.
Le projet EvanZhouDev/openai-oauth offre un moyen d'éviter ce double paiement. Il transforme un compte ChatGPT ordinaire en point de terminaison API, entièrement compatible avec le client OpenAI standard et le Vercel AI SDK.
Pourquoi exécuter un proxy local
OpenAI propose l'outil CLI Codex pour travailler avec du code. En coulisses, cette CLI envoie des requêtes vers des points de terminaison internes chatgpt.com/backend-api/codex, en utilisant l'autorisation OAuth.
La bibliothèque openai-oauth intercepte ces jetons et lance un serveur HTTP local. Vous envoyez des requêtes standard vers localhost:10531/v1, et la bibliothèque les traduit vers ChatGPT.
L'outil résout deux problèmes :
- Lance un serveur local pour les scripts et utilitaires sans acheter de clés API.
- Fournit un bouton « Se connecter avec ChatGPT » pour les applications React tierces. Les utilisateurs se connectent avec leur propre compte, et les requêtes passent par leur propre abonnement.
Lancement local en une seule commande
Le moyen le plus rapide de tester le proxy est via la CLI. Aucune clé API n'est nécessaire.
npx openai-oauth
L'utilitaire ouvrira une fenêtre de navigateur pour l'autorisation ChatGPT, enregistrera les jetons dans ~/.codex/auth.json, et affichera l'adresse dans la 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
Le serveur peut être envoyé en mode arrière-plan avec le flag --detach, ou géré avec les commandes logs et stop.
Si vous écrivez en TypeScript, vous n'avez pas besoin de lancer un processus proxy séparé. La bibliothèque se connecte directement dans votre 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: "Привет!",
});
Le code récupère l'autorisation depuis le profil Codex local et envoie les requêtes directement vers le backend ChatGPT.
Comment fonctionne le SDK
L'architecture de la bibliothèque est divisée en deux niveaux : les sources d'identifiants et les adaptateurs client.

Les sources d'autorisation gèrent la récupération des jetons :
-
@openai-oauth/locallit les jetons depuis le disque local dans le répertoire~/.codex. -
@openai-oauth/reactrécupère le jeton depuis la session du navigateur de l'utilisateur.
Les adaptateurs enveloppent le jeton dans le format requis :
-
@openai-oauth/ai-sdkprépare un provider pour le Vercel AI SDK. -
@openai-oauth/openai-clientcrée une configuration pour le package officielopenai. -
@openai-oauth/coredonne unfetchetbaseURLde bas niveau pour une utilisation dans n'importe quel autre client.
Voici un exemple de travail avec le client officiel openai :
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: "Привет!" }],
});
Génération d'images
Le dépôt prend en charge le travail avec le modèle GPT Image 2. Les points de terminaison /v1/images/generations et /v1/images/edits sont proxifiés de la même manière que les modèles texte.
Exemple de requête 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"}'
Ou dans le code avec le Vercel AI SDK :
const result = await generateImage({
model: openai.image("gpt-image-2"),
prompt: "A tiny house in a forest",
});
Se connecter avec ChatGPT dans React

La fonctionnalité la plus intéressante dans la v2 est l'autorisation prête à l'emploi pour les services web. Vous installez le package @openai-oauth/react et ajoutez un bouton à votre interface :
import { SignInWithChatGPT } from "@openai-oauth/react";
export default function LoginPage() {
return <SignInWithChatGPT />;
}
Les navigateurs bloquent les appels directs vers les API tierces en raison du CORS. C'est pourquoi le client envoie les en-têtes d'autorisation vers votre backend, et le backend proxyfie la requête plus loin.
Pour une transmission sécurisée de la session OAuth, les utilisateurs doivent installer l'extension de navigateur « Se connecter avec ChatGPT » pour Chrome ou Firefox. Le bouton prêt à l'emploi détectera automatiquement la présence de l'extension et offrira de l'installer si nécessaire. Dans le navigateur, la session est chiffrée via WebCrypto et stockée dans IndexedDB.
Limitations et risques
Vous ne pouvez pas qualifier ce projet de pleinement universel. Il présente des limitations notables :
- La liste des modèles disponibles est limitée à ce que la CLI Codex fournit pour votre plan.
- L'autorisation des applications web ne fonctionne que dans Chrome et Firefox. Pas encore de support Safari.
- Le point de terminaison
/v1/responsesdans la CLI fonctionne sans état. Vous devrez passer l'historique complet de la conversation dans chaque requête. - L'utilisation non officielle du backend ChatGPT viole les conditions d'utilisation d'OpenAI.
Le projet ne devrait pas être utilisé pour des services de production publics avec de nombreux utilisateurs. Le regroupement de comptes ou la transmission de jetons à des tiers peut entraîner l'interdiction de votre compte ChatGPT.
Qui trouvera ce dépôt utile
La bibliothèque gagne par sa simplicité de lancement pour le développement individuel, les side projects et les tests de prototypes. Vous obtenez l'accès aux modèles OpenAI lors du débogage local sans lier une carte de crédit au tableau de bord API.
La licence Apache-2.0 ouvre le code à toutes les expérimentations. Vous pouvez essayer le proxy en action en quelques minutes en exécutant npx openai-oauth dans votre terminal.
Projets similaires