Jorge Turbica / blog · Blog ← All articles ES · Leer en español
AI

Skill of the day: openqodex, 22 scanners and a second agent review your code before push

A skill for Claude Code, Codex, Cursor and Cline that runs scanners plus an isolated AI reviewer on your change before push.

A code review that runs on its own before every git push, with 22 scanners and a second agent that never saw the session where the change was written. That is openqodex, an Apache-2.0 skill and plugin that shipped its first npm release on October 2, 2026 and reached 0.14.0 on October 23, with more than 800 GitHub stars so far. It works in Claude Code, Codex CLI, Cursor and Cline.

What it does: scanners first, then a reviewer with no memory

The skill kicks in before any git push, when you ask for a review or a security scan, when the openqodex hook has warned about or blocked a push, and after you fix findings, to check again. The agent does not review anything itself: it calls openqodex review, which covers unpushed commits plus uncommitted work (or the whole repository with --all).

The interesting part is how the work is split:

  1. It runs the scanners that match the changed files and keeps only findings on modified lines. There are 22 built in: secrets (gitleaks), code security (semgrep, among others), vulnerable dependencies (osv-scanner), lint, GitHub Actions workflows, Dockerfiles, Terraform, Kubernetes (kubeconform), CloudFormation and SQL migrations.
  2. It starts a separate Claude Code or Codex process, with no memory of your session, that reads a frozen copy of the change along with its calling code and proposes issues, quoting the exact line.
  3. A script checks that every quote really exists in the code, and verifier sessions confirm or reject each candidate and each scanner finding, with a reason.
  4. More scripts check that every finding got an answer and that every changed line reached a reviewer. Style and naming notes show up as observations and never block.

What you get is a receipt with the verdict, one line per finding and the path to report.html, plus Markdown, JSON and SARIF copies under .openqodex/reviews/, which is git-ignored. The skill then makes the agent ask "Fix all, or tell me which?" and keep its hands off the code until you answer.

Installing and using it

You need Node 22 or later, git, macOS or Linux (Windows and WSL are untested), and a logged-in Claude Code or Codex for a full review. The full setup, with the skill, agent hooks and a git pre-push hook, is interactive with npx openqodex init, or non-interactive:

bash
npx -y [email protected] init --yes --agent claude-code
npx -y [email protected] review

The exit code sums up the verdict: 0 when nothing blocks the push, 1 when it is blocked and 2 when there is no complete review. If you only want the skill, without hooks, use npx skills add openqodex/openqodex -g. To review a branch or a pull request, run review feature/login or review '#42' (quoted, because # starts a shell comment).

Out of the box it only warns. For the hook to actually block a push, set a severity threshold (critical, major, minor, nitpick or info) in .openqodex/config.yaml:

yaml
review:
  block_on_severity: major

Risks and limits

  • Your code goes to the model. There is no account or API key of its own: it uses your Claude Code or Codex login, and the change is sent to that service. The reviewer can also search the web unless you set reviewer_web: off.
  • Scanners that hit the network. semgrep downloads rule packs from its registry, osv-scanner sends dependency names and versions to osv.dev, kubeconform fetches schemas and cargo-deny pulls the RustSec database. --offline skips them. The project says it collects no telemetry and turns semgrep's metrics off.
  • Third-party scanners. You can add your own from a GitHub repo, but it only runs after you approve it with openqodex trust, and the skill forbids the agent from doing that without asking.
  • The gate can be bypassed. git push --no-verify skips the git hook, and in Cursor and Cline the "gate" is just a rule asking the agent to review. There, the reviewer also has to be Claude Code or Codex.
  • Dependencies it won't install. brakeman and rubocop need Ruby, golangci-lint needs Go and cargo-deny needs Cargo.

The caveat that matters most comes from its own numbers. On its planted-bug test set, the Claude Code reviewer (claude-opus-5-5) catches 129 of 153 issues (84.3%) for about $0.087 per review. On AACR-Bench, with real pull requests and a gpt-6.1-sol reviewer, semantic recall drops to 5.2% and the noise rate climbs to 77.2%. It is a solid first filter, not a guarantee; the README says as much, and the project describes itself as "on the way to 1.0", so commands may change between minor releases.

openqodex vs Claude Code's /security-review

The obvious baseline is what Anthropic already ships: the /security-review command in Claude Code and its GitHub Action counterpart, claude-code-security-review.

openqodexclaude-code-security-review
When it runsBefore push (skill + hooks) and on PRsOn PRs (Action) or on demand with /security-review
Scanners22 built in + AI verificationClaude analysis only
ScopeSecurity, dependencies, IaC, lint, SQLSecurity
CredentialsClaude Code or Codex login; API key only for the ActionAnthropic API key for the Action
GatePush hook with a configurable thresholdPR comments
LicenseApache-2.0MIT

Anthropic's Action warns that it is not hardened against prompt injection and should only review trusted PRs, and it deliberately filters out categories such as denial of service and open redirects. openqodex covers more ground and runs earlier, on your own machine, but it adds a tool that is still maturing at a release a week. If you only use Claude Code and security is all you need, /security-review is already there. If you want deterministic scanners in the same loop and a pre-push gate that works across agents, openqodex is worth a try on a non-critical repo.

Sources

Jorge Turbica

Software Engineer and SRE. I write about the real challenges I run into in production.

See portfolio ↗