Codex SDK
Controla mediante programación los agentes locales de Codex
Si usas Codex mediante Codex CLI, la extensión de IDE o Codex cloud, también puedes controlarlo mediante programación.
Usa el SDK cuando necesites:
- Controlar Codex como parte de tu canalización de CI/CD
- Crear tu propio agente que pueda interactuar con Codex para realizar tareas de ingeniería complejas
- Incorporar Codex en tus propias herramientas y flujos de trabajo internos
- Integrar Codex en tu propia aplicación
Usa Codex SDK para los hilos de Codex centrados en programación. Si Codex es uno de los especialistas dentro de un flujo de trabajo orquestado más amplio, ejecuta Codex CLI como servidor MCP y orquéstalo con Agents SDK.
Si tienes acceso a la versión beta y necesitas análisis de repositorios o cambios con hallazgos de seguridad estructurados y cobertura, usa Codex Security TypeScript SDK.
Biblioteca de TypeScript
La biblioteca de TypeScript permite que tu aplicación inicie, continúe y reanude hilos locales de Codex.
Usa la biblioteca en el lado del servidor; requiere Node.js 18 o una versión posterior.
Instalación
Para comenzar, instala Codex SDK mediante npm:
npm install @openai/codex-sdkUso
Inicia un hilo con Codex y ejecútalo con tu indicación.
const codex = new Codex();
const thread = codex.startThread();
const result = await thread.run(
"Make a plan to diagnose and fix the CI failures"
);
console.log(result.finalResponse);Vuelve a llamar a run() para continuar en el mismo hilo, o reanuda un hilo anterior proporcionando su ID.
// running the same thread
const result = await thread.run("Implement the plan");
console.log(result.finalResponse);
// resuming past thread
const threadId = "<thread-id>";
const thread2 = codex.resumeThread(threadId);
const result2 = await thread2.run("Pick up where you left off");
console.log(result2.finalResponse);Para obtener más información, consulta el repositorio de TypeScript.
Biblioteca de Python
Python SDK controla el app-server local de Codex mediante JSON-RPC. Requiere Python 3.10 o una versión posterior. Las compilaciones publicadas del SDK incluyen una dependencia fijada del entorno de ejecución de Codex CLI.
Instalación
Para instalar el SDK, ejecuta:
pip install openai-codexLas compilaciones publicadas del SDK usan automáticamente su entorno de ejecución fijado. Pasa CodexConfig(codex_bin=...) solo cuando quieras ejecutar intencionadamente un ejecutable local específico de Codex.
Mientras Python SDK esté en versión beta, pip install openai-codex selecciona la compilación beta
publicada más reciente. Cuando exista una versión estable del SDK, usa
pip install --pre openai-codex para optar por compilaciones preliminares más recientes.
Uso
Inicia Codex, crea un hilo y ejecuta una indicación:
from openai_codex import Codex, Sandbox
with Codex() as codex:
thread = codex.thread_start(
model="gpt-5.6-terra",
sandbox=Sandbox.workspace_write,
)
result = thread.run("Make a plan to diagnose and fix the CI failures")
print(result.final_response)Usa AsyncCodex cuando tu aplicación ya sea asíncrona:
import asyncio
from openai_codex import AsyncCodex
async def main() -> None:
async with AsyncCodex() as codex:
thread = await codex.thread_start(model="gpt-5.6-terra")
result = await thread.run("Implement the plan")
print(result.final_response)
asyncio.run(main())Configuraciones predefinidas del sandbox
Usa las mismas configuraciones predefinidas de Sandbox al crear un hilo o cambiar su acceso al sistema de archivos
para un turno posterior:
from openai_codex import Codex, Sandbox
with Codex() as codex:
thread = codex.thread_start(sandbox=Sandbox.workspace_write)
thread.run("Make the requested change.")
review = thread.run("Review the diff only.", sandbox=Sandbox.read_only)Configuraciones predefinidas disponibles:
Sandbox.read_only: Lee archivos sin permitir escrituras.Sandbox.workspace_write: Lee archivos y escribe dentro del espacio de trabajo y de las raíces configuradas con permisos de escritura.Sandbox.full_access: Ejecuta sin restricciones de acceso al sistema de archivos.
Cuando omites sandbox=, app-server usa su configuración predeterminada. Un sandbox
pasado a run(...) o turn(...) se aplica a ese turno y a los turnos posteriores
del hilo.
Para obtener más información, consulta el repositorio de Python.