Build Nix packages once and share them for good.

Get Started


If a project build takes 15 minutes, why build it three times and waste your users time? With Cachix you can just easily distribute the binaries.

  • You build your software project on your laptop during development.
  • Your Continuous Integration builds the project again to verify there are no mistakes.
  • Users of your project build it again to use or deploy it.


Nix builds a package in isolation from your system. This ensures that build process is reproducible and doesn’t have undeclared dependencies, so if a package is built on one machine, it will build identically on another machine.

Nix also hashes the inputs before building a package. By querying Cachix with the hash, it's possible to download the binary identified by the hash as a replacement for the build process.


Binary Cache as a Service - Cachix: allows you to create your own binary caches within seconds after you've signed-in:

$ cachix create <name>

and be able to upload binaries to https://<name> with a simple command:

$ nix-build | cachix push <name>

While users of your cache can configure Nix without fiddling with config files:

$ cachix use <name>


Free for Open Source

Hook up your favourite Continuous Integration for public projects.


Signing key is never revealed to Cachix, as cli signs packages locally on your machine.

Fast & Robust

Built with Haskell and Elm, querying binary cache takes ~20 milliseconds.

Zero hassle

Having a binary cache is just a few commands away.


In no particular order:

Garbage collection

Since binary caches can grow, there should be a way to configure a garbage collection strategy.

See issue #20

Declarative interface

Currently cachix push, cachix use, etc are a low-level imperative interface. In the future it should be possible to declaratively configure in your project what binary caches it uses.

See issue #14

Search over executables

It's worth exploring if indexing all files in binary cache is feasible with a search over executables provided (offline and online).

See issue #18

Documentation + HTTP API

Once API and implementation stabilize in next months, there should be documentation about how Cachix works in details besides the current getting started page. Moreover, can be documented and published as stable.

See issue #19


Get Started


Why Nix?

Read further.

How does Cachix differ from

The official nixpkgs binary cache at serves all built packages from nixpkgs github repository. While in most cases it's reasonable to upstream packages to nixpkgs, there are also many cases when that's not feasible. Cachix allows decentralized version management while still benefiting a binary cache.

Made by

I've started using Nix in 2012 and after years of many contributions in free time, started using Nix exclusively in 2016 packaging up OpenStack and functional testing a cluster with scenarios.

In 2016 I've founded Enlambda consulting which helped many clients like Snabb and IOHK to adopt Nix as a way to solve interesting complex software distribution problems in our industry.

Domen Kožar