Jak uruchamiać lokalne skrypty i aplikacje webowe przez konto ChatGPT zamiast płatnego API OpenAI

Rachunki za API OpenAI rosną szybciej niż Twój najnowszy projekt poboczny dochodzi do końca. Tymczasem wielu już ma płatną subskrypcję ChatGPT Plus, ale musisz płacić ponownie za każde żądanie, aby uzyskać dostęp do modeli takich jak gpt-5.4-mini lub generować obrazy.
Projekt EvanZhouDev/openai-oauth oferuje sposób na uniknięcie tej podwójnej płatności. Zamienia zwykłe konto ChatGPT w endpoint API, w pełni kompatybilny ze standardowym klientem OpenAI i Vercel AI SDK.
Dlaczego uruchamiać lokalny serwer proxy
OpenAI oferuje narzędzie CLI Codex do pracy z kodem. Pod maską to CLI wysyła żądania do wewnętrznych endpointów chatgpt.com/backend-api/codex, używając autoryzacji OAuth.
Biblioteka openai-oauth przechwytuje te tokeny i uruchamia lokalny serwer HTTP. Wysyłasz standardowe żądania do localhost:10531/v1, a biblioteka tłumaczy je na ChatGPT.
Narzędzie rozwiązuje dwa problemy:
- Uruchamia lokalny serwer dla skryptów i narzędzi bez zakupu kluczy API.
- Zapewnia przycisk "Zaloguj się przez ChatGPT" dla zewnętrznych aplikacji React. Użytkownicy logują się własnym kontem, a żądania przechodzą przez ich własną subskrypcję.
Uruchomienie lokalne jedną komendą
Najszybszy sposób na przetestowanie proxy to przez CLI. Nie trzeba wprowadzać żadnych kluczy API.
npx openai-oauth
Narzędzie otworzy okno przeglądarki do autoryzacji ChatGPT, zapisze tokeny do ~/.codex/auth.json i wyświetli adres w konsoli:
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
Serwer można wysłać w tryb tła za pomocą flagi --detach lub zarządzać nim komendami logs i stop.
Jeśli piszesz w TypeScript, nie musisz uruchamiać osobnego procesu proxy. Biblioteka łączy się bezpośrednio w Twoim kodzie:
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: "Привет!",
});
Kod pobiera autoryzację z lokalnego profilu Codex i wysyła żądania bezpośrednio do backendu ChatGPT.
Jak działa SDK
Architektura biblioteki jest podzielona na dwa poziomy: Źródła poświadczeń i Adaptery klienta.

Źródła autoryzacji obsługują pobieranie tokenów:
@openai-oauth/localodczytuje tokeny z lokalnego dysku w katalogu~/.codex.@openai-oauth/reactpobiera token z sesji przeglądarki użytkownika.
Adaptery opakowują token w wymagany format:
@openai-oauth/ai-sdkprzygotowuje provider dla Vercel AI SDK.@openai-oauth/openai-clienttworzy konfigurację dla oficjalnego pakietuopenai.@openai-oauth/coreudostępnia niskopoziomowefetchibaseURLdo użycia w dowolnym innym kliencie.
Oto przykład pracy z oficjalnym klientem 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: "Привет!" }],
});
Generowanie obrazów
Repozytorium obsługuje pracę z modelem GPT Image 2. Endpointy /v1/images/generations i /v1/images/edits są proxyowane tak samo jak modele tekstowe.
Przykładowe żądanie przez 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"}'
Lub w kodzie z Vercel AI SDK:
const result = await generateImage({
model: openai.image("gpt-image-2"),
prompt: "A tiny house in a forest",
});
Logowanie przez ChatGPT w React

Najbardziej kuszącą funkcją w wersji 2 jest gotowa autoryzacja dla usług webowych. Instalujesz pakiet @openai-oauth/react i dodajesz przycisk do swojego interfejsu:
import { SignInWithChatGPT } from "@openai-oauth/react";
export default function LoginPage() {
return <SignInWithChatGPT />;
}
Przeglądarki blokują bezpośrednie wywołania zewnętrznych API z powodu CORS. Dlatego klient wysyła nagłówki autoryzacji do Twojego backendu, a backend proxyuje żądanie dalej.
Do bezpiecznej transmisji sesji OAuth użytkownicy muszą zainstalować rozszerzenie przeglądarki "Sign in with ChatGPT" dla Chrome lub Firefox. Gotowy przycisk automatycznie wykryje obecność rozszerzenia i zaproponuje jego instalację, jeśli jest potrzebne. W przeglądarce sesja jest szyfrowana za pomocą WebCrypto i przechowywana w IndexedDB.
Ograniczenia i ryzyko
Nie można nazwać tego projektu w pełni uniwersalnym. Ma istotne ograniczenia:
- Lista dostępnych modeli jest ograniczona do tego, co oferuje Codex CLI w ramach Twojego planu.
- Autoryzacja aplikacji webowych działa tylko w Chrome i Firefox. Na razie brak wsparcia dla Safari.
- Endpoint
/v1/responsesw CLI działa bezstanowo. Musisz przekazać całą historię rozmowy w każdym żądaniu. - Nieoficjalne korzystanie z backendu ChatGPT narusza warunki korzystania z usługi OpenAI.
Projektu nie należy używać do publicznych usług produkcyjnych z wieloma użytkownikami. Łączenie kont lub przekazywanie tokenów osobom trzecim może skutkować zablokowaniem konta ChatGPT.
Kto znajdzie to repozytorium przydatne
Biblioteka wygrywa prostotą uruchomienia do indywidualnego rozwoju, projektów pobocznych i testowania prototypów. Uzyskujesz dostęp do modeli OpenAI podczas lokalnego debugowania bez powiązania karty kredytowej z panelem API.
Licencja Apache-2.0 otwiera kod na wszelkie eksperymenty. Możesz wypróbować proxy w akcji w kilka minut, uruchamiając npx openai-oauth w terminalu.
Powiązane projekty