01Fichiers lus
Le CLI lit en priorité vos fichiers de verrouillage. Il n'envoie que le nom, la version et l'écosystème de chaque dépendance.
- npm : package-lock.json, npm-shrinkwrap.json, yarn.lock
- Composer : composer.lock
- Python : poetry.lock, uv.lock, pdm.lock, Pipfile.lock, requirements.lock (pip freeze), requirements.txt
- Rust : Cargo.lock
- Go : go.mod
- Dart et Flutter : pubspec.lock
Le dossier courant et ses sous-dossiers sont lus : un monorepo s'analyse en une commande depuis la racine. Les dépendances de développement sont repérées et passent après celles de production.
02npm : sans fichier de verrouillage
Un package.json sans package-lock.json ni yarn.lock ne fixe que des plages de versions (par exemple ^4.19.0) : la version réellement installée reste incertaine, et les dépendances indirectes sont invisibles.
Si npm install a déjà été lancé dans le dossier, le CLI lit directement les versions résolues dans node_modules (lecture seule, comme pour Python) plutôt que de deviner depuis les plages de versions.
Sans node_modules installé non plus, le CLI se limite aux dépendances à version exacte de package.json et vous le signale. Lancez npm install avant le scan, ou versionnez un fichier de verrouillage.
03Python : voir aussi les dépendances indirectes
Un requirements.txt écrit à la main ne liste que vos dépendances directes. Les paquets qu'elles installent (par exemple ceux de FastAPI ou de Django) restent invisibles, et leurs failles aussi.
Le CLI complète cela pour vous : s'il ne trouve aucun fichier déjà complet (Poetry, uv, PDM, Pipenv, pip-tools), il interroge l'environnement Python installé dans le dossier scanné — l'équivalent de pip freeze — pour retrouver les dépendances indirectes. Lecture seule, rien n'est installé ni modifié.
Si aucun environnement Python n'est accessible (par exemple en CI sans venv activé), le CLI retombe sur les dépendances directes et vous le signale. Générez alors un fichier figé et versionnez-le, il sera lu en priorité :
$ pip freeze > requirements.lock04Options
- La clé : enregistrée une fois par machine par la commande connect, ou passée dans la variable CODEBOX_KEY (CI).
- --dry-run : affiche exactement ce qui serait envoyé, sans rien envoyer.
- --fail-on critical|high|medium|low : renvoie le code de sortie 2 si une faille de cette gravité est ouverte.
- --json : résultat au format JSON.
- --no-wait : n'attend pas la fin de l'analyse.
- --timeout : durée d'attente maximale en secondes (180 par défaut).
$ npx -y https://codebox.nealix.org/cli/codebox-cli-1.0.12.tgz scan --dry-run05Une clé par machine, pas par projet
$ npx -y https://codebox.nealix.org/cli/codebox-cli-1.0.12.tgz connect cbk_votre_cleLa clé est enregistrée dans votre dossier personnel (~/.codebox), jamais dans un dépôt. Les anciens tokens par projet (cb_…) restent acceptés.