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 servidor MCP. |
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 servidor MCP:
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
Seleccione Amazon Bedrock con --provider amazon-bedrock y especifique un
modelo de Bedrock explícito con --model:
npx @openai/codex-security scan . \
--provider amazon-bedrock \
--model openai.gpt-5.6-solEstablezca AWS_REGION y autentíquese con AWS_BEARER_TOKEN_BEDROCK, claves de acceso estándar de AWS,
un perfil de AWS, identidad web, credenciales de contenedor o la
cadena predeterminada de credenciales de AWS. Los análisis de Bedrock utilizan credenciales de AWS en lugar de
--auth, una sesión de ChatGPT o una API key de OpenAI. Tanto scan como bulk-scan
admiten --provider.
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 workers y el tiempo de ejecución:
| Argumento | Descripción |
|---|---|
--workers N |
Límite de workers simultáneos e independientes de análisis estándar. El valor predeterminado es 4. |
--subagents N |
Subagentes disponibles para cada worker. El valor predeterminado es 3. |
--stop-after-no-new N |
Detenerse después de que N análisis de workers 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 workers 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 workers, permita hasta diez ejecuciones y detenga la ejecución de los workers 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 workers sin finalizar, conserva los resultados
de los análisis completados y los agrega al informe final. Si ningún worker termina
la revisión del código fuente, el análisis registra una cobertura parcial y devuelve el código de salida 2.
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 workers 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. Utilice --post-scan-prompt-file para ejecutar instrucciones
de seguimiento en la misma sesión autenticada después de análisis correctos y de
análisis con cobertura incompleta o errores:
npx @openai/codex-security scan . \
--scan-prompt-file security-focus.md \
--post-scan-prompt-file follow-up.mdPor ejemplo, utilice la indicación 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 |
Confirmar 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 censurados 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 límite de gasto estricto. Las solicitudes ya 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 agregue los resultados completados de los workers, la CLI sella los
resultados disponibles, marca la cobertura como partial y devuelve el código de salida 2.
De lo contrario, devuelve 2 y deja en el disco cualquier salida parcial 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 distintos sin escribir TOML:
npx @openai/codex-security scan . --model gpt-5.6-terra --effort highPonga 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-5.6-terra"'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
Detecte y analice repositorios de GitHub o ejecute un análisis reanudable desde 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 la detección interactiva:
npx @openai/codex-security bulk-scan --model gpt-5.6-terra --effort highPara 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.Utilice --knowledge-base PATH para compartir documentos de seguridad entre todos los
repositorios. Utilice --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 esa indicación
compartida. --post-scan-prompt-file FILE ejecuta instrucciones de seguimiento después de cada
análisis, incluidos los análisis con cobertura incompleta o errores. 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. El valor predeterminado de --mode
es standard y el de --max-attempts es 1. Establezca
--max-attempts para reintentar errores de repositorio o análisis. Los análisis completados con
cobertura incompleta no se vuelven a intentar. Sus resultados siguen disponibles y el
comando devuelve el código de salida 2.
Vuelva a ejecutar el mismo comando para reanudar desde un directorio de salida existente. La CLI omite los análisis completados, incluidos aquellos con cobertura incompleta.
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 workers. Estos registros no están censurados 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 un resultado con formato legible por máquinas que contenga toda la información.
Relacionar y comparar hallazgos
Compare dos análisis para encontrar hallazgos nuevos, persistentes, reabiertos, 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 el análisis posterior tiene una cobertura incompleta o no
abarca la ubicación original del hallazgo. Añada --force a match cuando necesite
volver a calcular una relación 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.
Tenga en cuenta que los hallazgos anteriores permanecen abiertos hasta que se resuelven o descartan (su ausencia en el análisis más reciente no se interpreta como prueba de 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 confirmar únicamente 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 servidor MCP, 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 están censurados 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 censurados 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, la cobertura, 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:
REPORT /path/to/scan/report.md
FINDINGS 4 (3 confirmed this scan; 1 previously found; 1 critical, 2 high, 1 informational)
COVERAGE complete
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 mostrando el resultado JSON completo cuando una política de gravedad
devuelve el código de salida 1 o una cobertura incompleta devuelve el código de salida 2.
Artefactos del análisis
Un análisis completado mantiene juntos el informe legible y los artefactos estructurados:
<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, productor y registros de artefactos sellados del análisis. |
findings.json |
Identificadores de hallazgos, gravedad, confianza, taxonomía, ubicaciones, evidencia, validación, flujo de datos, accesibilidad y remediación. |
coverage.json |
Superficies revisadas, exclusiones, trabajo aplazado, preguntas abiertas y exhaustividad de la cobertura. |
report.md |
Informe de análisis legible. |
artifacts/ |
Artefactos auxiliares del análisis. |
exports/results.sarif |
SARIF generado durante el análisis, cuando está presente. |
La exhaustividad de la cobertura tiene tres valores:
complete: El análisis registra una cobertura completa del alcance seleccionado.partial: El análisis registra trabajo aplazado u otros límites de cobertura.unknown: El análisis informa de que la exhaustividad de la cobertura es desconocida.
Revise las superficies aplazadas, las exclusiones explícitas y las preguntas abiertas antes de utilizar la cobertura como evidencia para una decisión de seguridad.
Códigos de salida y señales
La CLI utiliza estos códigos de salida:
| Salida | Condición |
|---|---|
0 |
Un análisis finalizó con cobertura completa y superó su política de gravedad, un análisis masivo o una publicación finalizó sin errores, u otro comando se ejecutó correctamente. |
1 |
Un análisis completado informa de un hallazgo con una gravedad igual o superior a la configurada. |
2 |
La CLI encontró un error de entrada, del entorno de ejecución o de exportación; un análisis tiene cobertura incompleta; un análisis masivo tiene repositorios con errores; o una publicación tiene uno o más hallazgos fallidos. |
130 |
Ctrl-C interrumpió un análisis o una publicación. |
143 |
SIGTERM finalizó un análisis o una publicación. |
Cualquier análisis con cobertura partial o unknown devuelve 2, incluso sin una
política de gravedad. Cuando se 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 después de una interrupción o un error del entorno
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 tokens de API y credenciales de nube no relacionados. Analice únicamente repositorios en los que confíe y que tenga permiso para evaluar, y proporcione solo las credenciales que requiera el 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 22 (22.13.0 o posterior), 24 o 26. 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. Utilice --python con scan, bulk-scan o
export, o establezca 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|-