🌐 Semgrep AppSec Platform
Added
- The hosted Model Context Protocol (MCP) server for Semgrep AppSec Platform is now in public beta. Connect Claude Code, Codex, Cursor, VS Code, or another MCP client to search and triage findings, run scans, and manage policies from your editor or terminal. Tools follow your permissions in AppSec Platform, and a read-only URL is available. The Semgrep Guardian plugin also includes these tools. For more information, see Semgrep MCP.
Changed
- New self-service purchases of Semgrep Code, Semgrep Supply Chain, or Semgrep Secrets now have a minimum of 3 seats instead of 10. You can’t reduce the seat quantity of an existing subscription. Checkout suggests your contributor count, with a minimum of 3 seats.
- In the rules table on the Policies page, the False positive rate column is now Ignore rate. The rate is the share of a rule’s findings that are ignored. It counts findings triaged as ignored for any reason and findings ignored with a
nosemgrepcomment. Hover over a rate to see the counts by triage reason. For more information, see Unified Policies. - Remediation policy cards on the Policies page now show each policy’s scope in the header. The scope is All projects, a project or tag name, or a count of projects or tags. If a policy’s condition names Semgrep Agentic Workflows, each workflow links to its schedule.
Fixed
- Fixed an issue where organizations that use Unified Policies didn’t see a rule’s suggested fix in pull request and merge request comments.
- Fixed an issue where selecting Other in the Category filter on the Findings page excluded AI-powered detection findings.
- Fixed an issue where the navigation bar showed finding counts for a product your organization can’t use. For example, counts stayed after a Supply Chain trial ended. The counts are now hidden. Your findings aren’t deleted.
- Fixed an issue where opening Policy executions on a scan’s details page hid the scan logs and reset the log filters.
💻 Semgrep Code
Added
- A link to the licenses for Semgrep’s open source dependencies now appears in the
--helpoutput of mostsemgrepcommands, in a newTHIRD-PARTY LICENSESsection. The section points to semgrep.dev/cli-credits.
Changed
- The Semgrep CLI no longer ships binaries for Intel Macs, because macOS on Intel has reached end of life. Version 1.182 is the last release that supports them. On an Intel Mac, use the
semgrep/semgrepDocker image. On Apple silicon, use a native arm64 Python. - Semgrep Code parses newer Bash, Clojure, and Swift syntax, so fewer files are skipped because of parse errors:
- Bash: patterns now match arithmetic such as
$(( $X * 2 ))structurally, and words that contain#are no longer cut off. - Clojure: files that use reader-evaluated metadata (
^#=(...)) or the legacy#^metadata prefix now parse. - Swift: newer syntax from Swift 5.9, such as macros, parameter packs, and
ifandswitchexpressions, now parses.
- Bash: patterns now match arithmetic such as
Fixed
- Fixed an issue where cross-file (interfile) scans could stop with
Failed to unmarshal cached valuewhen a single rule timed out. Semgrep now skips only that rule on that file and completes the scan. - Fixed an issue where Semgrep skipped an entire Python file when it combined an f-string prefix, such as
rf, with amatchstatement. Semgrep now accepts every valid f-string prefix. - Fixed an issue where the Semgrep source distribution on PyPI was published without provenance. This affected versions 1.168.0 through 1.182.1, but not the wheels that
pipinstalls by default.
⛓️ Semgrep Supply Chain
Added
- Incident cards on the Advisories page now show how many projects have matching ranges. These are projects whose
requirements.txtfile declares an affected Python package with a version range or without a version. Semgrep can’t confirm whether these projects are affected. An advisory’s matching projects now include a Potentially matching: declared in a version range section that lists each project, branch, file, and declared version. Incident Slack notifications also say how many of these projects there are and which packages they declare. - Supply Chain now shows the dependency path for transitive findings in Go projects. This requires dependency paths to be turned on and local builds to be allowed with
--allow-local-builds.
Changed
- With
--allow-local-builds,semgrep ci --no-suppress-errorsnow exits with code 2 when dependency resolution fails for a subproject. For example, a build command fails, a lockfile can’t be parsed, or a registry refuses a request. The scan output lists the affected dependency sources, and findings from every other subproject are still reported. This doesn’t affect the default behavior, which suppresses these errors, or Semgrep Managed Scans.
Fixed
- Fixed these lockfile and manifest parsing issues:
- Multi-document
pnpm-lock.yamlfiles, which pnpm 11 and later write, reported no dependencies. A lockfile that can’t be parsed now marks its subproject as unresolved instead of reporting zero dependencies. go.modfiles that contain agodebug ( ... )block reported no dependencies and a parse error.- Poetry 2.0 and later projects that declare dependencies in the
[project] dependenciestable, in dependency groups, or as extras reported every package with unknown transitivity. Packages from Poetry dependency groups are now reported as direct. PyPI rules now match package names regardless of case and of-,_, or.differences. yarn.lockfiles from Yarn 0.16 and earlier failed withFailed to parse yarn.lock at 1:1.
- Multi-document
🤖 Semgrep Multimodal
Added
- Agentic Workflows now run on your own AI provider keys for OpenAI, Anthropic, Google Gemini, xAI, and Microsoft Foundry. Previously, workflows required Semgrep-managed OpenAI or Amazon Bedrock. When your own keys are configured, every model request from a workflow goes to your providers, and AI-powered detection uses them too. Autofix doesn’t use your own keys yet. For more information, see Use your own AI provider keys.
- Microsoft Foundry, formerly Azure OpenAI, now has its own card in the AI provider settings. Add a resource endpoint, an API key, and one or more deployments, each with its model. If your resource has only one deployment, Agentic Workflows and AI-powered detection use it for most steps. Its model doesn’t have to be on the list of Foundry models for workflows. For more information, see Microsoft Foundry.
- You can now add notes to Agentic Workflows issues. Click New note at the top of an issue’s activity. For more information, see Review Agentic Workflows issues.
- Code blocks in Agentic Workflows issue descriptions and reasoning are now syntax highlighted when they name their language.
Changed
- Starting October 31, 2026, autotriage costs 0.1 AI credits per finding, down from 1 credit. The new rate applies to paid plans, trials, and the free plan. Usage before that date keeps its original rate. Usage reporting now shows autotriage at 10 triages per credit. For more information, see Credits required for AI actions.
Fixed
- Fixed these issues on a workflow run’s Details page:
- A run in progress showed Re-run when it couldn’t be canceled. The Cancel button now stays visible but unavailable and explains why.
- Steps were marked as skipped when Semgrep had no record of how they ran. Their status is now unknown.
🔐 Semgrep Secrets
Fixed
- Fixed an issue where historical Secrets findings that are no longer in your code kept showing Open after you marked them as To fix or Reviewing. These findings now show the status you set.
🛡️ Semgrep Guardian
Added
- Guardian for GitHub Copilot CLI is now in public beta on macOS and Linux.
- Guardian now has an observe-only mode. When the
SEMGREP_GUARDIAN_OBSERVE_ONLYenvironment variable is set to1, Guardian scans as usual but doesn’t show results to developers or their coding agents. Use it to see what Guardian finds before you roll it out to your developers.
Changed
- The
semgrep_scantool in the Semgrep MCP server (semgrep mcp) now scans only files inside your MCP client’s workspace root. If the client doesn’t report one, it scans the server’s working directory. To scan files outside it, setSEMGREP_MCP_ALLOW_SCAN_OUTSIDE_WORKSPACE=true.
Fixed
- Fixed an issue where the Cursor hooks that
semgrep mcpinstalls shared edited files across Cursor conversations. A scan at the end of one conversation no longer scans or discards edits from another.
📝 Documentation and knowledge base
Added
- The new Semgrep Guardian incident advisories page lists the security incidents that Guardian checks your machine for, and explains how to turn off each check.