
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
How to get it
- 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
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
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
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| home-manager (this) | 10.5k | Dev tool | advanced | 6 days ago | People already using Nix or NixOS who want their user environment managed the same way |
| chezmoi | 22.1k | Dev tool | intermediate | 4 days ago | People who use more than one computer and want their settings to match |
| nixpkgs | 26.7k | Other | intermediate | 4 days ago | Linux users who want a large, reproducible package set |
| dotfiles | 31.5k | Dev tool | intermediate | 2.3 years ago | Developers on macOS who want to see how someone else sets up their shell |
| .tmux | 25.5k | Dev tool | beginner | 16 days ago | Developers 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.