Semgrep alternatives: 8 open-source code quality and static analysis tools
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
About Semgrep
Semgrep is a listed code quality and static analysis tool: Pattern-based static analysis CLI that scans code in more than 30 languages for bugs and rule violations.
Order: Listed tools in the same category, with tools in the same primary language (GitHub API) first, then by GitHub stars. Each line gives one fact from the tool's own documentation where it differs from what Semgrep's documentation states, with its source.
8 alternatives to Semgrep
Ruff: Languages or files analysed: Python files (*.py, *.pyi), Jupyter Notebooks (*.ipynb) and pyproject.toml. source: Docs: Configuring Ruff
ShellCheck: Languages or files analysed: Shell scripts in the sh, bash, dash, ksh and BusyBox dialects. source: Docs: shellcheck(1) manual
ESLint: Languages or files analysed: ECMAScript/JavaScript code; JSX parsing when enabled. source: README
mypy: Languages or files analysed: Python programs with type hints. source: README
golangci-lint: Languages or files analysed: Go code. source: README
Infer: Languages or files analysed: Java, C++, Objective-C and C. source: README
PHPStan: Languages or files analysed: PHP code. source: README
RuboCop: Languages or files analysed: Ruby code (targets Ruby 2.0 and later). source: README
Repository metrics
| Ruff | 49,7311 | 2026-09-1610.16.8 | 2026-09-221 | MIT | Rust | active |
|---|---|---|---|---|---|---|
| ShellCheck | 40,0671 | 2025-08-041v0.11.0 | 2026-09-211 | GPL-3.0 | Haskell | active |
| ESLint | 27,5161 | 2026-09-181v10.11.0 | 2026-09-221 | MIT | JavaScript | active |
| mypy | 20,6481 | 2026-08-151v2.3.1 | 2026-09-221 | MIT | Python | active |
| golangci-lint | 19,3941 | 2026-08-271v2.13.2 | 2026-09-201 | GPL-3.0 | Go | active |
| Semgrep | 16,7251 | 2026-09-101v1.177.0 | 2026-09-221 | LGPL-2.1 | C | active |
| Infer | 15,7061 | 2026-05-121v1.3.0 | 2026-09-181 | MIT | OCaml | active |
| PHPStan | 14,1061 | 2026-09-1212.2.14 | 2026-09-221 | MIT | PHP | active |
| RuboCop | 12,9051 | 2026-09-101v1.91.0 | 2026-09-221 | MIT | Ruby | active |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.