whatisgithub

What is darwin-config?

tboerger/darwin-config — explained in plain English

Analysis updated 2026-07-17 · repo last pushed 2026-06-17

14NixAudience · ops devopsComplexity · 4/5MaintainedSetup · hard

In one sentence

A personal Nix configuration that automatically sets up and rebuilds a macOS machine from code, including encrypted secrets.

Mindmap

mindmap
  root((darwin-config))
    What it does
      Configures macOS
      Installs apps
      Rebuilds machine
    Tech stack
      Nix
      agenix
      macOS
    Use cases
      Reset a Mac fast
      Version-control setup
      Manage secrets safely
    Audience
      Developers
      Sysadmins
      Power users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Rebuild a new or wiped MacBook to a known configured state with one command.

USE CASE 2

Track every setup change in version control and roll back if something breaks.

USE CASE 3

Store SSH keys and passwords encrypted instead of in plain text.

USE CASE 4

Manage multiple machines with a single repeatable configuration.

What is it built with?

NixagenixmacOS

How does it compare?

tboerger/darwin-configthang1191/mikuplymouthimrayy/nixos-dots
Stars14223
LanguageNixNixNix
Last pushed2026-06-172026-05-30
MaintenanceMaintainedMaintained
Setup difficultyhardmoderatemoderate
Complexity4/52/53/5
Audienceops devopsgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires learning Nix and loading encrypted secrets from a physical drive before setup.

No license information is provided in the explanation.

So what is it?

This repository is a personal configuration file for setting up macOS machines automatically. Instead of manually installing apps, configuring settings, and managing dependencies one by one, the owner uses a tool called Nix to describe the entire state of their MacBook in code. When they run a command, Nix reads that code and sets everything up, installing software, organizing preferences, and handling all the bits that normally require clicking through installers and menus. Think of it like a recipe for their computer. Rather than writing down "install Chrome, then install Visual Studio Code, then install this library" as separate steps, they describe the whole setup in one configuration file. If they get a new MacBook or need to reset their current one, they can run a couple of commands and Nix will rebuild everything exactly as it was, without any manual work. Any changes they make to the configuration get tracked, so they can see what changed and roll back if something breaks. The repository also uses a system called agenix to keep secrets (like SSH keys and passwords) encrypted. Instead of storing sensitive information in plain text, they're locked away and only decrypted when needed. The README shows how to load those keys from a physical drive before getting started. This is a one-person project, so it's tailored to the owner's specific needs, their machine is even nicknamed "Dagda" in the code. However, the approach is useful for anyone who wants to manage their computer setup programmatically: developers who move between machines frequently, system administrators handling multiple computers, or anyone who likes having a repeatable, version-controlled record of exactly how their machine is configured.

Copy-paste prompts

Prompt 1
Help me adapt this Nix darwin-config to manage my own macOS setup.
Prompt 2
Explain how agenix is used here to encrypt and decrypt secrets.
Prompt 3
Show me how to rebuild a Mac from scratch using a config like this.
Prompt 4
Walk me through loading secret keys from a drive before running Nix.
Prompt 5
How would I add a new app or setting to this kind of Nix configuration?

Frequently asked questions

What is darwin-config?

A personal Nix configuration that automatically sets up and rebuilds a macOS machine from code, including encrypted secrets.

What language is darwin-config written in?

Mainly Nix. The stack also includes Nix, agenix, macOS.

Is darwin-config actively maintained?

Maintained — commit in last 6 months (last push 2026-06-17).

What license does darwin-config use?

No license information is provided in the explanation.

How hard is darwin-config to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is darwin-config for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.