Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
ChatGPT Codex model provider for elizaOS. This node-only plugin lets an Eliza agent use a user's ChatGPT Plus/Pro subscription as a frontier-model provider by reusing the OAuth token cache written by the official codex CLI.
This is intentionally a model provider plugin. It does not add a reasoning runtime, planner loop, context manager, or any native-reasoning architecture. It sits alongside providers like @elizaos/plugin-openai and @elizaos/plugin-anthropic and registers handlers for text (TEXT_SMALL, TEXT_NANO, TEXT_MEDIUM, TEXT_LARGE, TEXT_MEGA), RESPONSE_HANDLER, and ACTION_PLANNER model types.
How it works
The plugin reads OAuth tokens from ~/.codex/auth.json by default, sends requests to:
https://chatgpt.com/backend-api/codex/responses
and uses the same codex-oriented request headers as the CLI path:
Authorization: Bearer <access_token>
originator: codex_cli_rs
User-Agent: codex_cli_rs/...
chatgpt-account-id: <account_id>
OpenAI-Beta: responses=v1
On a 401, it refreshes the token with the cached refresh token, writing the auth file atomically under a file lock, then retries once.
Supported models
Set CODEX_MODEL to one of:
gpt-5
gpt-5-codex
gpt-5.4
gpt-5.5
gpt-5.5-pro
The default is gpt-5.5.
Configuration
CODEX_AUTH_PATH=~/.codex/auth.json
CODEX_BASE_URL=https://chatgpt.com/backend-api/codex # must target chatgpt.com or localhostCODEX_MODEL=gpt-5.5
CODEX_JITTER_MS_MAX=200CODEX_ORIGINATOR=codex_cli_rs
CODEX_USER_AGENT=codex_cli_rs/0.124.0
Usage
Install or enable the plugin the same way as other elizaOS model-provider plugins, then configure an agent to load @elizaos/plugin-codex-cli.
Example direct runtime call:
import{ModelType}from"@elizaos/core";consttext=awaitruntime.useModel(ModelType.RESPONSE_HANDLER,{prompt:"Reply as the agent in one short paragraph.",});
Tool-capable calls can pass provider-neutral tools, toolChoice, and messages. The plugin forwards tools to the OpenAI Responses API function-tool shape and returns a native result object when tools or messages are used:
constresult=awaitruntime.useModel(ModelType.RESPONSE_HANDLER,{messages,tools:[{name:"lookup",description:"Look up a fact",parameters:{type:"object",properties:{query:{type:"string"}}},},],});// result.text
// result.toolCalls
Soft mitigation
To reduce account/session weirdness against the ChatGPT Codex backend, each backend instance uses:
a single in-flight FIFO semaphore
configurable jitter before requests, default 50-200ms
Scope
This plugin provides a Codex-backed model provider surface. It does not own a reasoning loop, planner, or context manager — those concerns belong to the agent runtime and other plugins.