Universal provider proxy for OpenAI Codex & Claude Code β use any LLM (Claude, Gemini, Grok, DeepSeek, Ollamaβ¦) with Codex CLI, App, SDK, and Claude Code
docker pull library/opencodex
docker run -d --name opencodex -p 10100:10100 --restart always opencodex:local
podman run -d --name opencodex -p 10100:10100 --restart always opencodex:local
skopeo inspect docker://docker.io/library/opencodex:local
oras pull opencodex:local
docker compose up -d
name: opencodex
services:
hub:
image: opencodex:local
build:
context: .
dockerfile: Dockerfile
target: runtime
args:
# Required when context is a remote Git URL; harmless for local clones.
BUILDKIT_CONTEXT_KEEP_GIT_DIR: "1"
init: true
read_only: true
environment:
# A custom CODEX_HOME also requires a matching writable volume target below.
CODEX_HOME: /home/bun/.codex
ports:
- "${OPENCODEX_BIND_ADDRESS:-127.0.0.1}:${OPENCODEX_PORT:-10100}:10100"
volumes:
- ocx-state:/home/bun/.opencodex
- codex-state:/home/bun/.codex
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
restart: unless-stopped
stop_grace_period: 30s
volumes:
ocx-state:
codex-state: