NixCI vs Hercules CI

NixCI Hercules CI
Locally reproducible
Repro commands provided per job
Every job reproducible locally
"Just" Works
Configuration is entirely optional
Automatic flake output discovery
No vendor lock-in
Workers
Hosted worker vCPUs 16 vCPUs
Hosted worker RAM 64 GB
Bring your own workers
Multi-forge support
GitLab.com support
Codeberg.org support
Self-hosted Forgejo support
Multiple forges in one installation
GitHub.com support
Self-hosted GitHub support
Self-hosted GitLab support
Automatic binary caching
Automatic binary caching
Cachix support
Own cache support
Self-hostable
Self-hostable leader
Self-hostable worker
Continuous deployment
Impure tests with secrets
Continuous deployment
FlakeHub
FlakeHub support

If you spot an inaccuracy in this table, please let us know .

Locally reproducible

Repro commands provided per job

NixCI provides the exact command to reproduce each job locally, including for impure tests and deployments.

Every job reproducible locally

Every job on NixCI can be reproduced locally with a single command.  NixCI shows you the exact command for each job, so when CI fails, you can start fixing it immediately on your machine.

Hercules CI builds are Nix-based so you can rebuild derivations locally, but it does not provide per-job repro commands.

"Just" Works

Configuration is entirely optional

NixCI reads your flake.nix and automatically discovers what to build. All configuration is optional. If it builds with nix flake check locally, it builds on NixCI.

Hercules CI requires installing and configuring a self-hosted agent before CI starts working.

Automatic flake output discovery

NixCI automatically discovers all flake outputs and creates build jobs for them.

No vendor lock-in

NixCI uses standard Nix flakes. Your build definition is your flake.nix, which works everywhere Nix does.

Hosted worker vCPUs

NixCI's hosted workers have 16 vCPUs and 64 GB of RAM, billed per second of actual build time. You can also bring your own workers with whatever hardware you choose.

Hercules CI requires self-hosted agents. You provision your own build machines.

Multi-forge support

GitLab.com support

NixCI integrates with GitLab.com via webhooks and commit status updates.

Codeberg.org support

NixCI integrates with Codeberg.org via webhooks and commit status updates.

Self-hosted Forgejo support

NixCI supports self-hosted Forgejo instances.

Multiple forges in one installation

A single NixCI installation can serve GitHub, GitLab, and Codeberg repositories simultaneously.

GitHub.com support

NixCI works with GitHub  , GitLab  , and Codeberg  . One CI system across all your forges.

Self-hosted GitHub support

NixCI supports self-hosted GitHub Enterprise instances.

Self-hosted GitLab support

NixCI supports self-hosted GitLab instances.

Automatic binary caching

Automatic binary caching

NixCI caches automatically without any configuration. Every build result is cached and subsequent builds pull from the cache to skip work that's already been done.

Hercules CI has no built-in binary cache. It supports Cachix and your own cache.

Cachix support

NixCI has built-in Cachix support. Just add your Cachix cache name to your configuration.

Own cache support

NixCI can push build results to your own binary cache via SSH.

Self-hostable leader

NixCI can be fully self-hosted on your own infrastructure, including the leader, workers, and cache. It also works with self-hosted forges like GitLab and Forgejo.

Hercules CI self-hosting may be available for enterprise customers.

Continuous deployment

Impure tests with secrets

NixCI has built-in support for continuous deployment and impure tests with access to secrets and the network.

Hercules CI supports impure tests as effects.

Continuous deployment

NixCI automatically runs deployment after all builds and tests pass, with no manual dependency declaration needed.

FlakeHub support

NixCI does not have FlakeHub integration. FlakeHub only allows publishing from trusted platforms  .

Get started with NixCI