# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. See `readme.md` for deploy commands. ## Architecture This is a NixOS flake repository managing multiple hosts with shared Home Manager configuration. **Entry point:** `flake.nix` — defines all host configurations via `nixosConfigurations`. A shared `mkHomeManagerConfig` helper wires Home Manager into each host. The `inputs` are passed as `specialArgs` so all modules can access them. **Three layers of system configuration:** - `hosts/modules/core.nix` — minimal layer: user, SSH, fish, nix flakes/gc, locale. Enough to SSH in and rebuild. - `hosts/modules/base.nix` — imports core + day-to-day tools: avahi, mosh, direnv, CLI tools, build toolchains. - `hosts/modules/desktop.nix`, `laptop.nix`, `personal.nix`, `sway.nix`, `niri.nix` — additional layers for GUI hosts. - `hosts//configuration.nix` — host-specific config that imports from `hosts/modules/` **User-level (Home Manager):** - `alex/core.nix` — base for all hosts (shell, git, tools, starship, fish, neovim) - `alex/desktop.nix`, `alex/personal.nix` — conditionally included per host **Hosts:** | Host | Type | Notable | |------|------|---------| | `case` | Laptop | WireGuard, ZeroTier, Syncthing, Sway/Niri | | `count` | Desktop | AMD GPU + ROCm, Ollama | | `armitage` | Laptop | systemd-boot, latest kernel | | `alt` | Proxmox LXC | Media server (Jellyfin, *arr stack) | | `nightcity` | Proxmox LXC | Minimal server | | `panam` | Proxmox LXC | Forgejo instance | | `wintermute` | Proxmox LXC | Reverse proxy (Caddy) | | `bootstrap` | Proxmox LXC | Minimal template for cloning new hosts | **Theme:** Catppuccin Mocha (`alex/colours/catppuchin-mocha.nix`) **Stable channel:** nixpkgs 25.11. Unstable packages are selectively overlaid via the `nixpkgs-unstable` input passed through `specialArgs`.