Declarative macOS Management :)

Your Mac, defined in code

nixmac brings the power of Nix to macOS. Declaratively manage packages, settings, and configurations. Version control your entire system. Reproduce your setup anywhere.

Requires Apple Silicon, macOS 12+, and Nix

nixmac desktop application showing the system manager interface with configuration options

Trusted by developers who care about reproducible, declarative system management

Features

Everything you need to manage your Mac

nixmac wraps the complexity of Nix in a beautiful native interface, making declarative system management accessible to everyone.

Declarative Configuration

Define your entire system in code. No more manual setup or forgotten configurations.

Version Control

Track changes to your system configuration with Git. Roll back mistakes instantly.

Reproducible Builds

Set up a new machine in minutes with the exact same configuration every time.

Atomic Updates

System changes are atomic. If something fails, your system stays in a working state.

Multiple Hosts

Manage configurations for multiple machines from a single repository with ease.

Natural Language

Describe changes in plain English. nixmac translates your intent into configuration.

How It Works

Simple, yet powerful

Get started in minutes. nixmac handles the complexity so you can focus on what matters.

1

Describe your desired state

Tell nixmac what you want. Install packages, configure settings, set up keyboard shortcuts - all in plain language or by selecting from curated options.

Install vimAdd Rectangle appConfigure git
2

Review and evolve

nixmac shows you exactly what will change before applying. Click "Review" and watch as your system transforms to match your configuration. Every change is tracked and reversible.

3

Share and reproduce

Your configuration lives in a Git repository. Share it with your team, sync across machines, or use it to set up a brand new Mac in minutes. Your system is now code.

Configuration as Code

Your entire Mac in a single file

See exactly what your system looks like. Version control everything.

flake.nix
{
  description = "My Mac configuration";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
    darwin.url = "github:lnl7/nix-darwin";
  };

  outputs = { self, nixpkgs, darwin }: {
    darwinConfigurations."macbook" = darwin.lib.darwinSystem {
      system = "aarch64-darwin";
      modules = [{
        environment.systemPackages = with nixpkgs; [
          vim git ripgrep fzf
        ];

        homebrew = {
          enable = true;
          casks = [ "rectangle" "raycast" "arc" ];
        };

        system.defaults.dock.autohide = true;
      }];
    };
  };
}
FAQ

Frequently Asked Questions

Everything you need to know about nixmac

Ready to evolve your Mac?

Join developers who have embraced declarative system management. Download nixmac and take control of your configuration.

Free and open source. Apple Silicon and macOS 12+ required.