nix-darwin

Configure macOS system settings, packages, and services declaratively with nix-darwin.

1|1|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/Jylhis/skills --skill nix-darwin-jylhis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nix-darwin
Source: https://github.com/Jylhis/skills/tree/main/skills/nix-darwin
Command: npx skills add https://github.com/Jylhis/skills --skill nix-darwin-jylhis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Configure macOS declaratively using nix-darwin to manage system settings, packages, services, and per-user configurations with a single source of truth across machines.

Core Features & Use Cases

  • Declarative system settings, launchd services, and macOS defaults aligned with Home Manager integration for per-user configuration.
  • Flake-based setup and modular nix-darwin configuration to reproduce environments and simplify migrations.
  • Use cases include setting up a consistent development workstation, applying changes across multiple Macs, and recovering a known-good state from a flake.

Quick Start

Install Nix and run darwin-rebuild switch --flake .#my-mac to apply the configuration.

Frequently Asked Questions about nix-darwin

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I declaratively configure macOS system settings and packages?

Apply changes across multiple Macs and recover a known-good state by running darwin-rebuild switch --flake .#my-mac, which uses a modular nix-darwin configuration to reproduce environments and simplify migrations.

Does nix-darwin work with Home Manager for per-user configurations?

Yes, nix-darwin works with Home Manager to align per-user configurations with declarative system settings, enabling reproducible workstation configurations for development teams within a single flake-based setup.

Do I need a Nix environment to manage macOS defaults and launchd services?

Yes, you need a Nix-based environment with a flake.nix containing nix-darwin inputs to manage macOS defaults and launchd services, utilizing the darwin-rebuild workflow to apply changes.

What is the best way to reproduce a development workstation configuration across multiple Macs?

The best way to reproduce a development workstation across multiple Macs is using nix-darwin's modular flake-based setup to define system settings, packages, and services as a single source of truth, then applying them with darwin-rebuild.

Can I set up a consistent development environment and recover a known-good state from a flake?

Yes, you can set up a consistent development environment and recover a known-good state from a flake by defining your macOS system settings and packages declaratively with nix-darwin and applying them via the darwin-rebuild workflow.