Find bugs and reachable dependency vulnerabilities in code. Enforce your code standards on every commit.
Scan with Semgrep AppSec Platform
Deploy static application security testing (SAST), software composition analysis (SCA), and secrets scans from one platform.
Get started
Run your first Semgrep scan.
Deploy Semgrep
Deploy Semgrep to your organization quickly and at scale.
Triage and remediate
Triage and remediate findings; fine-tune guardrails for developers.
Write rules
Create custom rules to enforce your organization's coding standards.
Supported languages
Product | Languages |
---|---|
Semgrep Code | Generally available (GA) C and C++ • C# • Generic • Go • Java • JavaScript • JSON • Kotlin • Python • TypeScript • Ruby • Rust • JSX • PHP • Scala • Swift • Terraform Beta APEX • Elixir Experimental Bash • Cairo • Circom • Clojure • Dart • Dockerfile • Hack • HTML • Jsonnet • Julia • Lisp • Lua • Move on Aptos • Move on Sui • OCaml• R • Scheme • Solidity • YAML • XML |
Semgrep Supply Chain | Generally available reachability C# • Go • Java • JavaScript and TypeScript • Kotlin • Python • Ruby • Scala • Swift Beta or languages without support for reachability analysis Dart • Elixir • PHP • Rust |
Semgrep Secrets | Language-agnostic; can detect 630+ types of credentials or keys. |
See the Supported languages documentation for more details.
March 2025 release notes summary
- Added an integration with Wiz that enables you to view Semgrep Code findings in Wiz's Security Graph.
- Added the ability to define the files and folders Semgrep ignores during scans at the organization level.
- Dataflow traces now provide cross-file code snippets, centralizing context from several files into the dataflow graph.
- Added the ability to use transitivity and EPSS score as conditions when creating block and comment policies for Supply Chain.
- Added dependency path support for the following Python package managers:
pip
,pip-tools
, andpipenv
. - Assistant Auto-memories: If you triage a finding as Ignored and provide an explanation of why you change the finding's status to Ignored, Assistant automatically determines if it should create a memory for you. Assistant uses memories to tailor its remediation guidance for your projects.
Not finding what you need in this doc? Ask questions in our Community Slack group, or see Support for other ways to get help.