configuration for my mac and linux workstations
  • Nix 58%
  • TypeScript 25.6%
  • Shell 11.9%
  • Just 2.3%
  • Lua 2.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-31 23:18:30 -04:00
.github/workflows refactor(skills): track davegallant/skills as a flake input 2026-08-21 12:08:46 -04:00
docs perf(pi): reduce agent token overhead 2026-08-15 08:36:04 -04:00
home fix(ghostty): use epoll backend 2026-08-22 12:35:10 -04:00
hosts fix(hephaestus): ignore unused network interface 2026-08-31 23:18:30 -04:00
litellm feat(litellm): route enricher through ChatGPT GPT-5.4 2026-08-14 19:07:05 -04:00
pkgs fix(hephaestus): remove chatgpt 2026-08-31 22:48:49 -04:00
.envrc Add azure-cli-extensions.fzf 2026-04-24 11:17:06 -04:00
.gitignore feat(helios): add ente auth 2026-06-13 15:11:01 -04:00
AGENTS.md feat(agents): document shell traps and fix sandbox write gaps 2026-08-19 11:02:09 -04:00
CLAUDE.md feat(agents): document shell traps and fix sandbox write gaps 2026-08-19 11:02:09 -04:00
darwin.nix fix(darwin): re-enable LSQuarantine for downloaded apps 2026-07-14 12:24:34 -04:00
flake.lock chore: flake.lock update (#253) 2026-08-29 14:02:53 -04:00
flake.nix fix(flake): fix statix dev shell override 2026-08-22 10:56:41 -04:00
justfile feat(chatgpt): add update helper 2026-08-29 18:17:29 -04:00
LICENSE Create LICENSE 2023-09-30 21:20:12 -04:00
nixos.nix fix(brave): wire plasma browser integration into chromium native-messaging dir 2026-08-11 19:22:42 -04:00
opensnitch.nix revert(hephaestus): reinstate opensnitch config 2026-07-12 21:11:48 -04:00
packages.nix feat(agents): document shell traps and fix sandbox write gaps 2026-08-19 11:02:09 -04:00
README.md fix(hephaestus): tune rfd-enrich schedule and kwallet autologin 2026-08-06 18:29:42 -04:00
renovate.json refactor(skills): track davegallant/skills as a flake input 2026-08-21 12:08:46 -04:00
statix.toml ci: simplify renovate config and add nix linting 2026-06-01 10:50:49 -04:00

nix-config

This repo stores nix configuration to manage my hosts running NixOS and macOS.

The configuration is very specific to my own machines and setup, but it may be a useful reference for anyone else learning or experimenting with nix, whether it be on a personal workstation or a server environment.

flowchart TD
    flake["flake.nix"]
    flake --> nixos["nixosConfigurations"]
    flake --> darwin["darwinConfigurations"]

    nixos --> hephaestus["hephaestus (NixOS)"]

    darwin --> kratos["kratos (macOS)"]
    darwin --> helios["helios (macOS)"]

    hephaestus --> hostA["hosts/hephaestus.nix"]
    kratos --> hostK["hosts/kratos.nix"]
    helios --> hostHe["hosts/helios.nix"]

    hostA --> hm["home-manager (./home)"]
    hostK --> hm
    hostHe --> hm

Prerequisites

Build

To run a build/rebuild:

just rebuild

Updates

Updates are proposed by renovate. To build the system, checkout the renovate PR and run just rebuild.

If the build is stable, run just merge-pr.

Common Recipes

Run just to view all recipes and associated descriptions:

 just
Available recipes:
    clean                    # run nix garbage collection (user + root)
    fmt                      # format all nix files [alias: f]
    merge-pr                 # squash-merge current branch's PR with nvd diff in body
    rebuild                  # build, show nvd diff, then switch [alias: r]
    rollback                 # switch to previous generation
    update-claude *version   # usage: just update-claude [VERSION]  (VERSION without leading 'v'; defaults to latest)
    update-pi *version       # usage: just update-pi [VERSION]  (VERSION without leading 'v'; defaults to latest)