# Referencia Rápida de OpenAI Codex CLI

*Uso del CLI, modos, configuración, comandos clave*

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

## Primeros Pasos

### Instalar

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

### Autenticación

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

*Establecer en el perfil del shell o en el archivo .env*

### Primera Ejecución

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

## Comandos

### Interactivo (Por Defecto)

```
codex                       # iniciar sesión interactiva
codex "fix the login bug"   # con prompt inicial
```

### codex exec

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

*No interactivo — ejecuta la tarea hasta completarla*

### codex review

```
codex review                # revisar cambios staged
codex review --diff HEAD~3  # revisar últimos 3 commits
```

## Modos

### Modos de Aprobación

| Command | Description |
|---------|-------------|
| `suggest` | Mostrar cambios propuestos, requiere aprobación para cada edición y comando |
| `auto-edit` | Aplicar ediciones automáticamente, requiere aprobación para comandos shell |
| `full-auto` | Aplicar ediciones y ejecutar comandos sin aprobación |

### Establecer el Modo

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

## Configuración

### Archivo de Config

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

*Overrides por proyecto: .codex/config.yaml en la raíz del proyecto*

### Instrucciones del Proyecto

```
# AGENTS.md (in project root)
- Run tests with: uv run pytest
- Use ruff for linting
- Never modify migration files
```

### Opciones de Config Útiles

| Command | Description |
|---------|-------------|
| `model` | Modelo a usar (ej., `o4-mini`, `o3`) |
| `approval_mode` | Modo de aprobación por defecto |
| `providers` | Config del proveedor API (clave, URL base) |
| `history` | Guardar historial de conversación: `true` / `false` |

## Sandbox

### Cómo Funciona

> Codex ejecuta comandos en un entorno aislado (sandbox)
para evitar efectos secundarios no deseados. El acceso
a la red está deshabilitado por defecto. Las escrituras
de archivos están restringidas al directorio del proyecto.

### Opciones de Sandbox

| Command | Description |
|---------|-------------|
| `macOS` | Apple Seatbelt (por defecto, integrado) |
| `Linux` | Sandbox basado en Docker |
| `--full-auto` | Requiere que el sandbox esté habilitado |
| `--dangerously-auto-approve` | Omitir sandbox (no recomendado) |

## Consejos

### Prompts Efectivos

| Command | Description |
|---------|-------------|
| `Sé específico` | "add retry logic to fetch_data()" > "improve code" |
| `Referencia archivos` | "fix the bug in src/auth.py" acota el alcance |
| `Establece límites` | "don't change the public API" define restricciones |
| `Itera` | Sigue refinando en la misma sesión |

### Patrones de Flujo de Trabajo

```
# Explore → plan → execute
codex "explain the auth module"
codex "plan how to add OAuth support"
codex --approval-mode auto-edit "add OAuth"

# Review before commit
git add -A
codex review
```

### Flags Comunes

| Command | Description |
|---------|-------------|
| `--model, -m` | Override del modelo para esta sesión |
| `--approval-mode` | Establecer modo de aprobación |
| `--quiet, -q` | Salida mínima |
| `--no-project-doc` | Ignorar AGENTS.md |
