sincecutoff.com

What changed in Semgrep.

We scan this tool’s changelog a few times a day and keep the changes that would alter your agent’s next action: 8 since February 2026, each linked to its source.

YOUR MODEL or

Changes

INTRODUCED
8 CHANGES
LATEST 2026-07-22 · 1 TOOLS
JUL 222026

Semgrep scans OpenTofu .tofu files as Terraform

When scanning a repository with OpenTofu `.tofu` files, run a recursive Semgrep scan with `p/terraform`; Semgrep 1.171.0 detects and scans `.tofu` files as Terraform without extra configuration.

semgrep scan --config p/terraform .
evidence github.comscore 0.94open card ↗
JUN 242026

semgrep scan and ci add experimental --x-dependency-paths output

When inspecting transitive supply-chain findings, run `semgrep scan` or `semgrep ci` with `--x-dependency-paths` and select JSON or SARIF output. The flag adds full dependency paths to those findings in the selected output.

semgrep scan --x-dependency-paths --json
evidence github.comscore 0.93open card ↗
JUN 172026

Semgrep skips binary files by default with an opt-out flag

When a repository scan must include binary files, run `semgrep scan --no-exclude-binary-files <path>`; binary-file exclusion is enabled by default and detects files by matching their extensions to known magic bytes.

semgrep scan --no-exclude-binary-files <path>
evidence github.comscore 0.92open card ↗
JUN 032026

semgrep --max-match-context-size limits source context per match

When scanning minified source files, pass `--max-match-context-size <characters>` to limit source-code context included for each match. Use `0` for unlimited context, the default.

semgrep scan --max-match-context-size <characters> <path>
evidence github.comscore 0.95open card ↗
MAY 272026

Semgrep Dart patterns add typed metavariables and function-definition matching

When writing Dart rules in Semgrep 1.164.0, use the release’s new typed metavariable, `metavariable-type`, interpolation binding, and function-definition matching support. Scan the target with your rule file using `semgrep scan --config <rule.yaml> <target>`.

semgrep scan --config <rule.yaml> <target>
evidence github.comscore 0.97open card ↗
MAY 072026

MCP semgrep_findings filters by branch and includes findings without AI verdicts

To retrieve findings for a branch, call `semgrep_findings` with `refs` set to that branch. Omit `autotriage_verdict` to include findings without an AI verdict.

semgrep_findings(repos=["<owner>/<repository>"], refs=["<branch>"])
evidence github.comscore 0.93open card ↗
MAR 312026

Semgrep matches class names for metavariable-type checks

When a rule needs to match a class name in a method call and check that name’s type, match `$C.getInstance(...)` and apply `metavariable-type` to `$C`.

rules: - id: class-name-type-check languages: [java] message: Matched class name with the requested type severity: WARNING patterns: - pattern: $C.getInstance(...) - metavariable-type: metavariable: $C type: <type-expression>
evidence github.comscore 0.96open card ↗
FEB 182026

Semgrep metavariable comparisons support case-insensitive string matching

When a Semgrep rule needs to compare a metavariable’s string value without case sensitivity, add a `metavariable-comparison` using `upper(str($VALUE)) == "SEMGREP"` (or use `lower()` for lowercase comparison).

- metavariable-comparison: metavariable: $VALUE comparison: upper(str($VALUE)) == "SEMGREP"
evidence github.comscore 0.97open card ↗