Cómo ejecutar scripts locales y aplicaciones web a través de una cuenta de ChatGPT en lugar de la API de pago de OpenAI

Las facturas de la API de OpenAI crecen más rápido de lo que tu último proyecto paralelo alcanza su finalización. Mientras tanto, muchos ya tienen una suscripción de pago a ChatGPT Plus, pero tienes que pagar nuevamente por cada solicitud para acceder a modelos como gpt-5.4-mini o generar imágenes.
El proyecto EvanZhouDev/openai-oauth ofrece una forma de evitar este doble pago. Convierte una cuenta de ChatGPT normal en un endpoint de API, totalmente compatible con el cliente oficial de OpenAI y el Vercel AI SDK.
Por qué ejecutar un proxy local
OpenAI ofrece la herramienta CLI Codex para trabajar con código. Internamente, esta CLI realiza solicitudes a endpoints internos chatgpt.com/backend-api/codex, utilizando autorización OAuth.
La biblioteca openai-oauth intercepta estos tokens y levanta un servidor HTTP local. Envías solicitudes estándar a localhost:10531/v1, y la biblioteca las traduce a ChatGPT.
La herramienta resuelve dos problemas:
- Levanta un servidor local para scripts y utilidades sin necesidad de comprar claves de API.
- Proporciona un botón "Iniciar sesión con ChatGPT" para aplicaciones React de terceros. Los usuarios inician sesión con su propia cuenta, y las solicitudes pasan a través de su propia suscripción.
Inicio local con un solo comando
La forma más rápida de probar el proxy es a través de la CLI. No es necesario ingresar claves de API.
npx openai-oauth
La utilidad abrirá una ventana del navegador para la autorización de ChatGPT, guardará los tokens en ~/.codex/auth.json y mostrará la dirección en la consola:
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
El servidor se puede enviar al modo segundo plano con el indicador --detach, o gestionarse con los comandos logs y stop.
Si estás escribiendo en TypeScript, no necesitas levantar un proceso de proxy separado. La biblioteca se conecta directamente en tu código:
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: "Привет!",
});
El código toma la autorización del perfil local de Codex y envía solicitudes directamente al backend de ChatGPT.
Cómo funciona el SDK
La arquitectura de la biblioteca se divide en dos niveles: Fuentes de Credenciales y Adaptadores de Cliente.

Las fuentes de autorización manejan la recuperación de tokens:
@openai-oauth/locallee los tokens del disco local en el directorio~/.codex.@openai-oauth/reactobtiene el token de la sesión del navegador del usuario.
Los adaptadores envuelven el token en el formato requerido:
@openai-oauth/ai-sdkprepara un proveedor para Vercel AI SDK.@openai-oauth/openai-clientcrea una configuración para el paquete oficialopenai.@openai-oauth/coreproporciona unfetchybaseURLde bajo nivel para usar en cualquier otro cliente.
Aquí tienes un ejemplo de trabajo con el cliente oficial 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: "Привет!" }],
});
Generación de imágenes
El repositorio soporta trabajo con el modelo GPT Image 2. Los endpoints /v1/images/generations y /v1/images/edits se proxean de la misma manera que los modelos de texto.
Ejemplo de solicitud mediante 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"}'
O en código con Vercel AI SDK:
const result = await generateImage({
model: openai.image("gpt-image-2"),
prompt: "A tiny house in a forest",
});
Iniciar sesión con ChatGPT en React

La característica más atractiva en la v2 es la autorización lista para usar para servicios web. Instalas el paquete @openai-oauth/react y agregas un botón a tu interfaz:
import { SignInWithChatGPT } from "@openai-oauth/react";
export default function LoginPage() {
return <SignInWithChatGPT />;
}
Los navegadores bloquean llamadas directas a APIs de terceros debido a CORS. Por eso el cliente envía encabezados de autorización a tu backend, y el backend hace de proxy para la solicitud.
Para la transmisión segura de sesiones OAuth, los usuarios necesitan instalar la extensión del navegador "Sign in with ChatGPT" para Chrome o Firefox. El botón listo para usar detectará automáticamente la presencia de la extensión y ofrecerá instalarla si es necesario. Dentro del navegador, la sesión se cifra usando WebCrypto y se almacena en IndexedDB.
Limitaciones y riesgos
No puedes llamar a este proyecto completamente universal. Tiene limitaciones notables:
- La lista de modelos disponibles está limitada a lo que Codex CLI proporciona para tu plan.
- La autorización de aplicaciones web solo funciona en Chrome y Firefox. Aún no hay soporte para Safari.
- El endpoint
/v1/responsesen la CLI funciona sin estado. Necesitarás pasar todo el historial de conversación en cada solicitud. - El uso no oficial del backend de ChatGPT viola los términos de servicio de OpenAI.
El proyecto no debe usarse para servicios públicos de producción con muchos usuarios. El pooling de cuentas o pasar tokens a terceros puede resultar en que tu cuenta de ChatGPT sea banned.
A quién le resultará útil este repositorio
La biblioteca gana por su simplicidad de inicio para desarrollo individual, proyectos paralelos y pruebas de prototipos. Obtienes acceso a los modelos de OpenAI durante la depuración local sin vincular una tarjeta de crédito al panel de la API.
La licencia Apache-2.0 abre el código para cualquier experimento. Puedes probar el proxy en acción en un par de minutos ejecutando npx openai-oauth en tu terminal.
Proyectos relacionados