explaingit

nixos/nixpkgs

📈 Trending24,783NixAudience · developerComplexity · 4/5ActiveLicenseSetup · moderate

TLDR

A collection of 120,000+ software package definitions for the Nix package manager, enabling reproducible, isolated software installation on Linux and macOS.

Mindmap

mindmap
  root((repo))
    What it does
      Package definitions
      Reproducible builds
      Isolated installation
    Core concept
      Functional approach
      Content-addressed storage
      Rollback support
    Use cases
      Install software via Nix
      Build NixOS systems
      Contribute packages
    Tech stack
      Nix language
      Linux systems
      macOS support

Things people build with this

USE CASE 1

Install and manage software packages reproducibly on Linux or macOS without breaking existing dependencies.

USE CASE 2

Declare and version-control your entire NixOS system configuration, then rebuild it identically on any machine.

USE CASE 3

Contribute new package definitions to the ecosystem so others can install software via Nix.

USE CASE 4

Roll back your system or individual packages to any previous state without manual cleanup.

Tech stack

NixLinuxmacOS

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Nix package manager installation first, which itself takes 10-15 minutes and needs system-level setup.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice and license text.

In plain English

Nixpkgs is the official package collection for the Nix package manager and the foundation of NixOS, a Linux operating system. It contains definitions for over 120,000 software packages, not the software itself, but instructions written in the Nix language that tell the Nix package manager exactly how to build and install each one. The central idea behind Nix is "purely functional" package management. Unlike traditional package managers that modify a shared system state, Nix builds each package in isolation and stores results in a content-addressed path. This means installing or upgrading one package cannot accidentally break another, and you can roll back to any previous state easily. NixOS extends this idea to an entire operating system: the whole system configuration, including services, users, and installed software, is declared in Nix expressions, so the system can always be reproduced exactly from source. You would use Nixpkgs if you want to install software via the Nix package manager on Linux or macOS, if you are running or building a NixOS system, or if you want to contribute a new package to the ecosystem. The repository is one of the most active on GitHub and is written entirely in the Nix language.

Copy-paste prompts

Prompt 1
How do I add a new package to nixpkgs? Walk me through the structure of a package definition in the Nix language.
Prompt 2
Show me how to write a NixOS configuration file that declares my system setup, including services and installed software.
Prompt 3
Explain how Nix's content-addressed storage prevents one package upgrade from breaking another package.
Prompt 4
I want to use nixpkgs to install a specific version of Python and some libraries. How do I set up a reproducible development environment?
Prompt 5
What's the difference between nixpkgs and NixOS, and when would I use each one?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.