@brantes/codex-get-auth-conf
v1.0.2
Published
A standalone script to obtain an auth.json to OpenAI codex-cli
Downloads
26
Maintainers
Readme
Codex Get Auth Conf (auth.json)
A standalone Node.js script to programmatically obtain an OpenAI API key by replicating the authentiation flow of the codex CLI. This project is the result of a deep dive into reverse-engineering a real-world OAuth 2.0 PKCE authentication flow.
🚀 Features
- Automated Browser Login: Initiates the OpenAI login flow directly in your default browser.
- Secure OAuth 2.0 PKCE Flow: Correctly implements the Proof Key for Code Exchange (PKCE) for secure authorization.
- Local Callback Server: Runs a temporary local server to handle the OAuth redirect and capture the authorization code.
- Automatic Token Exchange: Exchanges the temporary code for a final, long-lived API key.
- Credential Storage: Saves the obtained tokens and API key to
~/.codex/auth.json, mimicking the official CLI's behavior.
🤔 Why This Project Exists
This project began as an exploration to understand how modern CLI tools handle secure user authentication without asking the user to manually paste API keys. By reverse-engineering the codex CLI's login process, we can observe a complete, production-grade implementation of the OAuth 2.0 Authorization Code Grant with PKCE. It serves as a practical learning tool for anyone interested in API security and application authentication.
📋 Prerequisites
⚙️ Installation & Usage
Run with npx:
npx @brantes/codex-get-auth-conf You can install this tool globally via npm:
npm install -g @brantes/codex-get-auth-confClone the repository:
git clone https://github.com/pedrobrantes/codex-get-auth-conf.gitNavigate to the project directory:
cd codex-get-auth-confInstall the dependencies:
npm installRun the script:
npm start
The script will open a new tab in your browser. Log in with your OpenAI account. Upon success, the script will capture the credentials, save them, and print the new API key to the console.
🛠️ How It Works
The script follows the standard OAuth 2.0 PKCE flow:
- A local
expressserver is started onlocalhost:1455to listen for the callback. - A cryptographic
code_verifierandcode_challengeare generated. - The user's browser is opened to the OpenAI authorization endpoint, passing the
client_idandcode_challenge. - After the user authenticates, OpenAI redirects them back to
http://localhost:1455/auth/callbackwith a temporaryauthorization_code. - The local server receives this request, captures the code, and securely exchanges it (along with the original
code_verifier) for the final API key by making aPOSTrequest to OpenAI's token endpoint. - The final API key and associated tokens are saved to
~/.codex/auth.json.c
