macOS
brew install joernlocal Homebrew formula metadata
brew
Open-source code analysis platform based on code property graphs. Version 4.0.570 via Homebrew; verified 2026-07-03.
install
brew install joernlocal Homebrew formula metadata
overview
Open-source code analysis platform based on code property graphs
history
Joern is an open-source code analysis platform built around code property graphs, a graph representation that lets security researchers query syntax, control flow, and data flow through a Scala-based domain-specific language. Its Homebrew formula packages a large CLI surface, including language frontends and helper commands for parsing, scanning, slicing, exporting, and vectorizing code.
The code property graph idea was introduced in vulnerability-research work on C system code and the Linux kernel. Joern grew from that research lineage into a practical tool for creating and querying CPGs, with later research from 2014 to 2016 extending the representation and 2017 onward work at ShiftLeft turning the format into a broader static-analysis foundation.
The public joernio/joern repository was created in 2019 and the project documentation records several architectural shifts: older Joern versions used general-purpose graph databases and Gremlin, later versions moved to OverflowDB, Joern v2 changed the implementation line from Scala 2 to Scala 3, and Joern v4 moved from OverflowDB to flatgraph.
Joern's adoption is strongest in security research and static-analysis workflows where importing incomplete or build-hostile code is valuable. The documentation lists mature or partially mature frontends for C/C++, Java, JavaScript, Python, binary analysis through Ghidra, JVM bytecode, Kotlin, PHP, Go, Ruby, Swift, and C#.
Homebrew distribution makes Joern convenient on macOS and Linux while preserving its JVM/Scala toolchain shape through OpenJDK and sbt-related packaging.
A typical Joern workflow parses source, bytecode, or binaries into a CPG, stores the graph in Joern's graph database, and then uses CPGQL or bundled commands such as joern-scan, joern-slice, and joern-export to inspect code patterns and vulnerability-relevant flows.
Joern matters to package nerds because it turns a research-heavy static-analysis stack into a single installable CLI formula with many frontends. It also shows the unusual packaging profile of modern security tooling: JVM runtime, Scala build tooling, external parsers, and a fast-moving release stream tied to graph storage changes.
security posture
No matching local secret-handling manifest was found for joern. Nucleus package metadata is still published here so future coverage has a stable package URL.
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
abap2cpg | cli | global executable | |
c2cpg.sh | cli | global executable | |
csharpsrc2cpg | cli | global executable | |
ghidra2cpg | cli | global executable | |
gosrc2cpg | cli | global executable | |
javasrc2cpg | cli | global executable | |
jimple2cpg | cli | global executable | |
joern | cli | global executable | |
joern-cpg2scpg | cli | global executable | |
joern-export | cli | global executable | |
joern-flow | cli | global executable | |
joern-parse | cli | global executable | |
joern-scan | cli | global executable | |
joern-slice | cli | global executable | |
joern-vectors | cli | global executable | |
jssrc2cpg.sh | cli | global executable | |
kotlin2cpg | cli | global executable | |
php2cpg | cli | global executable | |
pysrc2cpg | cli | global executable | |
rubysrc2cpg | cli | global executable | |
rust2cpg | cli | global executable | |
schema-extender.sh | cli | global executable | |
swiftsrc2cpg.sh | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/joernio/joern
install metadata
| Package key | brew:joern |
|---|---|
| Version | 4.0.570 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/joern |
| Homepage | https://joern.io/ |
| Repository | https://github.com/joernio/joern |
| Upstream docs | https://docs.joern.io/ |
| License | Apache-2.0 |
| Source archive | https://github.com/joernio/joern/archive/refs/tags/v4.0.570.tar.gz |
| Last updated | 2026-07-03T07:31:21Z |
| Pulse | updated |
| Dependencies | astgen, coreutils, openjdk@25, php |
| Build dependencies | sbt |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | joern |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.