Modo no interactivo de Codex

El modo no interactivo te permite usar Codex en scripts, pipelines de CI/CD o entornos headless. Esta sección detalla cómo configurar y usar el modo no interactivo.


Uso básico

Ejecutar una sola tarea

Comando exec básico

# Ejecutar una tarea simple
codex exec "Lista los archivos Python del directorio actual"

# Usar comillas dobles para comandos complejos
codex exec "Analiza la estructura de código del directorio src/"

Leer desde la entrada estándar

Entrada stdin

# Leer desde una tubería (pipe)
echo "Explica este código" | codex exec --stdin

# Leer desde un archivo
codex exec --stdin < task.txt

# Entrada multilínea
cat <<EOF | codex exec --stdin
Crear una función que calcule el factorial
Prueba esta función
EOF
El modo no interactivo es muy adecuado para tareas automatizadas e integración con scripts.

Parámetros de línea de comandos

Parámetros comunes

ParámetroDescripción
exec "任务"Ejecuta la tarea especificada
--stdinLee la tarea desde la entrada estándar
--model, -mEspecifica el modelo
--no-auto-approveDesactiva la confirmación automática
--output, -oSalida a archivo

Ejemplo completo

Ejemplo completo de parámetros

# Especificar el modelo
codex exec -m gpt-5.4-mini "Revisa el código"

# Salida a archivo
codex exec "Crea un README" -o README.md

# Desactivar la confirmación automática
codex exec --no-auto-approve "Ejecuta las pruebas"

# Uso combinado
codex exec -m gpt-5.4 "Revisa el PR" --output review.md

Configuración

Configuración del archivo de configuración

Configurar el modo no interactivo

# Configuración predeterminada del modo no interactivo
[exec]
# Modelo predeterminado
default_model = "gpt-5.4"

# Umbral de aprobación automática
auto_approve_threshold = "medium"

# Tiempo de espera (segundos)
timeout = 300

Política de ejecución

En el modo no interactivo, la política predeterminada suele serdeny(rechazar operaciones que puedan causar efectos secundarios):

Establecer la política de ejecución

# Usar la política ask
codex exec --approval ask "Crea un archivo"

# Usar la política approve (usar con precaución)
codex exec --approval approve "Ejecuta las pruebas"

# Usar la política deny (solo lectura)
codex exec --approval deny "Analiza el código"
Por razones de seguridad, en el modo no interactivo las operaciones que pueden causar efectos secundarios están deshabilitadas por defecto.

Integración con scripts de Shell

Script básico

Ejemplo de script de Shell

#!/bin/bash

# Usar Codex para revisión de código
codex exec "Revisa el código en el directorio src/" --output review.md

if [ $? -eq 0 ]; then
    echo "Revisión completada, los resultados se guardaron en review.md"
else
    echo "La revisión falló"
fi

Procesamiento por lotes

Script de procesamiento por lotes

#!/bin/bash

# Revisar múltiples archivos por lotes
for file in $(find src -name "*.py"); do
    echo "Revisa:$file"
    codex exec "Revisa$filearchivos" --output "review_$(basename $file).md"
done

Ejecución condicional

Ejecución condicional

#!/bin/bash

# Decidir si usar Codex según la cantidad de archivos
FILE_COUNT=$(find src -name "*.py" | wc -l)

if [ $FILE_COUNT -gt 10 ]; then
    echo "Hay muchos archivos, usa Codex para revisión por lotes"
    codex exec "Revisa todos los archivos Python" --output full_review.md
else
    echo "Hay pocos archivos, revisa uno por uno"
    for file in $(find src -name "*.py"); do
        codex exec "Revisión simple$file"
    done
fi

Integración CI/CD

GitHub Actions

Flujo de trabajo de GitHub Actions

span style="color: green;">
name: Code Review

on
: [pull_request]

jobs
:
  codex-review
:
    runs-on
: ubuntu-latest
    steps
:
      - uses
: actions/checkout@v4

      - name
: Setup Codex
        uses
: openai/codex-action@v1

      - name
: Run Code Review
        run
: |
         codex exec "Review code changes in this PR" \
            --output review.md

      - name
: Upload Review
        uses
: actions/upload-artifact@v4
        with
:
          name
: code-review
          path
: review.md

GitLab CI

Configuración de GitLab CI

span style="color: #0053A6;">
codex_review:
  image
: node:20
  before_script
:
   - npm install -g @openai/codex
  script
:
   - codex exec "Review changes in this merge request" --output review.md
  artifacts
:
    paths
:
     - review.md

Jenkins

Jenkins Pipeline

pipeline {
    agent any

    stages {
        stage('Code Review') {
            steps {
                sh 'codex exec "Review changed files" --output review.md'
            }
        }
    }

    post {
        always {
            archiveArtifacts 'review.md'
        }
    }
}
Integrar Codex en los flujos de CI/CD permite realizar revisiones de código automatizadas y controles de calidad.

Buenas prácticas

Manejo de salida

  • Usa--outputGuardar el resultado en un archivo
  • Verifica el código de retorno para determinar si la ejecución fue exitosa
  • Manejar posibles situaciones de error

Optimización de rendimiento

  • Usagpt-5.4-miniReducir costos
  • Procesar múltiples tareas por lotes
  • Establecer un tiempo de espera razonable

Seguridad

  • Evita usar--approval approve
  • Usar el modo de solo lectura en CI/CD
  • Proteger las claves de API
Al usar el modo no interactivo en entornos de producción, presta especial atención a los problemas de seguridad.

Preguntas frecuentes

P: ¿El modo no interactivo admite todas las funciones?

La mayoría de las funciones son compatibles, pero algunas que requieren confirmación interactiva pueden no estar disponibles.

P: ¿Cómo manejar las operaciones que requieren confirmación?

Usa--no-auto-approveel parámetro, o establece la política de ejecución en el archivo de configuración.

P: ¿Se puede personalizar el formato de salida?

Actualmente se admiten salida de texto plano y salida en Markdown.

P: ¿Cómo usarlo en Docker?

Instala Codex en la imagen de Docker y luego invócalo en el flujo de CI/CD.

Otras extensiones