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 appshome.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.