Como Executar Scripts Locais e Aplicações Web Através de uma Conta ChatGPT em Vez da API OpenAI Paga

As faturas da API OpenAI estão crescendo mais rápido do que seu último projeto paralelo é concluído. Enquanto isso, muitos já têm uma assinatura ChatGPT Plus paga, mas você precisa pagar novamente a cada requisição para acessar modelos como gpt-5.4-mini ou gerar imagens.
O projeto EvanZhouDev/openai-oauth oferece uma forma de evitar esse pagamento duplo. Ele transforma uma conta ChatGPT comum num endpoint de API, totalmente compatível com o cliente OpenAI padrão e o Vercel AI SDK.
Por que executar um proxy local
A OpenAI oferece a ferramenta CLI Codex para trabalhar com código. Por baixo dos panos, essa CLI faz requisições para endpoints internos chatgpt.com/backend-api/codex, usando autorização OAuth.
A biblioteca openai-oauth intercepta esses tokens e inicia um servidor HTTP local. Você envia requisições padrão para localhost:10531/v1, e a biblioteca as traduz para o ChatGPT.
A ferramenta resolve dois problemas:
- Inicia um servidor local para scripts e utilitários sem comprar chaves de API.
- Fornece um botão "Entrar com ChatGPT" para aplicações React de terceiros. Os usuários fazem login com sua própria conta, e as requisições passam pela própria assinatura deles.
Inicialização local em um comando
A forma mais rápida de testar o proxy é através da CLI. Não é necessário inserir chaves de API.
npx openai-oauth
O utilitário abrirá uma janela do navegador para autorização do ChatGPT, salvará os tokens em ~/.codex/auth.json e exibirá o endereço no 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
O servidor pode ser enviado para o modo segundo plano com a flag --detach, ou gerenciado com os comandos logs e stop.
Se você está escrevendo em TypeScript, não precisa iniciar um processo proxy separado. A biblioteca conecta-se diretamente no seu 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: "Привет!",
});
O código obtém a autorização do perfil Codex local e envia requisições diretamente para o backend do ChatGPT.
Como o SDK funciona
A arquitetura da biblioteca é dividida em dois níveis: Fontes de Credenciais e Adaptadores de Cliente.

As fontes de autorização lidam com a recuperação de tokens:
@openai-oauth/locallê tokens do disco local no diretório~/.codex.@openai-oauth/reactobtém o token da sessão do navegador do usuário.
Os adaptadores encapsulam o token no formato necessário:
@openai-oauth/ai-sdkprepara um provider para o Vercel AI SDK.@openai-oauth/openai-clientcria uma configuração para o pacote oficialopenai.@openai-oauth/corefornece umfetchebaseURLde baixo nível para uso em qualquer outro cliente.
Aqui está um exemplo de trabalho com o 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: "Привет!" }],
});
Geração de imagens
O repositório suporta trabalho com o modelo GPT Image 2. Os endpoints /v1/images/generations e /v1/images/edits são proxados da mesma forma que modelos de texto.
Exemplo de requisição 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 no código com Vercel AI SDK:
const result = await generateImage({
model: openai.image("gpt-image-2"),
prompt: "A tiny house in a forest",
});
Entrar com ChatGPT no React

O recurso mais tentador na v2 é a autorização pronta para serviços web. Você instala o pacote @openai-oauth/react e adiciona um botão à sua interface:
import { SignInWithChatGPT } from "@openai-oauth/react";
export default function LoginPage() {
return <SignInWithChatGPT />;
}
Os navegadores bloqueiam chamadas diretas para APIs de terceiros devido ao CORS. Por isso, o cliente envia cabeçalhos de autorização para o seu backend, e o backend faz o proxy da requisição adiante.
Para transmissão segura de sessão OAuth, os usuários precisam instalar a extensão de navegador "Sign in with ChatGPT" para Chrome ou Firefox. O botão pronto detectará automaticamente a presença da extensão e oferecerá a instalação se necessário. Dentro do navegador, a sessão é criptografada usando WebCrypto e armazenada no IndexedDB.
Limitações e riscos
Você não pode chamar este projeto de totalmente universal. Ele tem limitações notáveis:
- A lista de modelos disponíveis é limitada ao que a CLI Codex fornece para o seu plano.
- A autorização de aplicações web só funciona no Chrome e Firefox. Ainda não há suporte para Safari.
- O endpoint
/v1/responsesna CLI funciona sem estado. Você precisará passar todo o histórico da conversa em cada requisição. - O uso não oficial do backend do ChatGPT viola os termos de serviço da OpenAI.
O projeto não deve ser usado para serviços de produção públicos com muitos usuários. O pooling de contas ou passagem de tokens para terceiros pode resultar no banimento da sua conta ChatGPT.
Para quem este repositório será útil
A biblioteca vence com sua simplicidade de inicialização para desenvolvimento individual, projetos paralelos e testes de protótipos. Você obtém acesso aos modelos OpenAI durante a depuração local sem vincular um cartão de crédito ao painel da API.
A licença Apache-2.0 abre o código para quaisquer experimentos. Você pode testar o proxy em ação em poucos minutos executando npx openai-oauth no seu terminal.
Projetos relacionados