Unofficial smolagents Model adapter for ChatGPT Codex OAuth device-code auth.
Project description
smolagents-codex
Use a ChatGPT/Codex OAuth session as a smolagents.Model.
Getting Started • Python Usage • Support Matrix • Troubleshooting
smolagents-codex is an unofficial external adapter that lets
smolagents.CodeAgent call the ChatGPT Codex Responses backend through OAuth
device-code login.
It does not fork smolagents, does not use the Codex CLI, does not require a
Platform API key, and does not use LiteLLM or the OpenAI Python SDK.
[!WARNING] This package talks to an internal ChatGPT/Codex transport, not the public OpenAI API. The backend can change without notice.
Features
smolagents.Modelimplementation forCodeAgent- OAuth device-code login against ChatGPT/Codex
- Access-token refresh with local credential storage
- Direct HTTPS/SSE transport to the Codex Responses backend
- Text-only message conversion for system, developer, user, assistant, and CodeAgent observation history
- Client-side stop-sequence trimming
Getting Started
Install the package in editable mode:
pip install -e '.[dev]'
Log in with device-code OAuth:
python -m smolagents_codex login
The command prints a verification URL and one-time code. Open the URL in a normal browser and enter the code only if you started the login.
Check or clear credentials:
python -m smolagents_codex status
python -m smolagents_codex logout
[!IMPORTANT] No default model is hardcoded. Pass a model ID that your ChatGPT/Codex account can use. Model IDs are case-sensitive.
Python Usage
from smolagents import CodeAgent
from smolagents_codex import CodexOAuthModel
model = CodexOAuthModel(model_id="MODEL_ID")
agent = CodeAgent(
tools=[],
model=model,
stream_outputs=False,
use_structured_outputs_internally=False,
max_steps=3,
)
print(agent.run("Calculate 17 * 23 and return the result."))
Run the bundled example:
export SMOLAGENTS_CODEX_MODEL=MODEL_ID
python examples/code_agent.py
python examples/code_agent.py MODEL_ID
Credentials
Set SMOLAGENTS_CODEX_HOME to choose the credential directory. Otherwise the
package uses ~/.smolagents-codex/credentials.json.
Credential files are written with private Unix permissions where supported, but file permissions are not encryption.
Support Matrix
| Area | Status |
|---|---|
smolagents.CodeAgent |
Supported |
Blocking generate() |
Supported |
| Text messages | Supported |
| OAuth device-code login | Supported |
| Access-token refresh | Supported |
| Public smolagents streaming | Not supported |
ToolCallingAgent / native function calls |
Not supported |
Structured response_format |
Not supported |
| Images, audio, video, files | Not supported |
| Codex server-side tools | Not supported |
| Codex CLI state | Not used |
Troubleshooting
| Symptom | Fix |
|---|---|
| Device auth disabled | Enable device-code authentication in ChatGPT security settings or ask a workspace admin. |
401 after refresh |
Run python -m smolagents_codex login. |
403 |
Check workspace membership, RBAC, entitlements, and admin restrictions. |
404 |
Check the model ID and whether the endpoint is available to your plan. |
429 |
You hit ChatGPT/Codex plan or usage limits. |
| Timeout | Retry on a stable network. |
| Corporate proxy/custom CA | Use standard httpx environment settings such as HTTPS_PROXY, SSL_CERT_FILE, or SSL_CERT_DIR. |
| Malformed credential file | Run python -m smolagents_codex logout, then python -m smolagents_codex login. |
Development
ruff check .
mypy src/smolagents_codex
python -m build
Protocol details and upstream source commits are recorded in
PROTOCOL.md. Re-check that file when Codex or smolagents
changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smolagents_codex-0.1.0.tar.gz.
File metadata
- Download URL: smolagents_codex-0.1.0.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52d7b947ec434d78a13aabc656e8f7a9c4f486620782466d704d84a4912904ed
|
|
| MD5 |
54b6d9b39f1df449823c8b915164c5e4
|
|
| BLAKE2b-256 |
259a1ecfb39ec9df2497472b66cfe9a659a43b0c9edf0920a53f8403e7503934
|
File details
Details for the file smolagents_codex-0.1.0-py3-none-any.whl.
File metadata
- Download URL: smolagents_codex-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1454cee1657d931fbc69b549e53f74a8ea9acd8cf43e3705285b8c6fbeae6cbd
|
|
| MD5 |
30c877540b22d348fd469756a0afdef3
|
|
| BLAKE2b-256 |
695d7b3f16791e676a19d9f626456caf4ce6c7c6412abfe2e5e42145f0ccf88b
|