Français

Codex SDK

Codex SDK

Contrôlez par programmation les agents Codex locaux

Si vous utilisez Codex au moyen de Codex CLI, de l’extension IDE ou de Codex cloud, vous pouvez également le contrôler par programmation.

Utilisez le SDK lorsque vous devez :

  • Contrôler Codex dans le cadre de votre pipeline CI/CD
  • Créer votre propre agent capable d’interagir avec Codex pour effectuer des tâches d’ingénierie complexes
  • Intégrer Codex à vos propres outils internes et workflows
  • Intégrer Codex à votre propre application

Utilisez le Codex SDK pour automatiser des tâches de programmation, notamment des tâches dans la CI. Utilisez le Codex app server pour créer des clients personnalisés qui gèrent l’authentification, l’historique des conversations, les approbations et les événements diffusés en continu par l’agent.

La commande codex mcp-server et le binaire autonome codex-mcp-server ont été supprimés. Utilisez le serveur d’application Codex pour les intégrations existantes.

Si vous disposez d’un accès à la version bêta et avez besoin d’analyses de dépôts ou de modifications fournissant des résultats de sécurité structurés et des informations de couverture, utilisez le Codex Security TypeScript SDK.

Bibliothèque TypeScript

La bibliothèque TypeScript permet à votre application de démarrer, poursuivre et reprendre des threads Codex locaux.

Utilisez la bibliothèque côté serveur ; elle nécessite Node.js 18 ou une version ultérieure.

Installation

Pour commencer, installez le Codex SDK avec npm :

npm install @openai/codex-sdk

Utilisation

Démarrez un thread avec Codex et exécutez-le avec votre prompt.



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);

Appelez de nouveau run() pour poursuivre dans le même thread, ou reprenez un ancien thread en fournissant son 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);

Pour en savoir plus, consultez le dépôt TypeScript.

Bibliothèque Python

Le Python SDK contrôle l’app-server Codex local au moyen de JSON-RPC. Il nécessite Python 3.10 ou une version ultérieure. Les versions publiées du SDK incluent une dépendance épinglée vers l’environnement d’exécution Codex CLI.

Installation

Pour installer le SDK, exécutez :

pip install openai-codex

Les versions publiées du SDK utilisent automatiquement leur environnement d’exécution épinglé. Transmettez CodexConfig(codex_bin=...) uniquement lorsque vous souhaitez délibérément utiliser un exécutable Codex local spécifique.

Le SDK Python est disponible en version stable. pip install openai-codex installe la dernière version stable. Utilisez pip install --pre openai-codex pour choisir les versions préliminaires plus récentes.

Utilisation

Démarrez Codex, créez un thread et exécutez un prompt :

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)

Utilisez AsyncCodex si votre application est déjà asynchrone :

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())

Préréglages du sandbox

Utilisez les mêmes préréglages Sandbox lors de la création d’un thread ou de la modification de son accès au système de fichiers pour un tour ultérieur :

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)

Préréglages disponibles :

  • Sandbox.read_only : lisez les fichiers sans autoriser les écritures.
  • Sandbox.workspace_write : lisez les fichiers et écrivez dans le workspace et les racines configurées comme accessibles en écriture.
  • Sandbox.full_access : exécutez sans restrictions d’accès au système de fichiers.

Lorsque vous omettez sandbox=, app-server utilise sa valeur par défaut configurée. Un sandbox transmis à run(...) ou turn(...) s’applique à ce tour et aux tours suivants du thread.

Pour en savoir plus, consultez le dépôt Python.