Comparison
CRACI vs Socket
Socket judges the packages you are about to use: what they do and whether they can be trusted. CRACI records what your build actually pulled in and controls where it can connect. One looks at the package, the other at the build.
The short answer
Socket is best known for catching bad open-source packages before they land. It analyzes package behavior (install scripts, network and filesystem access, obfuscated code, known malware, typosquats) and tells you in the pull request, and Socket Firewall can block a malicious package at install time.
CRACI is a CI runner for GitHub Actions. Your jobs run on it, and while they run it records every external dependency they fetch, enforces an egress policy for the job and signs provenance for the artifact. Socket asks whether a package is safe to use. CRACI records what a build used and where it connected. They are complementary, and a team worried about supply chain attacks benefits from both.
At a glance
| Capability | CRACI | Socket |
|---|---|---|
| Runs your builds | Jobs run on CRACI runners | Integrates with your CI rather than running it |
| Dependencies recorded from the build | Observed fetches, including packages from CI caches | Detected from manifest and lock files |
| Build network egress policy | Default deny or allow, fails closed | Socket Firewall filters package installs only |
| SBOM export (CycloneDX, SPDX) | Every build, with completeness per job and cache | Export in beta, Business plan and up |
| Package behavior analysis | Install scripts, malware, typosquats, obfuscated code | |
| Blocks malicious packages at install | Organization-wide package blocklists | Socket Firewall, with a free version |
| Pull request comments on new dependencies | Socket for GitHub flags risky additions | |
| Reachability analysis | Team plan and up, full application on Enterprise | |
| CI systems | GitHub Actions only today | GitHub Actions, GitLab, Bitbucket, Jenkins, Azure DevOps |
| Pricing | Pro is €30 per month until end of 2026, with 10,000 build minutes and one monitored SBOM. | Free; Team $25 and Business $50 per developer per month; Enterprise custom (as of September 2026). |
- Included
- Partly
- Not included
- On the roadmap
What Socket does well
Socket for GitHub watches pull requests. When a change adds a dependency, Socket analyzes the package's behavior and comments if it is a security risk. Its checks cover install scripts, telemetry, native code, known malware, typosquats, protestware, obfuscated code and privileged API use such as shell, network and filesystem access. This is a different kind of signal from a CVE lookup: it can flag a package that is malicious but has no advisory yet.
Socket Firewall works as a wrapper around a package manager command (sfw npm install) or as a proxy
between package managers and registries. It blocks malicious packages at any depth, including transitive ones. The
free version needs no API key and covers npm, yarn, pnpm, pip, uv and cargo. The Enterprise version adds
configurable policies, private registries and more ecosystems, including Go, Maven, Gradle, RubyGems and NuGet.
Socket also offers reachability analysis, from dependency reachability up to full application reachability, which Socket says can flag up to 90% of vulnerability alerts as irrelevant. It detects manifests across JavaScript, Python, Java, Go, Ruby, Rust, .NET, PHP and Swift, and integrates with GitHub Actions, GitLab, Bitbucket, Jenkins and Azure DevOps. CRACI does not analyze package behavior, does not comment on pull requests and does not block individual packages today.
Where CRACI is different
The build is the source of truth
Socket reads the manifest and lock files a project declares. CRACI observes the build as it runs. A package-aware proxy on the runner sees traffic to package sources across npm, PyPI, RubyGems, Cargo, Go, Nix and OCI, plus OS packages and download presets. Evidence travels with CI caches, so a package restored from a cache is still accounted for. Each SBOM states its completeness per job and per cache: Complete, Complete with connections, Incomplete, Unavailable or Not recorded.
An egress policy for the whole job
Socket Firewall decides whether a package install goes through. CRACI's egress policy decides what the job can reach at all: default deny or default allow, with 24 built-in software-source presets and typed custom sources for npm, PyPI, apt, apk, the Go proxy, Nix, Cargo, OCI registries and Git. Policies are validated before the job starts and fail closed, and CRACI can email you on a violation. A malicious install script that tries to call home is a network problem as much as a package problem. The two controls cover different parts of it.
Provenance and monitoring
Signed provenance links each artifact, including OCI artifacts, to the build that produced it, with signatures in Ed25519 over SHA-512. CRACI aggregates vulnerabilities across builds and repositories, and keeps re-evaluating monitored SBOMs. Reports export in PDF, HTML, CSV, Excel and JSON.
A note on Socket's free SBOM command
Socket CLI offers socket manifest cdxgen, a free local SBOM command that needs no account. Socket documents that this command forwards the call to cdxgen with changed
defaults: a pre-build lifecycle that skips installing dependencies, and JavaScript as the default project type.
Those defaults decide what it can find, and on a repository with no lockfile, such as expressjs/express, there is
nothing there to resolve.
That describes one free local wrapper, not Socket's core product or its server-side SBOM export.
Which one fits
- You want to stop malicious packages at the door: Socket, with its pull request checks and Socket Firewall.
- You need evidence of what went into each release: CRACI records it from the build and ties it to the artifact.
- You want builds that cannot reach unexpected hosts: CRACI's egress policy.
- You run GitLab, Jenkins or Azure DevOps: Socket supports them today. CRACI supports GitHub Actions only.
Together, Socket screens packages before they are added and as they install, and CRACI records and limits what the build did with them.
For the Cyber Resilience Act
Keeping malicious and risky components out of a product helps a manufacturer meet its security obligations, and Socket is built for that. CRACI automates a significant part of the software supply chain visibility and evidence that companies need for their wider CRA compliance process: build-time SBOMs with stated completeness, signed provenance and continuous vulnerability tracking. Neither tool makes a product compliant by itself. See what the CRA is and CRA compliance.
Adding CRACI alongside Socket
Install the CRACI GitHub App, then change runs-on to craci in the workflows you want
recorded. Runs still appear in the GitHub UI, and your Socket integration keeps working on your pull requests.
Learn more about build-time SBOM generation and
vulnerability tracking.
Run one real build and compare
Point one GitHub Actions workflow at CRACI and see every package source the job touched.
Book a demo