Referencia de Codex Security CLI
Argumentos, formatos de salida, artefactos de análisis, proveedores y códigos de salida de Codex Security CLI.
Utilice esta referencia para consultar los comandos, indicadores,
formatos de salida y comportamientos de salida compatibles con codex-security. Para realizar un primer análisis guiado, comience con el
inicio rápido de la CLI.
Ejecute la CLI con npx @openai/codex-security.
Descripción general de los comandos
usage: codex-security [--version] <command> [options]La CLI proporciona estos comandos:
| Comando | Propósito |
|---|---|
codex-security scan |
Ejecutar un análisis de Codex Security. |
codex-security install-hook |
Instalar un análisis de seguridad Git previo al commit. |
codex-security bulk-scan |
Detectar repositorios y ejecutar análisis masivos reanudables. |
codex-security scans |
Enumerar, inspeccionar, comparar y recuperar registros de análisis guardados. |
codex-security findings |
Revisar y actualizar hallazgos de seguridad guardados. |
codex-security export |
Exportar hallazgos completados como CSV, JSON o SARIF. |
codex-security publish |
Publicar en Linear los hallazgos de análisis completados. |
codex-security validate |
Comprobar uno o más posibles hallazgos de seguridad. |
codex-security patch |
Corregir uno o más problemas de seguridad. |
codex-security login |
Iniciar sesión, almacenar credenciales o comprobar el estado de la sesión. |
codex-security logout |
Eliminar la sesión almacenada. |
codex-security info |
Mostrar metadatos de solo lectura del SDK y del plugin incluido. |
La CLI también proporciona estos comandos de integración:
| Comando | Propósito |
|---|---|
codex-security completions |
Generar scripts de autocompletado del shell. |
codex-security mcp |
Registrar la CLI como MCP server. |
codex-security skills |
Sincronizar las habilidades de Codex Security con los agentes. |
Enumere todos los comandos disponibles:
npx @openai/codex-security --helpAñada --help a un comando para consultar sus argumentos y opciones:
npx @openai/codex-security scan --helpcodex-security --version muestra la versión instalada y finaliza.
codex-security info --json informa de las versiones del SDK y del plugin incluido.
Ninguno de estos comandos requiere Python.
Detectar comandos y conectar agentes
Muestre el manifiesto de comandos legible por agentes:
npx @openai/codex-security --llmsInspeccione el esquema de argumentos del análisis como JSON:
npx @openai/codex-security scan --schema --format jsonGenere el autocompletado del shell para Bash:
npx @openai/codex-security completions bashSustituya bash por zsh o fish para esos shells.
Los resultados de análisis admiten --format toon|json|yaml|jsonl y --full-output. Este
--format del framework es independiente de --export-format, que selecciona
el formato de un artefacto exportado desde un análisis completado. La ayuda global de los comandos
también enumera md, pero los resultados de análisis no admiten salida Markdown.
Registre la CLI como MCP server:
npx @openai/codex-security mcp addSincronice las habilidades de Codex Security con sus agentes:
npx @openai/codex-security skills addMCP solo expone el comando de metadatos de solo lectura info. Los análisis, las exportaciones,
la autenticación, la validación y la aplicación de correcciones siguen estando disponibles únicamente en la CLI.
codex-security scan
Ejecute un análisis en un repositorio, rutas seleccionadas, cambios confirmados o el árbol de trabajo.
usage: codex-security scan [-h] [--auth {auto,chatgpt,api-key}]
[--provider {openai,openrouter,fireworks,amazon-bedrock}]
[--path PATH | --diff BASE | --working-tree]
[--head HEAD] [--base BASE]
[--knowledge-base PATH] [--scan-prompt-file FILE]
[--post-scan-prompt-file FILE]
[--mode {standard,deep}] [--workers N]
[--subagents N] [--stop-after-no-new N]
[--max-discovery-runs N] [--max-time-hours HOURS]
[--model MODEL]
[--effort {minimal,low,medium,high,xhigh,max}]
[--output-dir DIR]
[--archive-existing]
[--plugin-path PATH] [--python PATH]
[--codex KEY=VALUE] [--fail-on-severity LEVEL]
[--patch] [--patch-severity {critical,high,medium,low}]
[--create-pr]
[--max-cost USD] [--dry-run] [--headless] [--verbose]
[--json] [--format {toon,json,yaml,jsonl}]
[--full-output] [repository]El valor predeterminado de repository es el directorio actual.
Seleccionar la autenticación del análisis
Utilice --auth auto, la opción predeterminada, para seleccionar las credenciales automáticamente. Cuando están disponibles tanto
una sesión de ChatGPT como OPENAI_API_KEY o CODEX_API_KEY,
los análisis interactivos con salida de texto preguntan qué credencial utilizar. Los análisis de CI, JSON y
JSONL, así como otros análisis sin una terminal interactiva, utilizan la
API key del entorno. Las ejecuciones de prueba no solicitan ni cargan credenciales.
Para utilizar sus credenciales almacenadas, pase --auth chatgpt:
npx @openai/codex-security scan . --auth chatgptPara utilizar una API key del entorno, pase --auth api-key:
npx @openai/codex-security scan . --auth api-keyPara establecer las credenciales almacenadas como opción automática predeterminada, ejecute
unset OPENAI_API_KEY CODEX_API_KEY.
Utilizar OpenRouter o Fireworks
Seleccione OpenRouter con su API key y un modelo explícito:
export OPENROUTER_API_KEY="your-openrouter-api-key"
npx @openai/codex-security scan . \
--provider openrouter \
--model anthropic/claude-sonnet-4.5Seleccione Fireworks con su API key y un modelo explícito:
export FIREWORKS_API_KEY="your-fireworks-api-key"
npx @openai/codex-security scan . \
--provider fireworks \
--model accounts/fireworks/models/qwen3-235b-a22bAmbos proveedores también admiten bulk-scan.
Utilizar Amazon Bedrock
Utilice --provider amazon-bedrock y un ID de modelo de Bedrock con scan o
bulk-scan. Una vez que AWS habilita el acceso al modelo, los análisis utilizan credenciales de AWS
sin --auth, un inicio de sesión de OpenAI ni una API key de OpenAI.
Daybreak Blue y Daybreak Red
Daybreak Blue y Daybreak Red requieren la aprobación de Trusted Access for Cyber. Para solicitar acceso, envíe la solicitud de acceso empresarial o contacte con su equipo de cuentas de OpenAI. Tras la aprobación, trabaje con su equipo de cuentas de AWS para habilitar el acceso al modelo en Amazon Bedrock.
La aprobación de Daybreak Red no incluye acceso a GPT-5.6-Cyber. GPT-5.6-Cyber requiere una aprobación independiente del Gobierno de Estados Unidos (USG). Pida a su equipo de cuentas de OpenAI que solicite esta aprobación adicional antes de habilitar GPT-5.6-Cyber en Amazon Bedrock. Consulte los requisitos de acceso a Daybreak.
| Acceso | ID del modelo de Bedrock | Región de AWS |
|---|---|---|
| Daybreak Blue | openai.gpt-daybreak-blue-5.6-sol |
us-east-2 |
| Daybreak Red | openai.gpt-5.6-cyber |
us-east-2 |
Para consultar la disponibilidad, revise las fichas de los modelos de AWS para Daybreak Blue y Daybreak Red.
Para realizar un análisis con Daybreak Blue, sustituya <aws-profile-name> por un perfil de AWS
que tenga acceso al modelo Daybreak Blue:
export AWS_PROFILE="<aws-profile-name>"
export AWS_REGION="us-east-2"
npx @openai/codex-security scan . \
--provider amazon-bedrock \
--model openai.gpt-daybreak-blue-5.6-sol --effort highPara realizar un análisis con Daybreak Red, elija un perfil de AWS con acceso a GPT-5.6-Cyber. Este puede ser distinto del perfil que utiliza para Daybreak Blue:
export AWS_PROFILE="<aws-profile-name>"
export AWS_REGION="us-east-2"
npx @openai/codex-security scan . \
--provider amazon-bedrock \
--model openai.gpt-5.6-cyber --effort highTambién puede autenticarse con AWS_BEARER_TOKEN_BEDROCK o con la cadena estándar de
credenciales de AWS. Las claves de acceso temporales requieren AWS_SESSION_TOKEN.
Configure las credenciales y AWS_REGION en la misma sesión de shell o tarea de CI que el análisis.
Resultados locales y comprobaciones de acceso
Los informes locales guardados, scans show y export funcionan sin credenciales de la nube.
Para subir hallazgos a Codex Security Cloud, se requiere iniciar sesión por separado en ChatGPT
y tener acceso al destino.
info y scan --dry-run no comprueban las credenciales de AWS ni el acceso al modelo. Ejecute un
análisis para comprobar el acceso. Si se producen errores de autenticación de AWS o de acceso denegado, revise
sus credenciales, la región y los permisos del modelo.
Estado de la versión para Bedrock
@openai/codex-security@0.1.31 admite análisis con Amazon Bedrock. Esta versión
no proporciona estimaciones de costos ni admite --max-cost para los ID de los modelos Daybreak Blue
y Daybreak Red indicados anteriormente.
Compruebe las versiones del paquete instalado y de Codex incluido en él:
npx @openai/codex-security --version
npx @openai/codex-security info --jsonUtilice npx @openai/codex-security scan --help para consultar las opciones disponibles
en la versión que tiene instalada.
Seleccionar el objetivo del análisis
Elija un tipo de objetivo para cada análisis.
| Argumento | Descripción |
|---|---|
--path PATH |
Analizar una ruta relativa al repositorio. Repita el indicador para añadir más rutas. |
--diff BASE |
Analizar los cambios confirmados desde BASE hasta --head. El valor predeterminado de la revisión de cabecera es HEAD. |
--head HEAD |
Establecer la revisión de cabecera para --diff. |
--working-tree |
Analizar los cambios preparados y no preparados con respecto a --base. El valor predeterminado de la base es HEAD. |
--base BASE |
Establecer la revisión base para --working-tree. |
--mode {standard,deep} |
Seleccionar el modo de análisis. El valor predeterminado es standard. |
--path, --diff y --working-tree son mutuamente excluyentes. --head
requiere --diff y --base requiere --working-tree. El modo profundo admite
repositorios y rutas como objetivos.
Los análisis de diferencias y del árbol de trabajo requieren que el argumento del repositorio sea la raíz del árbol de trabajo de Git. Las referencias seleccionadas deben existir en ese checkout.
Analice todo el repositorio:
npx @openai/codex-security scan .Analice rutas seleccionadas:
npx @openai/codex-security scan . --path src --path testsAnalice cambios confirmados:
npx @openai/codex-security scan . --diff origin/main --head HEADAnalice cambios preparados y no preparados:
npx @openai/codex-security scan . --working-tree --base HEADEjecute una revisión más profunda del repositorio:
npx @openai/codex-security scan . --mode deepConfigurar análisis profundos
Utilice estas opciones con --mode deep para controlar la concurrencia de los procesos de trabajo y el tiempo de ejecución:
| Argumento | Descripción |
|---|---|
--workers N |
Límite de procesos de trabajo simultáneos e independientes de análisis estándar. El valor predeterminado es 4. |
--subagents N |
Subagentes disponibles para cada proceso de trabajo. El valor predeterminado es 3. |
--stop-after-no-new N |
Detenerse después de que N análisis de procesos de trabajo completados consecutivos no encuentren problemas nuevos. El valor predeterminado es 4. |
--max-discovery-runs N |
Límite del total de ejecuciones independientes de análisis estándar. El valor predeterminado es 40. |
--max-time-hours HOURS |
Límite del tiempo de ejecución de los procesos de trabajo en horas. El valor predeterminado es 96; acepta fracciones. |
--subagents acepta cero o un entero positivo. --max-time-hours acepta un
número positivo no superior a 96. Las demás opciones requieren un entero
positivo. Estas opciones no están disponibles para los análisis estándar.
Por ejemplo, utilice dos procesos de trabajo, permita hasta diez ejecuciones y detenga la ejecución de los procesos de trabajo después de 1,5 horas:
npx @openai/codex-security scan . \
--mode deep \
--workers 2 \
--subagents 0 \
--stop-after-no-new 3 \
--max-discovery-runs 10 \
--max-time-hours 1.5Cuando vence el límite de tiempo, el análisis detiene los procesos de trabajo sin terminar, conserva los resultados de análisis completados y los combina en el informe final. Consulte el informe para ver las áreas revisadas y el trabajo pendiente. El plazo por sí solo no determina el código de salida; lo determinan el estado de ejecución y la política de gravedad.
Establezca valores predeterminados persistentes en ~/.codex/codex-security/config.toml o en
$CODEX_HOME/codex-security/config.toml cuando configure CODEX_HOME:
[deep_scan]
workers = 2
subagents = 0
stop_after_no_new = 3
max_discovery_runs = 10
max_time_hours = 1.5Las opciones de la línea de comandos anulan estos valores predeterminados. scan --workers controla
los procesos de trabajo independientes de análisis estándar dentro de un análisis profundo; bulk-scan --workers
controla los análisis simultáneos de repositorios. Establezca stop_after_consecutive_errors únicamente
en el archivo TOML; su valor predeterminado es 3.
Añadir contexto de seguridad
Utilice --knowledge-base PATH para proporcionar documentos de arquitectura, modelos de amenazas
o políticas de seguridad. Repita la opción para añadir más archivos o directorios:
npx @openai/codex-security scan . \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesLos documentos compatibles incluyen archivos .md, .markdown, .txt, .pdf y .docx.
La CLI busca recursivamente en los directorios, rechaza las rutas de entrada enlazadas,
omite las entradas enlazadas de los directorios y mantiene el contenido extraído de los documentos
fuera de los resultados de análisis guardados.
Añadir instrucciones de análisis
Para añadir instrucciones de análisis, proporcione un archivo de texto o Markdown con
--scan-prompt-file. Use --post-scan-prompt-file para ejecutar instrucciones de
seguimiento en la misma sesión autenticada después de los análisis satisfactorios y de
los errores de análisis:
npx @openai/codex-security scan . \
--scan-prompt-file security-focus.md \
--post-scan-prompt-file follow-up.mdPor ejemplo, utilice el prompt del análisis para centrarse en los límites de autorización y solicite
que el seguimiento escriba un nuevo post-scan-summary.md en el directorio del análisis.
Si el seguimiento falla, la CLI informa de una advertencia y conserva el análisis completado.
El seguimiento no se ejecuta después de una cancelación ni cuando el análisis alcanza su límite de costo.
Establecer opciones de salida y políticas
Utilice estas opciones para conservar artefactos y resultados anteriores o crear un resultado legible por máquinas.
| Argumento | Descripción |
|---|---|
--output-dir DIR |
Escribir los artefactos del análisis en un directorio privado fuera del árbol de trabajo de Git que los contiene. El valor predeterminado es el estado persistente de Codex Security. |
--archive-existing |
Mover los resultados existentes a DIR.previous-<timestamp>-<id> y comenzar con un directorio de salida vacío. Requiere --output-dir. |
--fail-on-severity LEVEL |
Devolver el código de salida 1 cuando un análisis completado informe de un hallazgo con una gravedad igual o superior a critical, high, medium o low. |
--patch |
Corregir y verificar los hallazgos seleccionados después de un análisis completo. |
--patch-severity LEVEL |
Corregir los hallazgos con una gravedad igual o superior a critical, high, medium o low. El valor predeterminado es low. |
--create-pr |
Crear un commit con los archivos de corrección verificados y abrir una solicitud de incorporación de cambios en GitHub. Requiere --patch. |
--max-cost USD |
Detener un análisis cuando el costo estimado del modelo supere el importe especificado en USD. |
--dry-run |
Comprobar el repositorio, el objetivo, la base de conocimientos, el directorio de salida y la configuración de Codex sin iniciar un análisis. |
--headless |
Mostrar el progreso en texto sin formato en lugar del panel interactivo del análisis. |
--verbose |
Mostrar en stderr diagnósticos con información confidencial ocultada del ciclo de vida, la autenticación, el progreso y el costo. |
--json |
Mostrar el manifiesto, los hallazgos, la cobertura, las rutas y los metadatos de los turnos como un único documento JSON. |
--format FORMAT |
Mostrar el resultado completo del análisis como toon, json, yaml o jsonl. |
--full-output |
Mostrar el resultado completo con el formato de salida estructurado predeterminado. |
El límite de costo es una estimación, no un tope de gasto estricto. Las solicitudes que ya están en
curso pueden finalizar ligeramente por encima del límite. Si un análisis profundo alcanza el límite
después de que Codex Security combine los resultados completados de los procesos de trabajo, la CLI puede sellar un
resultado completado e informar de la advertencia de presupuesto. Devuelve 0, o 1 si
los hallazgos alcanzan el umbral de gravedad configurado. Si no puede generar un resultado
completado válido, devuelve 2 y deja en disco cualquier salida disponible.
Cuando se omite --output-dir, los resultados persisten en
$CODEX_HOME/state/plugins/codex-security/scans/<repository>. El valor predeterminado de CODEX_HOME
es ~/.codex. Establezca CODEX_SECURITY_STATE_DIR para conservar los resultados en
$CODEX_SECURITY_STATE_DIR/scans/<repository>. Estos directorios pueden
contener extractos de código fuente y detalles de vulnerabilidades, por lo que debe gestionar sus permisos
y su retención de forma adecuada.
El entorno de trabajo conserva el historial de análisis en
$CODEX_HOME/state/plugins/codex-security/workbench.sqlite3. Configurar
CODEX_SECURITY_STATE_DIR también mueve la base de datos del entorno de trabajo.
El directorio de salida debe estar fuera del directorio analizado y de cualquier
árbol de trabajo de Git que lo contenga. Un análisis puede sustituir un directorio de resultados existente con
--archive-existing.
Para conservar los resultados anteriores antes de reutilizar un directorio de salida:
npx @openai/codex-security scan . \
--output-dir /path/outside/repository/results \
--archive-existingLos análisis solo generan informes de forma predeterminada. Añada --fail-on-severity para evaluar una
política de gravedad en CI:
npx @openai/codex-security scan . \
--diff origin/main \
--output-dir /path/outside/repository/results \
--json \
--fail-on-severity high \
> /path/outside/repository/codex-security.jsonUna ejecución de prueba comprueba las entradas locales, incluidos los documentos de la base de conocimientos, sin cargar credenciales, iniciar Codex ni sondear el intérprete de Python del plugin:
npx @openai/codex-security scan . \
--output-dir /path/outside/repository/results \
--dry-runConfigurar el entorno de ejecución
Utilice las opciones del entorno de ejecución cuando necesite un modelo, un intérprete, un plugin o un valor de configuración de Codex explícitos.
| Argumento | Descripción |
|---|---|
--auth {auto,chatgpt,api-key} |
Seleccionar las credenciales del análisis. El valor predeterminado es auto. |
--provider {openai,openrouter,fireworks,amazon-bedrock} |
Seleccionar el proveedor de inferencia. El valor predeterminado es openai. |
--model MODEL |
Seleccionar el modelo. El valor predeterminado es gpt-5.6-sol. Es obligatorio para OpenRouter, Fireworks y Amazon Bedrock. |
--effort {minimal,low,medium,high,xhigh,max} |
Seleccionar el esfuerzo de razonamiento del modelo. El valor predeterminado es xhigh. |
--plugin-path PATH |
Utilizar un directorio o archivo ZIP de un plugin de Codex Security para sustituir el plugin incluido. |
--python PATH |
Seleccionar el intérprete de Python para el entorno de ejecución del plugin. |
--codex KEY=VALUE |
Anular un valor aislado de configuración de Codex. Los valores utilizan sintaxis TOML. Repita el indicador para añadir más valores. |
Para seleccionar un modelo y un esfuerzo de razonamiento diferentes sin escribir TOML, elija un modelo al que sus credenciales permitan acceder. Si inicia sesión con ChatGPT, consulte la disponibilidad de GPT-6.1 Sol antes de usar estos ejemplos:
npx @openai/codex-security scan . --model gpt-6.1-sol --effort mediumPonga entre comillas los valores de cadena que se pasen mediante --codex para que el analizador TOML reciba una
cadena:
npx @openai/codex-security scan . --codex 'model="gpt-6.1-sol"'codex-security install-hook
Instale una comprobación de seguridad Git previa al commit para el repositorio actual:
npx @openai/codex-security install-hookLa comprobación analiza los cambios preparados y no preparados antes de cada commit y bloquea
los hallazgos de gravedad alta o los errores de análisis. Respeta core.hooksPath y no
sustituye un script previo al commit existente. Establezca un umbral de gravedad distinto
cuando sea necesario:
npx @openai/codex-security install-hook . --fail-on-severity mediumcodex-security bulk-scan
Descubra y analice repositorios de GitHub, o ejecute un análisis reanudable a partir de un CSV de repositorios.
Para obtener una guía completa sobre la detección en GitHub, los inventarios CSV, los resultados de campañas y los análisis en contenedores, consulte Ejecutar análisis de seguridad masivos.
usage: codex-security bulk-scan [input] [--output-dir DIR]
[--workers N] [--mode {standard,deep}]
[--provider {openai,openrouter,fireworks,amazon-bedrock}]
[--model MODEL]
[--effort {minimal,low,medium,high,xhigh,max}]
[--knowledge-base PATH]
[--scan-prompt-file FILE]
[--post-scan-prompt-file FILE]
[--max-attempts N] [--plugin-path PATH]
[--python PATH] [--codex KEY=VALUE]Ejecute npx @openai/codex-security bulk-scan sin argumentos para seleccionar
repositorios de forma interactiva. Este flujo requiere una sesión iniciada en GitHub CLI.
Para elegir un modelo y un esfuerzo de razonamiento durante el descubrimiento interactivo, use un modelo al que sus credenciales permitan acceder. Consulte la disponibilidad de GPT-6.1 Sol al iniciar sesión con ChatGPT:
npx @openai/codex-security bulk-scan --model gpt-6.1-sol --effort mediumPara una lista de repositorios preparada, proporcione un CSV y --output-dir:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4El CSV requiere las columnas id, repository y revision. Las revisiones deben ser
hashes de commit completos. Las columnas opcionales scope, mode y prompt configuran
repositorios individuales:
id,repository,revision,scope,mode,prompt
service,https://github.com/example/service.git,0123456789abcdef0123456789abcdef01234567,src,standard,Review authorization boundaries.Use --knowledge-base PATH para compartir documentos de seguridad entre todos los
repositorios. Use --scan-prompt-file FILE para añadir instrucciones de análisis compartidas; la
columna prompt del CSV añade instrucciones específicas del repositorio después de esas
instrucciones compartidas. --post-scan-prompt-file FILE ejecuta instrucciones de seguimiento después de cada
análisis, incluidos los errores de análisis. No se ejecuta después de
una cancelación ni cuando un análisis alcanza su límite de costo.
--workers limita los análisis simultáneos de repositorios y su valor predeterminado es 4. --mode
tiene el valor predeterminado standard, y el de --max-attempts es 1. Configure
--max-attempts para reintentar tras errores del repositorio o del análisis. Los análisis completados no se
reintentan por lagunas de cobertura ni por incumplimientos de la política de gravedad. Sus resultados
siguen disponibles.
Vuelva a ejecutar el mismo comando para reanudar desde un directorio de salida existente. La CLI omite los análisis completados, incluidos aquellos con lagunas de cobertura.
Para campañas en contenedores, consulte Ejecutar análisis masivos en Docker.
codex-security scans
Buscar análisis guardados
Enumere los análisis guardados del directorio actual:
npx @openai/codex-security scansEnumere los análisis de otro repositorio:
npx @openai/codex-security scans list /path/to/repositoryBusque los análisis almacenados en un directorio de salida específico:
npx @openai/codex-security scans list --scan-root /path/outside/repository/resultsInspeccionar o repetir un análisis
Muestre los resultados y la configuración de un análisis guardado:
npx @openai/codex-security scans show SCAN_IDAñada --show-linked-findings para incluir enlaces a hallazgos de análisis anteriores.
Vuelva a ejecutar el análisis en el checkout actual con su configuración original:
npx @openai/codex-security scans rerun SCAN_IDLa nueva ejecución requiere la versión del plugin registrada por el análisis original. Si la versión instalada es distinta, el comando se detiene en lugar de ejecutarse con un plugin diferente.
Inspeccionar registros de análisis guardados
Lea todos los eventos de sesión guardados de un análisis y sus procesos de trabajo. Estos registros no ocultan información confidencial y pueden contener código fuente o credenciales, así que revíselos antes de compartirlos:
npx @openai/codex-security scans logs SCAN_IDAñada --json para obtener una salida estructurada.
Relacionar y comparar hallazgos
Compare dos análisis para identificar hallazgos nuevos, persistentes, reabiertos, no observados, resueltos y desconocidos:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDLa comparación relaciona automáticamente los hallazgos que comparten la misma causa raíz
y reutiliza las relaciones guardadas. Para guardar relaciones explícitamente, utilice scans match:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDUn hallazgo es desconocido cuando su ruta está excluida o su coincidencia es incierta. Si
el análisis posterior no lo encuentra en el código que analizó, se considera no observado.
Solo se considera resuelto un hallazgo cerrado explícitamente como ya corregido. Añada --force
a match cuando necesite recalcular una coincidencia existente.
Para relacionar todos los análisis completados del repositorio actual, incluidos los análisis de otros checkouts:
npx @openai/codex-security scans match --allLos resultados pueden variar incluso si vuelve a ejecutar la misma configuración. La relación y
la comparación permiten hacer un seguimiento de los cambios; no hacen que los resultados sean deterministas ni demuestran que una
vulnerabilidad ya no existe. Utilice validate para volver a comprobar un hallazgo crítico para la seguridad
con el código actual.
codex-security findings
Enumere los hallazgos abiertos de todos los análisis del repositorio actual:
npx @openai/codex-security findings listPase una ruta de repositorio para inspeccionar otro checkout:
npx @openai/codex-security findings list /path/to/repositoryAñada --json para obtener una salida estructurada. La lista identifica los hallazgos observados en el
análisis más reciente y los hallazgos anteriores que no se confirmaron en ese análisis.
Los hallazgos anteriores permanecen abiertos hasta que se resuelven o descartan. Su ausencia en el análisis más reciente no demuestra que se hayan corregido.
Para registrar un hallazgo revisado como falso positivo:
usage: codex-security findings false-positive OCCURRENCE_ID
--reason REASONInspeccione el análisis guardado para identificar la aparición del hallazgo:
npx @openai/codex-security scans show SCAN_IDRegistre una explicación específica para el falso positivo:
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The framework escapes this input before it reaches the query"El motivo no puede estar vacío. Codex Security guarda la decisión para el repositorio y la proporciona como contexto para análisis futuros. Cada análisis vuelve a comprobar de forma independiente el código fuente, los controles y la accesibilidad actuales. Una decisión anterior no omite una regla, una ruta ni una clase de vulnerabilidad.
codex-security export
Exporte CSV, JSON o SARIF desde un análisis completado y sellado. La exportación valida los artefactos del análisis antes de escribir la salida y no modifica el entorno de ejecución ni las credenciales de Codex.
usage: codex-security export [--export-format {csv,json,sarif}]
[--output FILE|-] [--source-root PATH]
[--python PATH] scan_dirscan_dir es el directorio del análisis completado.
| Argumento | Descripción |
|---|---|
--export-format {csv,json,sarif} |
Seleccionar el formato de exportación. El valor predeterminado es sarif. |
--output FILE|- |
Escribir el formato seleccionado en un archivo o en stdout. El valor predeterminado es un archivo en el directorio actual. |
--source-root PATH |
Añadir huellas digitales de líneas de código fuente a SARIF mediante un checkout del repositorio. |
--python PATH |
Seleccionar el intérprete de Python para el exportador incluido. |
--source-root solo funciona con --export-format sarif. JSON conserva
el documento de hallazgos sellado. CSV contiene columnas portátiles de hallazgos y no
incluye el estado de clasificación del entorno de trabajo local.
Sin --output, la CLI escribe SARIF en results.sarif, JSON en
findings.json y CSV en findings.csv en el directorio de trabajo actual.
Las exportaciones pueden contener extractos de código fuente y detalles de vulnerabilidades. Ejecute el comando
fuera del repositorio o pase --output con una ruta privada fuera del
checkout analizado.
Escriba SARIF en un archivo:
npx @openai/codex-security export /path/to/scan \
--export-format sarif \
--source-root /path/to/repository \
--output /path/outside/repository/exports/results.sarifEscriba SARIF en stdout:
npx @openai/codex-security export /path/to/scan \
--export-format sarif \
--source-root . \
--output -Exporte los hallazgos como JSON:
npx @openai/codex-security export /path/to/scan \
--export-format json \
--output /path/outside/repository/exports/findings.jsonExporte los hallazgos como CSV:
npx @openai/codex-security export /path/to/scan \
--export-format csv \
--output /path/outside/repository/exports/findings.csvcodex-security publish scan
Publique en Linear todos los hallazgos de un análisis completado:
usage: codex-security publish scan [SCAN_DIR] --to linear
[--linear-team TEAM_ID]
[--project PROJECT_ID]
[--linear-api-key KEY]
[--linear-assignee EMAIL_OR_USER_ID]
[--dry-run] [--json]SCAN_DIR debe contener un análisis completado y sellado. Omítalo en una terminal
interactiva para seleccionar un análisis completado del historial local. La creación de incidencias
también requiere que el análisis y sus hallazgos existan en el historial local. Una ejecución de
prueba valida los artefactos sellados sin esta comprobación de persistencia.
| Argumento | Descripción |
|---|---|
--to linear |
Publicar en Linear. Este argumento es obligatorio. |
--linear-team TEAM_ID |
Seleccionar el equipo de Linear. Utiliza CODEX_SECURITY_LINEAR_TEAM cuando se omite; se requiere uno de los dos. |
--project PROJECT_ID |
Seleccionar un proyecto de Linear. Utiliza CODEX_SECURITY_LINEAR_PROJECT cuando se omite. Si no se establece ninguno, las incidencias se crean directamente en el equipo. |
--linear-api-key KEY |
Utilizar una API key personal de Linear para la publicación directa. Utiliza CODEX_SECURITY_LINEAR_API_KEY cuando se omite. |
--linear-assignee EMAIL_OR_USER_ID |
Asignar las incidencias creadas mediante una dirección de correo electrónico o un ID de usuario de Linear. Requiere --linear-api-key o CODEX_SECURITY_LINEAR_API_KEY. Si se omite, las incidencias permanecen sin asignar. |
--dry-run |
Preparar las cargas útiles de las incidencias sin iniciar Codex, contactar con Linear, crear incidencias ni escribir el estado de publicación. |
--json |
Escribir resultados de publicación estructurados en stdout. El progreso permanece en stderr. |
Cada invocación que no sea de prueba intenta crear una incidencia nueva por cada hallazgo.
Volver a publicar el mismo análisis no relaciona, actualiza ni reutiliza las incidencias existentes.
Si algunos hallazgos fallan, el comando conserva las incidencias creadas correctamente y
devuelve el código de salida 2.
Con --json, revise los resultados created y failed antes de volver a intentarlo para
evitar duplicados.
Obtenga una vista previa de las cargas útiles de las incidencias antes de publicarlas:
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--dry-run \
--jsonPublicar con la aplicación de Linear conectada
Sin una API key de Linear, el comando inicia Codex con su configuración existente y la aplicación de Linear conectada. Inicie sesión y conecte Linear con su cuenta de Codex antes de publicar:
npx @openai/codex-security login
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--project PROJECT_IDPublicar con una API key de Linear
Proporcionar --linear-api-key o CODEX_SECURITY_LINEAR_API_KEY publica
directamente mediante la API de Linear y no inicia Codex. La publicación directa
deja las incidencias sin asignar, salvo que seleccione un responsable:
export CODEX_SECURITY_LINEAR_API_KEY=YOUR_LINEAR_PERSONAL_API_KEY
npx @openai/codex-security publish scan /path/to/completed-scan \
--to linear \
--linear-team TEAM_ID \
--linear-assignee teammate@example.comLos valores de la línea de comandos anulan sus variables de entorno correspondientes. Para las API keys, prefiera CODEX_SECURITY_LINEAR_API_KEY a --linear-api-key, ya que
los argumentos de la línea de comandos pueden aparecer en el historial del shell y en las listas de procesos.
codex-security validate y codex-security patch
Compruebe si un posible hallazgo es válido:
npx @openai/codex-security validate findings.json \
"Possible SQL injection in src/query.ts:42"Genere una corrección con la habilidad de remediación incluida:
npx @openai/codex-security patch findings.json \
"Missing authorization check in src/routes.ts:18"Cada argumento posicional acepta texto literal o una ruta de archivo. Estas entradas utilizan
el directorio actual. Utilice validate para volver a comprobar un hallazgo después de una corrección o cuando un
análisis posterior deje de informarlo. Comparar análisis por sí solo no demuestra que una corrección
haya funcionado.
Utilice --effort para seleccionar el esfuerzo de razonamiento de cualquiera de los comandos:
npx @openai/codex-security validate "Possible SQL injection" --effort highCorregir hallazgos después de un análisis
Utilice scan --patch para corregir hallazgos después de un análisis completo. Esto requiere
@openai/codex-security 0.1.15 o posterior. El umbral de gravedad predeterminado es
low. Este comando selecciona los hallazgos de gravedad alta y crítica:
npx @openai/codex-security scan . --patch --patch-severity high --jsonLos hallazgos verificados y ya corregidos no activan --fail-on-severity.
Corregir hallazgos guardados
Pase un ID de hallazgo o aparición para corregir su repositorio original, o seleccione hallazgos de un análisis guardado:
npx @openai/codex-security patch OCCURRENCE_ID
npx @openai/codex-security patch --scan SCAN_ID --severity high --json
npx @openai/codex-security patch --scan latest --severity medium--scan latest selecciona el último análisis completado del repositorio actual.
Los comandos de hallazgos guardados admiten --json; las entradas de texto literal y de archivos no.
Añada --create-pr para crear un commit únicamente con los archivos de corrección verificados y abrir una solicitud de incorporación de cambios
con GitHub CLI:
npx @openai/codex-security patch --scan SCAN_ID --severity high --create-prSi falla el envío o la solicitud de incorporación de cambios, ejecute el comando patch --resume-pr BRANCH mostrado
desde el mismo repositorio para volver a intentarlo.
Corregir incidencias de Linear
Establezca CODEX_SECURITY_LINEAR_API_KEY o LINEAR_API_KEY para usar una API key personal,
o LINEAR_ACCESS_TOKEN para usar un token de OAuth. Prefiera una variable de entorno a
--linear-api-key KEY para mantener la clave fuera del historial del shell.
Importe una incidencia por ID o URL. Repita --linear-issue para seleccionar más de una
incidencia:
npx @openai/codex-security patch --linear-issue SEC-123 --linear-issue SEC-124Utilice --linear-project para seleccionar las incidencias abiertas de un proyecto. Añada --linear-filter
para restringir la selección:
npx @openai/codex-security patch --linear-project "Security backlog" \
--linear-filter '{"labels":{"name":{"eq":"security"}}}'La CLI excluye las incidencias completadas y canceladas, salvo que el filtro establezca state.
No modifica las incidencias de Linear.
codex-security login, logout y info
Inicie sesión de forma interactiva:
npx @openai/codex-security loginUtilice la autenticación del dispositivo en una máquina remota o sin interfaz gráfica:
npx @openai/codex-security login --device-authCompruebe la sesión actual:
npx @openai/codex-security login statusElimine la sesión almacenada:
npx @openai/codex-security logoutAlmacene una API key pasándola por stdin:
printenv OPENAI_API_KEY | npx @openai/codex-security login --with-api-keyAlmacene un token de acceso empresarial:
printenv CODEX_ACCESS_TOKEN | npx @openai/codex-security login --with-access-tokenInspeccione los metadatos de solo lectura del SDK y del plugin incluido:
npx @openai/codex-security info --jsonCuando expone la CLI como MCP server, info es el único comando disponible.
Los análisis, las exportaciones, la publicación, el inicio de sesión, la validación y las correcciones siguen estando disponibles únicamente en la CLI.
Leer la salida del análisis
De forma predeterminada, los análisis envían el progreso, los resúmenes de finalización y los errores a stderr
sin escribir el resultado completo en stdout. Solicite --json,
--format o --full-output para enviar resultados de análisis estructurados a stdout.
Las terminales interactivas muestran un panel en tiempo real con la fase actual del análisis,
los archivos revisados, la actividad, el uso de tokens y el costo estimado. CI y la salida
redirigida utilizan progreso en texto sin formato. Añada --headless para usar progreso en texto sin formato en
una terminal interactiva:
npx @openai/codex-security scan . --headlessEl panel también muestra detalles de la sesión en tiempo real. No ocultan información confidencial y pueden contener código fuente o credenciales. Revíselos antes de compartirlos.
Diagnósticos detallados
Añada --verbose para mostrar en stderr diagnósticos con información confidencial ocultada del ciclo de vida, la autenticación, el progreso y el costo:
npx @openai/codex-security scan . --verboseEstablezca CODEX_SECURITY_LOG_LEVEL=debug para habilitar los mismos diagnósticos sin el
indicador. LOG_LEVEL=debug también habilita los diagnósticos cuando
CODEX_SECURITY_LOG_LEVEL no está configurado.
Resumen de finalización
Un análisis completado escribe en stderr el número de hallazgos abiertos del repositorio, el desglose por gravedad, el tiempo transcurrido, la ruta del informe y el directorio de resultados. Incluye el uso de tokens y el costo estimado cuando están disponibles. Por ejemplo:
REPORT /path/to/scan/report.md
FINDINGS 4 (3 confirmed this scan; 1 previously found; 1 critical, 2 high, 1 informational)
ELAPSED 1s
TOKENS 1,250 input, 200 cached, 30 output
RESULTS /path/to/scanLos hallazgos informativos cuentan para el total del resumen. Las políticas de gravedad
evalúan únicamente los hallazgos critical, high, medium y low del análisis
actual, no los hallazgos anteriores que se muestran en el total del repositorio.
Salida JSON
scan --json escribe un documento JSON completo en stdout. Su estructura de nivel superior
es:
manifest
repositoryFindings
findings
coverage
scanDir
threadId
reportPath
artifactsDir
sarifPath
cost
turn
id
status
durationMs
finalResponse
usageAl aplicar correcciones, la salida JSON también incluye los resultados de las correcciones y cualquier solicitud de incorporación de cambios creada.
El progreso, los resúmenes de finalización, los avisos de archivado y los errores permanecen en stderr.
Un análisis completado sigue imprimiendo el resultado JSON completo cuando una política de gravedad
devuelve el código de salida 1.
Artefactos del análisis
Un análisis completado conserva juntos el informe legible y los artefactos estructurados. El manifiesto sellado registra los hashes de los artefactos para que quienes los consulten después puedan comprobar que esos archivos no han cambiado:
<scan-directory>/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when producedLos archivos estructurados cumplen funciones diferentes:
| Archivo | Contenido |
|---|---|
scan-manifest.json |
Identidad, estado, objetivo, alcance y productor del análisis, y registros de artefactos sellados. |
findings.json |
Identificadores de hallazgos, gravedad, confianza, taxonomía, ubicaciones, evidencias, validación, flujo de datos, alcanzabilidad y corrección. |
coverage.json |
Superficies revisadas, exclusiones, trabajo aplazado y preguntas abiertas. |
report.md |
Informe de análisis legible. |
artifacts/ |
Artefactos de apoyo del análisis. |
exports/results.sarif |
SARIF generado durante el análisis, si existe. |
Consulte scan.status en scan-manifest.json para conocer el estado de ejecución: completed,
failed, canceled o interrupted. Los resultados nuevos no incluyen
coverage.completeness. Revise las superficies aplazadas, las exclusiones explícitas y las
preguntas abiertas en coverage.json para comprender qué revisó el análisis.
Códigos de salida y señales
La CLI utiliza estos códigos de salida:
| Código de salida | Condición |
|---|---|
0 |
Un análisis o una campaña masiva se completó y cumplió su política de gravedad, una publicación se completó sin fallos u otro comando se ejecutó correctamente. |
1 |
Un análisis o una campaña masiva completados informa de un hallazgo con una gravedad igual o superior a la configurada. |
2 |
Se produjo un fallo de entrada, ejecución, integridad de resultados, salida requerida o exportación, o una publicación tiene uno o más hallazgos fallidos. |
130 |
Ctrl-C interrumpió un análisis o una publicación. |
143 |
SIGTERM terminó un análisis o una publicación. |
Las lagunas de cobertura no cambian el código de salida de un análisis completado ni eluden su política de
gravedad. El código de salida 0 no significa que se hayan revisado todos los archivos. Cuando solicita
una salida estructurada, los análisis completados y las
publicaciones parciales siguen escribiendo los resultados disponibles en stdout. La CLI
muestra la ubicación de cualquier salida parcial tras una interrupción o un error de
ejecución.
Permisos de análisis local
Los análisis de la CLI y el SDK se ejecutan con sus permisos locales del sistema operativo. Cada análisis
utiliza el perfil del sistema de archivos codex_security_scan y establece approvalPolicy en
"never". El perfil permite leer el sistema de archivos local y escribir en
las raíces del espacio de trabajo y en el directorio de estado del análisis seleccionado. Los análisis no se detienen para
solicitar aprobación interactiva.
La configuración proporcionada mediante --codex de la CLI o codexOverrides del SDK, incluidos
approval_policy, sandbox_mode y los permisos del sistema de archivos, no puede sustituir
ni restringir estos controles de análisis. Las restricciones del host y de red siguen aplicándose.
Los procesos de análisis y del entorno de trabajo pueden heredar su entorno, incluidos los tokens de API y las credenciales de la nube que no estén relacionados. Elimine las credenciales no relacionadas antes de iniciar un análisis.
Autenticación y requisitos previos
Establezca OPENAI_API_KEY o CODEX_API_KEY, inicie sesión con
npx @openai/codex-security login o utilice una sesión existente de Codex respaldada por archivos.
Para OpenRouter o Fireworks, establezca la API key del proveedor y seleccione un
modelo. Para Amazon Bedrock, utilice una API key de Bedrock o la cadena estándar de
credenciales de AWS.
Para seleccionar credenciales, consulte Seleccionar la autenticación del análisis.
Para CI, limite el alcance de la API key al paso del análisis y utilice un flujo de trabajo de confianza.
La CLI requiere Node.js 24 o 26, o Node.js 22 a partir de 22.13.0. Los análisis, los análisis masivos,
las exportaciones, el historial de análisis y los hallazgos guardados también requieren Python 3.10 o posterior.
Python 3.10 también requiere tomli. Use --python con scan, bulk-scan o
export, o configure PYTHON para cualquier comando basado en Python.
Continúe con el inicio rápido de la CLI, la guía de análisis masivos, las preguntas frecuentes de la CLI, la guía de CI o la guía del SDK de TypeScript.
Alias de texto sin formato
- --output FILE|-