# Référence rapide OpenAI Codex CLI

*Utilisation CLI, modes, configuration, commandes clés*

> Source: OpenAI Codex Documentation (github.com/openai/codex) · MIT

## Démarrage

### Installation

```
npm install -g @openai/codex
```

### Authentification

```
export OPENAI_API_KEY="sk-..."
```

*Définir dans le profil shell ou le fichier .env*

### Première utilisation

```
codex "explain this project"
codex "add input validation to app.py"
```

## Commandes

### Interactif (par défaut)

```
codex                       # démarrer une session interactive
codex "fix the login bug"   # avec un prompt initial
```

### codex exec

```
codex exec "write unit tests for utils.py"
codex exec "refactor db.py to use async"
```

*Non-interactif — exécute la tâche jusqu'à la fin*

### codex review

```
codex review                # revoir les changements indexés
codex review --diff HEAD~3  # revoir les 3 derniers commits
```

## Modes

### Modes d'approbation

| Command | Description |
|---------|-------------|
| `suggest` | Afficher les changements proposés, demander une approbation pour chaque modification et commande |
| `auto-edit` | Appliquer les modifications automatiquement, demander approbation pour les commandes shell |
| `full-auto` | Appliquer les modifications et exécuter les commandes sans approbation |

### Définir le mode

```
codex --approval-mode suggest "add tests"
codex --approval-mode auto-edit "refactor"
codex --approval-mode full-auto "fix lint"
```

## Configuration

### Fichier de config

```
# ~/.codex/config.yaml
model: o4-mini
approval_mode: suggest
providers:
  - name: openai
    api_key_env: OPENAI_API_KEY
```

*Remplacements par projet : .codex/config.yaml à la racine du projet*

### Instructions de projet

```
# AGENTS.md (à la racine du projet)
- Run tests with: uv run pytest
- Use ruff for linting
- Never modify migration files
```

### Options de config utiles

| Command | Description |
|---------|-------------|
| `model` | Modèle à utiliser (ex. `o4-mini`, `o3`) |
| `approval_mode` | Mode d'approbation par défaut |
| `providers` | Config du fournisseur API (clé, URL de base) |
| `history` | Sauvegarder l'historique : `true` / `false` |

## Bac à sable

### Fonctionnement

> Codex exécute les commandes dans un environnement isolé pour
éviter les effets secondaires non intentionnels. L'accès réseau
est désactivé par défaut. Les écritures de fichiers sont
limitées au répertoire du projet.

### Options du bac à sable

| Command | Description |
|---------|-------------|
| `macOS` | Apple Seatbelt (par défaut, intégré) |
| `Linux` | Bac à sable basé sur Docker |
| `--full-auto` | Nécessite que le bac à sable soit activé |
| `--dangerously-auto-approve` | Ignorer le bac à sable (non recommandé) |

## Conseils

### Prompts efficaces

| Command | Description |
|---------|-------------|
| `Être précis` | "ajouter une logique de réessai à fetch_data()" > "améliorer le code" |
| `Référencer les fichiers` | "corriger le bug dans src/auth.py" restreint la portée |
| `Énoncer les contraintes` | "ne pas modifier l'API publique" fixe des limites |
| `Itérer` | Affiner avec des suivis dans la même session |

### Patterns de workflow

```
# Explorer → planifier → exécuter
codex "explain the auth module"
codex "plan how to add OAuth support"
codex --approval-mode auto-edit "add OAuth"

# Revoir avant de commit
git add -A
codex review
```

### Options courantes

| Command | Description |
|---------|-------------|
| `--model, -m` | Remplacer le modèle pour cette session |
| `--approval-mode` | Définir le mode d'approbation |
| `--quiet, -q` | Sortie minimale |
| `--no-project-doc` | Ignorer AGENTS.md |
