>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

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

OpenAI OAuth

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:

  1. Inicia um servidor local para scripts e utilitários sem comprar chaves de API.
  2. 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.

Package Structure

As fontes de autorização lidam com a recuperação de tokens:

  • @openai-oauth/local lê tokens do disco local no diretório ~/.codex.
  • @openai-oauth/react obtém o token da sessão do navegador do usuário.

Os adaptadores encapsulam o token no formato necessário:

  • @openai-oauth/ai-sdk prepara um provider para o Vercel AI SDK.
  • @openai-oauth/openai-client cria uma configuração para o pacote oficial openai.
  • @openai-oauth/core fornece um fetch e baseURL de 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

Sign in with ChatGPT

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/responses na 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