OpenQodex : une revue de code IA open source avant le push pour Claude Code et Codex
OpenQodex est un outil open source de revue de code IA avant le push, pour Claude Code et Codex. Une commande cerne le changement, lance les scanners adaptés et garde les constats sur les lignes modifiées. Un relecteur vérifie, des scripts valident.
Les agents de codage IA ont accéléré l'écriture du code, mais pas sa relecture. Les diffs grossissent, l'attention humaine s'use, et les quelques lignes qui comptent vraiment se perdent dans un tas de modifications plausibles. OpenQodex répond avec simplicité : placer la revue avant le push, pour qu'elle devienne le dernier filtre avant que le changement ne quitte votre machine. L'outil vise Claude Code et Codex, et fonctionne aussi directement depuis le terminal. Le cœur tient en une commande, openqodex review. Elle commence par établir ce que vous avez réellement modifié : les commits pas encore poussés, plus tout ce qui n'est pas encore commité. Elle lance ensuite les scanners adaptés aux fichiers modifiés et ne garde que les constats situés sur les lignes que vous avez touchées, afin que la dette historique du vieux code ne vous détourne pas.
La sortie des scanners n'est qu'une matière première. OpenQodex démarre ensuite son propre relecteur, un processus Claude Code ou Codex distinct, qui lit une copie figée du changement. Ce relecteur doit vérifier chaque constat des scanners, et il reçoit chaque ligne modifiée. Sa réponse n'est pas crue sur parole : OpenQodex la contrôle avec des scripts, puis assemble un seul rapport. L'intérêt de cette conception tient à la répartition des rôles. Les scanners à base de règles repèrent des motifs de façon stable et reproductible, mais produisent beaucoup de fausses alertes et ne comprennent aucun contexte. Les modèles de langage comprennent l'intention et le contexte, mais peuvent oublier ou inventer. Laisser le modèle trancher chaque constat, puis laisser des scripts déterministes vérifier ses conclusions, crée trois niveaux qui se tiennent mutuellement en respect. C'est plus crédible que de s'appuyer sur un seul niveau.
Le degré d'isolement du relecteur est la partie la plus instructive du projet. Selon le README, lorsque Claude Code est le relecteur, il démarre avec les seuls outils de lecture, de recherche et de liste, à l'intérieur de la copie du changement, sans aucun de vos réglages, hooks, plugins, mémoire ou fichiers d'instructions. Son flux d'événements montre chaque lecture, de sorte que le rapport peut citer les fichiers lus. Codex diffère un peu. Il démarre dans un bac à sable en lecture seule qui limite les lectures à la copie du changement et aux dossiers système, sans réseau pour ses commandes, et sans votre configuration, vos plugins, vos hooks ni les fichiers d'instructions du dépôt. La documentation reconnaît franchement deux limites : Codex charge encore le fichier global ~/.codex/AGENTS.md, et son flux d'événements ne montre pas toutes les commandes, si bien que le rapport indique que ses lectures n'ont pas été enregistrées. Écrire ces frontières dans la documentation rassure davantage que de promettre une sûreté absolue, et chacun peut les confronter à son propre modèle de menace.
La complétude reçoit ici une définition précise. Une revue n'est complète que si trois conditions sont réunies : chaque étape a été exécutée, chaque constat de scanner a été soit soulevé, soit écarté avec une raison, et chaque ligne modifiée s'est trouvée devant le relecteur. Cela peut être dans le brief, dans un message ultérieur d'OpenQodex ou, pour Claude Code, dans un fichier qu'il a lu. Si une condition manque, l'outil affiche « Review incomplete » au lieu d'un verdict flatteur. La couverture cesse d'être un slogan et devient une condition vérifiable. Pour les équipes habituées aux approbations vagues, c'est une pratique à emprunter. La sortie est tout aussi sobre. À la fin, le terminal affiche un court reçu : le verdict, le résumé du relecteur, une ligne par constat (numéro, gravité, catégorie, titre, fichier et ligne) et les chemins absolus de report.html et report.md. Le rapport complet est aussi écrit sur disque en HTML, Markdown, JSON et SARIF, ce dernier facilitant le branchement sur les outils de sécurité existants. Le fichier report.html est un fichier unique sur votre disque. Il montre chaque fichier modifié sous forme de diff, chaque constat sous sa ligne, puis la couverture, les scanners et le rayon d'impact. D'après le README, il n'exécute aucun script, ne charge rien depuis l'extérieur, échappe chaque chaîne et masque les secrets trouvés par les scanners. La décision de corriger reste humaine. La compétence fournie demande à l'agent de vous montrer le reçu, de poser la question « Fix all, or tell me which? » et de ne corriger que les constats que vous nommez. La commande openqodex findings 1,3 affiche en détail les constats désignés.
Le coût d'adoption est faible. La commande npx openqodex init cherche Claude Code, Cursor, Codex CLI et Cline sur votre machine, liste tous les fichiers qu'elle va écrire et ne pose la question qu'une fois. Elle nomme ensuite le relecteur trouvé, ou ce qu'il faut corriger. Il faut Node 22 ou plus récent et git ; l'outil tourne sous macOS et Linux, et sous Windows il faut passer par WSL. En dehors d'un Claude Code ou d'un Codex connecté, il n'exige ni clé, ni compte, ni serveur. Outre le changement local par défaut, review --all couvre tout le dépôt, et review suivi d'un nom de branche ou d'un numéro de pull request comme '#42' couvre un travail qui n'est pas votre copie courante : OpenQodex le récupère, l'extrait dans un dossier temporaire et relit ce qui a été ajouté depuis la base. La version actuelle est la 0.12.0, sous licence Apache-2.0. Au quotidien, cela change la forme du flux de travail. La plupart des revues de code ont lieu après l'ouverture d'une pull request, quand le relecteur fait face à un historique déjà formé et que le contexte de l'auteur s'est dispersé. Déplacer la revue avant le push fait remonter les problèmes au moment le moins coûteux : le changement est encore local, l'auteur se souvient de son raisonnement et aucun collègue n'est dérangé par la correction. Comme chaque résultat de scanner est limité aux lignes modifiées, chaque constat du rapport concerne ce que vous faites maintenant, sans fouille dans les problèmes hérités. Pour les équipes où des agents produisent du code en masse, cela ajoute une barrière peu coûteuse et fiable entre le commit et le partage, et permet aux relecteurs humains de réserver leur attention à l'architecture et au jugement métier, que les machines traitent encore mal.
Du point de vue de l'industrie, OpenQodex incarne un schéma en train de se former : la revue n'est plus une étape après la fusion, mais une étape locale et auditable au sein du flux de travail des agents. Il faut rester prudent. Un modèle de la même famille qui relit du code écrit par un modèle semblable peut partager ses angles morts. Le chemin Codex est nettement moins auditable que celui de Claude Code. Et un numéro de version 0.12.0 signale un projet jeune. Cette analyse repose sur un extrait public du README, et nous n'affirmons rien sur les parties non couvertes. Reste que le projet inscrit trois idées dans le squelette du produit : la preuve, la couverture et un humain qui décide. Toute équipe qui branche des agents sur son développement quotidien devrait les prendre au sérieux.
Sources
FAQ
Quel code openqodex review examine-t-il vraiment ?
Il examine les commits pas encore poussés et tout ce qui n'est pas commité, et ne garde que les constats de scanner situés sur les lignes modifiées. L'option --all couvre tout le dépôt. Un nom de branche ou un numéro comme '#42' permet de relire un travail hors de votre copie courante, qu'OpenQodex récupère dans un dossier temporaire.
Quel est le degré d'isolement du relecteur par rapport à votre environnement ?
Selon le README, un relecteur Claude Code n'a que des outils de lecture, de recherche et de liste, travaille dans la copie du changement et ne charge ni réglages, ni hooks, ni plugins, ni mémoire, ni fichiers d'instructions. Son flux liste les fichiers lus. Codex tourne dans un bac à sable en lecture seule, sans réseau pour les commandes, mais charge encore ~/.codex/AGENTS.md et n'enregistre pas toutes les lectures. Le rapport le dit.
Quand une revue est-elle jugée incomplète ?
Si une étape n'a pas tourné, si un constat de scanner n'a été ni soulevé ni écarté avec une raison, ou si une ligne modifiée n'est jamais parvenue au relecteur, l'outil affiche « Review incomplete » plutôt qu'un verdict lisse.