impermanence VS home-manager

Compare impermanence vs home-manager and see what are their differences.

impermanence

Modules to help you handle persistent state on systems with ephemeral root storage [maintainer=@talyz] (by nix-community)

home-manager

Manage a user environment using Nix [maintainer=@rycee] [Moved to: https://github.com/nix-community/home-manager] (by rycee)
InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
impermanence home-manager
36 4
1,390 1,753
4.0% -
7.5 9.1
3 months ago about 4 years ago
Nix Nix
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

impermanence

Posts with mentions or reviews of impermanence. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-03-05.
  • Xdg-ninja: checking your $HOME for unwanted files and directories
    2 projects | news.ycombinator.com | 5 Mar 2025
    This is a tough problem to solve. I currently use NixOS with impermanence [1] which is one way of solving it. Impermanence, in short, allows you to explicitely opt-in the files and directories that are persisted after each reboot.

    So while my `~` is not "clean" in the sense that all my config files are in `~/.config`, it is "clean" in the sense that all files in `~` are there for a reason (i.e., `~` is not polluted by uninstalled packages).

    [1] https://github.com/nix-community/impermanence

  • NixOS Is Not Reproducible
    6 projects | news.ycombinator.com | 26 Oct 2024
    Mostly private use, I have 2 servers and a laptop configured with this: https://github.com/matrss/nixfiles. The servers host a bunch of different services from Nextcloud to a DoT-to-ODoH proxy.

    I've also introduced some light NixOS usage at work (3 hosts, one is an uptime-kuma instance, two are Forgejo Actions runners). For that I had to get some proprietary scanner software to run on it, which I could by just putting the extracted deb package in an emulated FHS environment.

    Even for interfacing with legacy systems and unusual stacks I don't think you will need the escape hatch. Anything that is buildable on and above the abstraction-level of "ensure a file is present at some path with some content" should be doable declaratively, and that includes setting up an unusual software stack and running it in systemd services to communicate with some other legacy system or whatever.

    The escape hatch is there to modify how NixOS itself behaves, and modifying that should only be necessary to extend NixOS' core functionality. A quick search revealed that impermanence (https://github.com/nix-community/impermanence) and in some cases sops-nix (https://github.com/Mic92/sops-nix) use it, but those fundamentally extend NixOS with ephemeral root storage support and secrets management, respectively.

  • Ask HN: How to Manage Phones and PCs for Elderly Parents?
    2 projects | news.ycombinator.com | 23 Apr 2024
    You might want to set up NixOS with impermanence, with something like https://github.com/nix-community/impermanence. Install an easy to use desktop environment like ElementaryOS, and configure NixOS with or without Flatpak, if you want to give the user the ability to install new software or not. Then set up automatic updates, automatic garbage collection and you have a truly stable system.
  • Tvix – A New Implementation of Nix
    8 projects | news.ycombinator.com | 16 Apr 2024
    I would not call these projects unbelievable, but they are neat.

    - Opt-in state: https://github.com/nix-community/impermanence and https://grahamc.com/blog/erase-your-darlings/

  • Every NixOS rebuild creates a new Tailscale machine
    1 project | /r/NixOS | 11 Jul 2023
    That way will work - I use the impermanence module which works similarly but allows to hide mounts.
  • Silverblue users: why?
    4 projects | /r/Fedora | 23 Jun 2023
    This is indeed a blind spot. Thanks for pointing that out! Silverblue -to my knowledge- doesn't do a lot to address this. Though, 3rd-party tools like Home Manager and the suite of applications developed by the folks over at uBlue might be able to limit this to a minimum. Though I'm not sure if it surpasses NixOS in this regard; for the uninitiated. Though, to my knowledge, this requires special attention and depends on the specifics of the NixOS system in question.
  • NixOS for the Impatient
    5 projects | news.ycombinator.com | 9 Jun 2023
    [3]: https://github.com/nix-community/impermanence
  • How to add impermanence afterwards?
    1 project | /r/NixOS | 16 May 2023
  • File system choice for Impermanence setup
    1 project | /r/NixOS | 20 Apr 2023
    I have recently stumbled upon Impermanence - modules to help you handle persistent state on systems with ephemeral root storage, and the concept seems quite nice.
  • Erase your darlings: Can this be applied to /home?
    1 project | /r/NixOS | 17 Apr 2023
    I haven't used it yet but nix-community/impermanence has a home-manager module that might be useful.

home-manager

Posts with mentions or reviews of home-manager. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-22.
  • [Help] Home-manager service?
    2 projects | /r/NixOS | 22 Apr 2023
    I really am at lost rn, foud this github issue tried the solution and it didn't work.
  • NixOS and Neovim plugins
    3 projects | /r/NixOS | 24 Oct 2022
  • Flakes, nixos and home-configuration help
    2 projects | /r/NixOS | 7 May 2022
    { config, pkgs, ... }: { imports = [ (import "${builtins.fetchTarball https://github.com/rycee/home-manager/archive/master.tar.gz}/nixos") ]; users.users = { jdoe = { isNormalUser = true; initialPassword = "1234"; extraGroups = [ "wheel" ]; }; }; home-manager.useUserPackages = true; home-manager.users.jdoe = { home.stateVersion = "21.11"; programs.home-manager.enable = true; programs.git.userName = "John"; programs.git.userEmail = "Doe"; programs.zsh.zplug = { enable = true; plugins = [ { name = "zsh-users/zsh-autosuggestions"; } { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; } { name = "ohmyzsh/ohmyzsh oh-my-zsh"; } { name = "ajeetdsouza/zoxide"; } { name = "marlonrichert/zsh-autocomplete"; } { name = "marlonrichert/zsh-edit"; } { name = "zsh-users/zsh-autosuggestions"; } { name = "ptavares/zsh-exa"; } { name = "zsh-users/zsh-syntax-highlighting"; } { name = "mbenford/zsh-tmux-auto-title"; } { name = "zsh-users/zsh-history-substring-search"; } ]; }; services.gpg-agent = { enable = true; defaultCacheTtl = 1800; enableSshSupport = true; }; }; }
  • How do I do declarative package management using nix package manager on Debian?
    2 projects | /r/NixOS | 6 Jan 2021
    There are multiple ways of managing declarative profiles. 1) Attrset, compatible with imperative use of nix-env https://git.io/fAQHW ; 2) buildEnv, providing more control over the paths that are linked into the profile https://git.io/fp0aU ; 3) home-manager, providing nixos-like config for your ~ https://github.com/rycee/home-manager

What are some alternatives?

When comparing impermanence and home-manager you can also consider the following projects:

nix-config - :space_invader: NixOS configuration

nixos-flake-example - This is a demo NixOS config, with optional flakes support. Along with notes on why flakes is useful and worth adopting.

nix-config - Nix configurations

nixos-vscode-server - Visual Studio Code Server support in NixOS

nixpkgs - My Nix system configs!

gitignore.nix - Nix functions for filtering local git sources

InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured