Skip to main content

English | 한국어

oauth-codex

OAuth PKCE-based Python SDK for the Codex backend.

Highlights

  • Resource-style clients: Client and AsyncClient
  • OAuth PKCE only, with interactive login and automatic token refresh
  • OpenAI-style chat.completions.create(...)
  • Lower-level responses.create(...), responses.parse(...), and responses.stream(...)
  • Callable tool loop helpers via client.beta.chat.completions.run_tools(...)

Installation

pip install oauth-codex

Requires Python 3.11 or newer.

Quick Start

Synchronous Client

from oauth_codex import Client

client = Client()
client.authenticate()

completion = client.chat.completions.create(
    model="gpt-5.3-codex",
    messages=[{"role": "user", "content": "Hello from oauth-codex"}],
)
print(completion.choices[0].message.content)

Asynchronous Client

import asyncio

from oauth_codex import AsyncClient


async def main():
    client = AsyncClient()
    await client.authenticate()

    completion = await client.chat.completions.create(
        model="gpt-5.3-codex",
        messages=[{"role": "user", "content": "Hello async"}],
    )
    print(completion.choices[0].message.content)


asyncio.run(main())

Authentication

This SDK uses OAuth PKCE only. API keys are not supported.

client = Client()
client.authenticate()

On first authentication, the SDK prints an authorization URL, waits for the browser sign-in flow, and asks you to paste the localhost callback URL back into the terminal. Tokens are stored locally and refreshed automatically on later requests.

Main API Surface

Chat Completions

response = client.chat.completions.create(
    model="gpt-5.3-codex",
    messages=[{"role": "user", "content": "Write a sorting function"}],
)
print(response.choices[0].message.content)

Responses Resource

response = client.responses.create(
    model="gpt-5.3-codex",
    input=[{"role": "user", "content": "Analyze this code snippet."}],
)
print(response.output_text)

Streaming

for event in client.responses.stream(
    model="gpt-5.3-codex",
    input=[{"role": "user", "content": "Say hello in three words"}],
):
    if event.type == "text_delta" and event.delta:
        print(event.delta, end="", flush=True)

Structured Output

from pydantic import BaseModel


class Summary(BaseModel):
    title: str
    score: int


response = client.responses.parse(
    model="gpt-5.3-codex",
    input=[{"role": "user", "content": "Return JSON with title and score"}],
    response_format=Summary,
)
print(response.parsed)

Tool Execution

def add(a: int, b: int) -> int:
    return a + b


completion = client.beta.chat.completions.run_tools(
    model="gpt-5.3-codex",
    messages=[{"role": "user", "content": "What is 2 + 3?"}],
    tools=[add],
)
print(completion.choices[0].message.content)

Available Namespaces

  • client.chat.completions
  • client.responses
  • client.files
  • client.vector_stores
  • client.vector_stores.files
  • client.vector_stores.file_batches
  • client.models
  • client.beta.chat.completions

AsyncClient exposes the same namespaces with async methods.

Removed In 4.0

  • authenticate_on_init
  • generate, agenerate, stream, astream
  • legacy OAuthCodexClient and AsyncOAuthCodexClient
  • module-level proxy usage such as oauth_codex.responses.create(...)

Error Handling

The package exports OpenAI-style exception classes such as AuthenticationError, RateLimitError, APIConnectionError, and APIStatusError.

Documentation

Development

pip install -e .[dev]
pytest -q
python -m build

Changelog

CHANGELOG.md

Metadata

Release files for oauth-codex 4.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oauth-codex 4.0.0
File Size Uploaded
oauth_codex-4.0.0.tar.gz 35.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oauth-codex 4.0.0
File Interpreter ABI Platform
oauth_codex-4.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 80.7 kB

Release files / oauth_codex-4.0.0.tar.gz

Download URL oauth_codex-4.0.0.tar.gz
Size 35.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8288a08bdfc05174e32fad76a6c0f832ea5df178b8907bea5c861a8116213972
BLAKE2b-256 checksum
How to use checksums
609bdab1d6f4d1a9554e4ac094de489e15a8bc24284deaa184bd2963db8998ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 10, 2026.

Transparency log

Release files / oauth_codex-4.0.0-py3-none-any.whl

Download URL oauth_codex-4.0.0-py3-none-any.whl
Size 45.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ccf872d8929b23b624c4dc75aa9718f927e31e86438107bc4217f4d4986913c6
BLAKE2b-256 checksum
How to use checksums
f5d341a42a8d90b850d55bfe8b75ea58b56cd46250659a55f6b72b9d7530ec0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

4.0.0 This release

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page