Comparison
CRACI vs Renovate
Renovate keeps your dependencies up to date according to rules you write. CRACI starts from the other end: it records what each build actually fetched and keeps monitoring it, so you know which shipped builds a new advisory affects.
The short answer
Renovate is built for dependency hygiene: it finds package files, opens update pull requests, and lets you control the noise with schedules, grouping and automerge. CRACI is a GitHub Actions runner that records what each build fetched and monitors those SBOMs for new vulnerabilities. Renovate asks "is there a newer version?" CRACI asks "is something in what we built and shipped vulnerable, and where?" They do not compete for the same job, and they run side by side: Renovate opens the update pull requests, CRACI tells you which builds need one.
| Capability | CRACI | Renovate |
|---|---|---|
| What it answers | Which of the builds you shipped contain a vulnerable package | Which dependencies have a newer version, or a vulnerability alert |
| Runs your builds | Jobs run on CRACI runners | Reads repositories, not builds |
| Dependencies recorded from the build | Observed fetches, including cached packages | Finds references in package files |
| Opens update pull requests | Scheduled updates, plus fixes from GitHub alerts or OSV | |
| Triage and routing to owning teams | Across builds and repositories | Dependency Dashboard per repository |
| Package managers | Detects npm, PyPI, RubyGems, Cargo, Go, Nix, OCI | Over 90 package managers |
| Beyond GitHub | GitHub Actions only | GitLab, Bitbucket, Azure DevOps and more |
| Egress policy at the runner | Default deny or allow, fails closed | Outside its scope |
| SBOM and signed provenance | Per build, completeness per job and cache | Outside its scope |
| Monitoring of shipped SBOMs | Monitored SBOMs re-evaluated continuously | Outside its scope |
| Self-hosting | Managed service | CLI, Docker or self-hosted Community edition |
| Price | Pro is €30 per month until end of 2026, with 10,000 build minutes and one monitored SBOM. | Open source under AGPL-3.0. Mend Renovate Community is free; Mend Renovate Enterprise is a paid plan (as of September 2026). |
- Included
- Partly
- Not included
What Renovate does well
Renovate's documentation opens with "Automated dependency updates. Multi-platform and multi-language." It earns both halves. It "looks for references to dependencies (both public and private)" in your repository and, when newer versions exist, opens pull requests that update them and their lock files.
- Breadth. Over 90 package managers, and repositories on GitHub, GitLab, Bitbucket, Azure DevOps, Gitea and Forgejo, with AWS CodeCommit, Gerrit and SCM-Manager listed as experimental.
- Control. Shareable config presets,
packageRulesfor per-package behavior, schedules to limit when pull requests appear, and automerge for the updates you trust. Its docs note that most teams leave major updates to a human. - Visibility. A Dependency Dashboard issue, on by default in
config:recommended, and information to help decide which updates to accept: age, adoption, pass rates and merge confidence. - Reach. Custom managers handle proprietary file formats and popular formats that Renovate does not support yet.
- Deployment choice. Open source under AGPL-3.0 and maintained by Mend. You can run the CLI or Docker image yourself, use the free Mend Renovate Community cloud app on GitHub.com and Bitbucket Cloud, or run the self-hosted Community or paid Enterprise editions.
How Renovate handles vulnerabilities
Renovate has two routes to security fixes. With vulnerabilityAlerts, it reads GitHub's vulnerability
alerts, which requires the dependency graph and Dependabot alerts to be enabled. Those pull requests "skip the line,"
ignoring schedules and hourly limits, and by default they move to the lowest fixed version. With
osvVulnerabilityAlerts, it checks dependencies against the OSV database, which it downloads and queries
offline. The docs are precise about the limit: "You will only get OSV-based vulnerability alerts for
direct dependencies," for a listed set of datasources.
CRACI does not replace any of this, and it does not open pull requests. If your goal is to keep hundreds of repositories current with minimal effort, Renovate is built for that.
Where CRACI is different
It starts from the build, not the package files
Renovate works from what your repository declares. A build often does more than that: it resolves versions at
install time, restores packages from caches, and downloads tools, OS packages and images that no manifest lists.
expressjs/express 5.2.1 shows the gap at its plainest: it commits no lockfile, so a generator pointed
at a clean checkout has nothing to resolve and reports none of its npm dependencies, however well the tool works.
CRACI cannot be compared that way, because it records builds rather than scanning directories. The files in a
repository and the packages in a build are not the same list.
CRACI runs the build. You change runs-on to craci, and a package-aware proxy records what
each job pulls from npm, PyPI, RubyGems, Cargo, Go, Nix and OCI sources, plus OS and download sources. Every job and
cache gets a completeness state: Complete, Complete with connections, Incomplete, Unavailable or Not recorded.
Monitoring what you shipped
CRACI aggregates vulnerabilities across builds and repositories and keeps re-evaluating monitored SBOMs as new advisories appear. When one lands, you see which builds and repositories actually used the affected package, including packages no manifest lists, and security teams can triage the finding and route it to the team that owns the fix. The trigger is a vulnerability in something a build actually used, not the arrival of a new version.
More than monitoring
Because CRACI is the runner, it also enforces a per-job egress policy (default deny or allow, validated before the job starts, failing closed), signs provenance (Ed25519 over SHA-512) that links each artifact to its build, and exports reports in PDF, HTML, CSV, Excel and JSON. None of that is Renovate's job.
Running both
- Renovate keeps every dependency current on a schedule, across all your platforms and package managers, with automerge for low-risk updates.
- CRACI records each GitHub Actions build, monitors what shipped, and tells you which builds and teams a new vulnerability affects, so you know which update pull requests to merge first.
There is nothing to migrate. Renovate keeps reading your repositories, and your workflows keep running on GitHub Actions on a different runner.
For the Cyber Resilience Act
The CRA expects manufacturers to know what is in each release and to handle vulnerabilities in it. Renovate helps by keeping dependencies patched and current. CRACI records the SBOM of each build, ties it to the artifact, monitors it for new vulnerabilities and keeps the evidence. It automates a significant part of the software supply chain visibility and evidence that companies need for their wider CRA compliance process. See what the CRA is and vulnerability tracking.
See what your builds actually fetched
Book a demo and we will run one of your GitHub Actions workflows on CRACI and walk through its build record and the vulnerabilities in it.
Book a demo