Skip to content

Home Manager

Manages your user-level packages and dotfiles declaratively, using the Nix package manager.

Stars
10.5k
Forks
2.5k
Licence
MIT
Language
Nix
Last update
6 days ago
Type
Dev tool

What it is

Home Manager is a tool that lets you describe your personal environment, such as installed user packages and configuration files (dotfiles), in Nix configuration files instead of setting them up by hand. It is built on Nix and the Nixpkgs library, and it manages only your user, not the whole system. It can run standalone or as a module inside a NixOS or nix-darwin system configuration.

  • Declare your shell, editor, and git configuration in one Nix file and apply it on a new machine
  • Install user-level command-line packages without touching system-wide packages
  • Keep dotfiles under version control and roll back to an earlier generation if a change breaks something
  • Configure GNOME Terminal settings via its dconf store through a dedicated module

Great for

  • People already using Nix or NixOS who want their user environment managed the same way
  • Users who want reproducible dotfiles and per-user packages
  • People on NixOS or macOS (via nix-darwin) who want a user config built alongside the system
  • Users comfortable reading and writing Nix configuration

Not ideal for

  • Beginners new to Nix, since the README warns that errors can be hard to understand and suggests starting with a very simple configuration
  • People on non-NixOS Linux or other systems who want guaranteed support, since the README says it may or may not work outside the targeted NixOS and nixpkgs-unstable setup
  • Users who want a simple point-and-click settings app, since configuration is written in the Nix language
Step-by-step guide: how to use Home ManagerInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Nix package manager · NixOS or another Linux system, or nix-darwin on macOS

    Clone the repository

    git clone https://github.com/nix-community/home-manager
  2. 2

    Run it

    • Read the Home Manager manual's standalone installation section for the exact setup steps
    • Create a small Home Manager configuration file with a few simple options
    • Apply the configuration using the home-manager tool
    • Gradually add more options as you become comfortable with Nix
  3. 3

    Get the most out of it

    • Use the official configuration options reference to find available modules
    • Use the 3rd-party option search site to browse options quickly
    • Use generations and rollbacks to revert a bad change
    • Choose the flake-based setup if you want pinned inputs, as described in the Nix Flakes section of the manual

Downloads

Strengths

  • Declarative: your user environment is described in files you can version and reproduce
  • Supports standalone use plus NixOS and nix-darwin modules, with both channel and flake setups
  • Has a manual, an options search, and an active community chat

Trade-offs

  • Requires familiarity with the Nix language, and errors can be difficult to understand
  • It may overwrite existing manual configuration it cannot detect, as with the GNOME Terminal module
  • Officially targets nixpkgs-unstable and the current stable NixOS release, so other platforms are less certain

How it compares

ProjectStarsTypeLevelUpdatedBest for
home-manager (this)10.5kDev tooladvanced6 days agoPeople already using Nix or NixOS who want their user environment managed the same way
chezmoi22.1kDev toolintermediate4 days agoPeople who use more than one computer and want their settings to match
nixpkgs26.7kOtherintermediate4 days agoLinux users who want a large, reproducible package set
dotfiles31.5kDev toolintermediate2.3 years agoDevelopers on macOS who want to see how someone else sets up their shell
.tmux25.5kDev toolbeginner16 days agoDevelopers who already use tmux and want a better-looking, feature-rich starting config

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.