Démarrage rapide avec Codex Security CLI
Configurez Codex Security, exécutez une analyse locale et examinez le rapport, les résultats et la couverture.
Codex Security aide les équipes de sécurité et d'ingénierie à détecter, confirmer et corriger les vulnérabilités. Utilisez son interface de ligne de commande (CLI) pour analyser les dépôts dont vous êtes propriétaire ou que vous êtes autorisé à évaluer, suivre les résultats dans le temps et vérifier les modifications avant leur intégration.
Vérifier les prérequis
La CLI nécessite Node.js 22 (22.13.0 ou version ultérieure), 24 ou 26. Les analyses, analyses groupées, exportations, historiques d'analyse et résultats enregistrés nécessitent également Python 3.10 ou une version ultérieure. Pour en savoir plus, consultez Authentification et prérequis.
Configurer et vérifier la CLI
Exécutez la CLI avec npx et vérifiez sa version :
npx @openai/codex-security --versionPour afficher à la fois la version du package et celle du plugin inclus, exécutez :
npx @openai/codex-security info --jsonConsultez les versions de la CLI et du SDK pour connaître les modifications du package.
Répertoriez les commandes disponibles :
npx @openai/codex-security --helpConsultez également la référence de la CLI.
Se connecter
Pour une utilisation locale, connectez-vous avec votre compte ChatGPT :
npx @openai/codex-security loginSur une machine distante ou sans interface graphique, utilisez l'authentification de l'appareil :
npx @openai/codex-security login --device-authPour la CI et les autres workflows automatisés, définissez une OpenAI API key :
export OPENAI_API_KEY="<your-api-key>"Pour les identifiants AWS, consultez la configuration d'Amazon Bedrock. Pour OpenRouter ou
Fireworks, définissez l'API key du
fournisseur et sélectionnez un modèle avec --provider et --model.
Pour utiliser votre connexion ChatGPT lorsqu'une API key est également définie, sélectionnez-la explicitement :
npx @openai/codex-security scan . --auth chatgptPour imposer l'API key de l'environnement, sélectionnez l'authentification par API key :
npx @openai/codex-security scan . --auth api-keySelon votre compte et votre dépôt, les analyses de l'ensemble du dépôt peuvent également nécessiter Trusted Access for Cyber.
Préparer une analyse
Choisissez un dépôt fiable que vous êtes autorisé à évaluer. Les analyses utilisent vos autorisations locales du système d'exploitation et ne s'interrompent pas pour demander une approbation. Les processus d'analyse peuvent hériter de votre environnement ; supprimez donc les identifiants sans rapport avec l'analyse avant de commencer. Consultez Autorisations des analyses locales.
Choisissez un répertoire situé hors du dépôt pour les résultats de l'analyse :
REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-resultsSi vous omettez --output-dir, Codex Security enregistre les résultats dans son propre répertoire
d'état persistant. Les résultats peuvent contenir des extraits de code source et des informations sur les vulnérabilités ;
choisissez donc un emplacement privé et une politique de conservation appropriée.
Si le répertoire d'état par défaut n'est pas accessible en écriture, sélectionnez un répertoire accessible en écriture situé hors du dépôt analysé :
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-stateVérifiez le dépôt, la cible et le répertoire de sortie avant de lancer une analyse :
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --dry-runL'exécution à blanc vérifie les entrées locales, y compris les chemins --knowledge-base,
sans démarrer Codex, charger les identifiants ni sonder l'interpréteur Python
du plugin.
Exécuter votre première analyse
Exécutez une analyse standard et conservez ses résultats dans le répertoire sélectionné :
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR"Les terminaux interactifs affichent un tableau de bord d'analyse en direct. Ajoutez --headless pour afficher
à la place des lignes de progression en texte brut. La CI et les terminaux sans session interactive
utilisent automatiquement ce mode de progression.
Le tableau de bord affiche également les détails de la session en direct. Ceux-ci peuvent contenir du code source ou des identifiants ; vérifiez-les donc avant de les partager.
Par défaut, la CLI écrit la progression de l'analyse et son récapitulatif final dans stderr. Elle n'affiche pas le résultat complet de l'analyse dans stdout. Une analyse terminée affiche un récapitulatif de ce type :
REPORT /path/outside/repository/codex-security-results/report.md
FINDINGS 2 (2 confirmed this scan; 0 previously found; 1 high, 1 medium)
COVERAGE complete
ELAPSED 42s
RESULTS /path/outside/repository/codex-security-resultsL'utilisation des tokens et le coût estimé s'affichent lorsqu'ils sont disponibles. Pour afficher le résultat complet au format JSON lisible par une machine, demandez explicitement une sortie structurée :
npx @openai/codex-security scan "$REPOSITORY" --output-dir "$SCAN_DIR" --jsonPar défaut, les analyses génèrent uniquement un rapport, de sorte que les résultats restent disponibles pour un examen local. Vous pouvez ajouter un seuil de gravité lorsque vous êtes prêt à exécuter des analyses dans la CI.
Choisir un modèle et un niveau de raisonnement
Par défaut, les analyses utilisent gpt-5.6-sol avec le niveau de raisonnement xhigh. Sélectionnez un
modèle et un niveau différents lorsque la tâche l'exige :
npx @openai/codex-security scan "$REPOSITORY" \
--model gpt-5.6-terra \
--effort highLes niveaux pris en charge sont minimal, low, medium, high, xhigh et
max.
Examiner les résultats
Ouvrez report.md pour consulter le résultat lisible. Le répertoire de l'analyse contient également les
fichiers structurés utilisés par les automatisations :
codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
└── results.sarif # when producedscan-manifest.jsonconsigne la cible, la portée, le producteur et les artefacts scellés.findings.jsonconsigne la gravité, le niveau de confiance, les emplacements, les preuves et les mesures correctives de chaque résultat.coverage.jsonconsigne les surfaces examinées, les exclusions, les travaux reportés, les questions ouvertes et l'exhaustivité de la couverture.
La couverture peut être complete, partial ou unknown. Prenez connaissance de toutes les zones reportées et
questions ouvertes avant de considérer l'analyse comme une preuve d'examen.
La référence de la CLI décrit
l'intégralité du contrat relatif aux artefacts et aux sorties.
Examiner et corriger les résultats
Après une analyse interactive complète ayant produit des résultats, la CLI propose un navigateur de résultats. Examinez les preuves et choisissez les résultats à corriger. Vous pouvez retrouver les tâches enregistrées dans l'application de bureau Codex.
Pour corriger les résultats de gravité élevée et critique sans utiliser le navigateur :
npx @openai/codex-security scan "$REPOSITORY" \
--patch --patch-severity high --jsonAjoutez --create-pr pour valider dans un commit les correctifs vérifiés et ouvrir une pull request GitHub.
Vous pouvez également corriger des résultats enregistrés ou importer des issues Linear. Consultez la
référence de validate et patch.
Choisir l'analyse suivante
Utilisez une analyse de chemin lorsqu'un dépôt contient des services ou packages distincts :
npx @openai/codex-security scan "$REPOSITORY" \
--path services/billing \
--path packages/authExaminez les modifications validées entre la révision de base et HEAD :
npx @openai/codex-security scan "$REPOSITORY" --diff origin/main --head HEADExaminez les modifications indexées et non indexées par rapport à HEAD :
npx @openai/codex-security scan "$REPOSITORY" --working-tree --base HEADLes analyses de différences et de worktree attendent que l'argument du dépôt désigne la racine du worktree Git. Récupérez les révisions sélectionnées avant de lancer une analyse de différences.
Utilisez le mode approfondi lorsqu'un dépôt ou un chemin nécessite un examen plus vaste :
npx @openai/codex-security scan "$REPOSITORY" --mode deepPour contrôler les workers, les sous-agents et le moment où l'analyse s'arrête :
npx @openai/codex-security scan "$REPOSITORY" \
--mode deep \
--workers 2 \
--subagents 0 \
--stop-after-no-new 3 \
--max-discovery-runs 10 \
--max-time-hours 1.5Ces options nécessitent le mode approfondi, qui prend en charge les cibles de type dépôt et chemin,
mais pas les analyses de différences ni de worktree. Ici, --workers contrôle les workers
d'analyse standard indépendants au sein d'une même analyse ; bulk-scan --workers contrôle les analyses de dépôts
simultanées. --max-time-hours accepte un nombre positif allant jusqu'à 96,
y compris un nombre fractionnaire d'heures. Lorsque la limite est atteinte, l'analyse arrête les workers inachevés,
conserve les résultats terminés et les agrège dans le rapport final.
Ajouter du contexte architectural et de sécurité
Fournissez des documents d'architecture, des modèles de menaces ou des politiques de sécurité comme contexte de l'analyse. Codex Security pourra ainsi évaluer les résultats en fonction du fonctionnement réel de votre système :
npx @openai/codex-security scan "$REPOSITORY" \
--knowledge-base /path/to/architecture.md \
--knowledge-base /path/to/security-policiesAjouter des instructions d'analyse personnalisées
Ajoutez des instructions qui concentrent l'analyse sur vos priorités de sécurité. Utilisez un second fichier pour les instructions de suivi :
npx @openai/codex-security scan "$REPOSITORY" \
--scan-prompt-file /path/to/scan.md \
--post-scan-prompt-file /path/to/follow-up.mdLe suivi s'exécute dans la même session authentifiée après les analyses réussies
et celles dont la couverture est incomplète ou qui comportent des erreurs. Si le suivi échoue, la CLI
signale un avertissement et conserve l'analyse terminée. Il ne s'exécute pas après une
annulation ni après une analyse ayant atteint sa limite de coût. Les deux options fonctionnent également
avec bulk-scan ; une colonne CSV prompt ajoute des instructions propres au dépôt.
Définir un budget d'analyse
Utilisez --max-cost pour arrêter une analyse lorsque le coût estimé du modèle dépasse une limite
en USD :
npx @openai/codex-security scan "$REPOSITORY" --max-cost 5Les requêtes déjà en cours peuvent se terminer légèrement au-dessus de la limite. Si une analyse approfondie
atteint la limite après que Codex Security a agrégé les résultats des workers terminés,
la CLI enregistre le rapport terminé, marque sa couverture comme partial
et renvoie le code de sortie 2. Si l'analyse ne peut pas produire de rapport terminé, toute
sortie partielle disponible reste sur le disque.
Analyser les modifications avant chaque commit
Installez un contrôle de sécurité Git pre-commit pour votre dépôt :
npx @openai/codex-security install-hookCe contrôle analyse les modifications indexées et non indexées avant chaque commit. Il bloque les résultats de gravité élevée et les erreurs d'analyse sans remplacer un éventuel script pre-commit existant.
Analyser des dépôts en masse
Connectez-vous à GitHub avant de rechercher des dépôts :
gh auth loginRecherchez et sélectionnez des dépôts dans votre compte ou votre organisation GitHub :
npx @openai/codex-security bulk-scanLe flux interactif exclut les dépôts archivés et les forks. Il vous demande de confirmer les dépôts sélectionnés avant l'analyse.
Pour analyser une liste de dépôts préparée, fournissez un fichier CSV et un répertoire de sortie :
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4Exécutez de nouveau la même commande pour reprendre une analyse groupée existante. Codex Security
ignore les dépôts terminés. Ajoutez --max-attempts 3 si vous souhaitez réessayer après
des erreurs temporaires de dépôt ou d'analyse.
Pour en savoir plus sur la recherche GitHub, la préparation du fichier CSV, les résultats de campagne et la configuration de Docker, consultez Exécuter des analyses de sécurité groupées.
Exécuter des analyses groupées dans Docker
Si votre accès comprend l'image Docker de Codex Security, utilisez la configuration Compose renforcée et le profil de sécurité fournis sur un hôte Docker Linux. L'hôte doit prendre en charge la création d'espaces de noms d'utilisateurs sans privilèges. Fournissez un fichier CSV de dépôts, conservez les résultats et l'état de connexion dans des répertoires montés persistants et fournissez les identifiants par l'intermédiaire de votre environnement ou d'un gestionnaire de secrets :
docker compose run --rm codex-security \
bulk-scan /input/repositories.csv \
--output-dir /output \
--workers 4Le conteneur exécute des analyses groupées sans prompts interactifs. Utilisez la CLI hors de
Docker lorsque vous souhaitez rechercher des dépôts de manière interactive. Pour les dépôts
privés, fournissez GH_TOKEN ou GITHUB_TOKEN par l'intermédiaire de votre environnement ou
d'un gestionnaire de secrets. Les exigences de connexion, notamment celles relatives au compte et à
l'accès au dépôt, s'appliquent également aux analyses conteneurisées.
Revenir sur une analyse enregistrée
Répertoriez les analyses enregistrées pour votre dépôt :
npx @openai/codex-security scans list "$REPOSITORY"Copiez un ID d'analyse depuis les résultats afin d'examiner ses résultats et sa configuration :
npx @openai/codex-security scans show SCAN_IDPour examiner les événements enregistrés d'une analyse et de ses workers :
npx @openai/codex-security scans logs SCAN_IDLes journaux enregistrés ne sont pas expurgés et peuvent contenir du code source ou des identifiants. Vérifiez-les avant de les partager.
Répertoriez les résultats ouverts parmi les analyses du dépôt :
npx @openai/codex-security findings list "$REPOSITORY"Un résultat antérieur reste ouvert si la dernière analyse ne le confirme pas.
Pour marquer un résultat examiné comme faux positif, expliquez pourquoi il ne s'applique pas :
npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
--reason "The route already checks permissions"Les analyses ultérieures prennent en compte cette explication, mais vérifient tout de même à nouveau le code actuel.
Exécutez la même analyse sur la version actuellement extraite en utilisant sa configuration d'origine :
npx @openai/codex-security scans rerun SCAN_IDComparez deux analyses pour identifier les résultats nouveaux, persistants, rouverts, résolus ou inconnus :
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDLa comparaison rapproche automatiquement les résultats selon leur cause racine et réutilise les correspondances enregistrées.
Pour connaître le format CSV des analyses groupées, les filtres de l'historique d'analyse et les options de commande, consultez la référence de la CLI.
Poursuivez avec le workflow adapté à votre objectif :
- Exécuter des analyses de sécurité groupées pour rechercher des dépôts GitHub ou analyser un inventaire CSV épinglé.
- Lire la FAQ de la CLI pour obtenir des réponses sur l'historique des analyses, les retours concernant les faux positifs, la couverture et la vérification des correctifs.
- Exécuter des analyses dans la CI pour examiner les pull requests, conserver les résultats et définir une politique de gravité.
- Utiliser la référence de la CLI pour vérifier chaque option, format de sortie, artefact et code de sortie.
- Intégrer le SDK TypeScript pour exécuter des analyses depuis une application ou un outil de développement.