Skip to main content
Reproducible everything. nix build and walk away.
The four Nix repos are layered, not parallel. nix-darwin sits at the top and orchestrates the macOS system. nix-home defines the user environment via home-manager. nix-ai packages every AI coding tool, including Claude, Antigravity, Copilot, MLX, and MCP servers. nix-devenv provides reusable project-level dev shells. Every flake in the ecosystem pins the same nixpkgs / nix-darwin / home-manager release channel, kept in lockstep across repos so one machine never mixes generations.

Ecosystem

nix-darwin (coral) is the system root. It imports nix-home and nix-ai (green). nix-devenv (ink) is a parallel concern. Each project pulls it directly via nix flake init.

Package placement

The boundary between system, user, and project is intentional:
  • environment.systemPackages (nix-darwin): core bootstrap, macOS-only tools, GUI apps
  • home.packages (nix-home): user dev tools, linters, command-line tools that follow $HOME
  • AI packages (nix-ai): Claude, Antigravity, Copilot, MLX, MCP servers
  • Project dev shells (nix-devenv): language- or stack-specific tooling that should not pollute the global PATH
programs.* declarations follow the same boundary; home-manager merges both layers cleanly.

Continuous integration

Nix CI runs through shared reusable workflows: _nix-validate.yml for nix flake check and _nix-build.yml for macOS builds. Every repo validates the same way. Caching uses the GitHub Actions cache (actions/cache) backed by the public cache.nixos.org binary cache. These workflows do not use FlakeHub. FlakeHub’s hosted binary cache no longer offers a useful free tier, so there is nothing to gain from it. A FlakeHub-backed cache action also fails CI outright when it cannot authenticate to api.flakehub.com. The Determinate Systems Nix installer (determinate-nix-action) and the Determinate Nix module stay in use: both are free and independent of the FlakeHub cache.

Repos in this section

nix-darwin

macOS system config. Imports nix-ai and nix-home. The top-level entry point.

nix-ai

Every AI coding tool, packaged. Claude Code, Antigravity, Copilot, MLX, MCP servers.

nix-home

User dev environment via home-manager. Shell, editor, git, dev tools.

nix-devenv

Reusable per-project dev shells. nix flake init -t github:JacobPEvans/nix-devenv#mkshell.

Why four repos, not one

Each layer is independently useful. nix-devenv is consumed by every other repo in the portfolio via nix flake init. nix-ai is consumed by personal config and by team setups. Splitting them keeps the dependency graph clean and lets each layer iterate at its own pace.