This commit is contained in:
Harivansh Rathi 2026-03-12 19:53:51 -04:00
parent 67d552b4ff
commit 615313b71c
43 changed files with 20 additions and 2831 deletions

View file

@ -1,231 +0,0 @@
# Homebrew to nixpkgs Validation
Generated by `scripts/validate-homebrew-against-nixpkgs.py`.
Validation method:
- official source: `search.nixos.org` backend
- channel: `nixos-unstable`
- brew source: `inventory/current/brew-bundle.txt`
- cask source: `inventory/current/brew-casks.txt`
- exact verification: Elasticsearch `_count` on `package_attr_name` with `package_platforms = aarch64-darwin`
- search URLs are included for human follow-up, but the exact-count result is the real gate
- backend alias used: `latest-44-nixos-unstable`
- brews moved to Nix: `71`
- brews kept in Homebrew: `9`
- casks moved to Nix: `10`
- casks kept in Homebrew: `10`
## Brews
| Homebrew item | nixpkgs attr | Exact verified | In flake | Action | Reason |
|---|---|---|---|---|---|
| `python@3.13` | `-` | no | yes | `keep-homebrew` | exact standalone nixpkgs attr not confirmed via official search backend |
| `apache-arrow` | `arrow-cpp` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `binwalk` | `binwalk` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `cloc` | `cloc` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `cloudflared` | `cloudflared` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `cmake` | `cmakeCurses` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `coreutils` | `coreutils-prefixed` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `criterion` | `criterion` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `diff-so-fancy` | `diff-so-fancy` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `e2fsprogs` | `e2fsprogs` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `fd` | `fd` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `ffmpeg` | `ffmpeg_7` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `flyctl` | `flyctl` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `fzf` | `fzf` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `gh` | `gh` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `git-delta` | `delta` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `git-filter-repo` | `git-filter-repo` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `git-lfs` | `git-lfs` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `gitleaks` | `gitleaks` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `gnu-time` | `time` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `go` | `go_1_26` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `helm` | `kubernetes-helm-wrapped` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `imagemagick` | `imagemagickBig` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `jq` | `jq` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `k9s` | `k9s` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `kind` | `kind` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `lazygit` | `lazygit` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `libpq` | `libpq` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `librsvg` | `librsvg` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `livekit` | `livekit` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `livekit-cli` | `livekit-cli` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `llmfit` | `llmfit` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `mactop` | `mactop` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `minikube` | `minikube` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `mint` | `mint` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `mise` | `mise` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `neovim` | `neovim` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `node` | `nodejs_22` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `openjdk` | `javaPackages.compiler.openjdk25` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `pandoc` | `pandoc` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `pipx` | `pipx` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `poppler` | `poppler` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `portaudio` | `portaudio` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `postgresql@14` | `postgresql_14` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `postgresql@16` | `postgresql_16` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `postgresql@17` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `potrace` | `potrace` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `redis` | `redis` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `resvg` | `resvg` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `ripgrep` | `ripgrep` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `semgrep` | `semgrep` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `sevenzip` | `p7zip` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `sox` | `sox` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `stow` | `stow` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `swiftformat` | `swiftformat` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `swiftlint` | `swiftlint` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `tailscale` | `tailscale` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `tmux` | `tmux` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `tree` | `tree` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `trivy` | `trivy` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `universal-ctags` | `universal-ctags` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `websocat` | `websocat` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `wget` | `wget` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `worktrunk` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `yazi` | `yazi-unwrapped` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `yq` | `yq` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `yt-dlp` | `yt-dlp` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `zoxide` | `zoxide` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `zsh-autosuggestions` | `zsh-autosuggestions` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `zsh-syntax-highlighting` | `zsh-syntax-highlighting` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `daytonaio/tap/daytona` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `hashicorp/tap/terraform` | `terraform` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `jnsahaj/lumen/lumen` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `nicosuave/tap/memex` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `steipete/tap/bird` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `steipete/tap/gogcli` | `gogcli` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `steipete/tap/summarize` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `stripe/stripe-cli/stripe` | `stripe-cli` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `supabase/tap/supabase` | `supabase-cli` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `withgraphite/tap/graphite` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
## Casks
| Homebrew item | nixpkgs attr | Exact verified | In flake | Action | Reason |
|---|---|---|---|---|---|
| `aerospace` | `aerospace` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `anaconda` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `codelayer` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `codex` | `codex` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `codexbar` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `companion` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `emacs-app` | `emacs` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `font-jetbrains-mono` | `jetbrains-mono` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `font-symbols-only-nerd-font` | `nerd-fonts.symbols-only` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `gcloud-cli` | `google-cloud-sdk` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `ghostty@tip` | `ghostty-bin` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `ngrok` | `ngrok` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `opencode-desktop` | `opencode-desktop` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
| `osaurus` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `pants` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `riptide-beta` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `riptide-dev` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `riptide-experimental` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `virtualbox` | `-` | no | yes | `keep-homebrew` | no exact nixpkgs attr on aarch64-darwin |
| `warp` | `warp-terminal` | yes | yes | `move-to-nix` | validated exact attr on nixos-unstable |
## Human Search Links
- `python@3.13`: https://search.nixos.org/packages?channel=unstable&query=python%403.13
- `apache-arrow`: https://search.nixos.org/packages?channel=unstable&query=arrow-cpp
- `binwalk`: https://search.nixos.org/packages?channel=unstable&query=binwalk
- `cloc`: https://search.nixos.org/packages?channel=unstable&query=cloc
- `cloudflared`: https://search.nixos.org/packages?channel=unstable&query=cloudflared
- `cmake`: https://search.nixos.org/packages?channel=unstable&query=cmakeCurses
- `coreutils`: https://search.nixos.org/packages?channel=unstable&query=coreutils-prefixed
- `criterion`: https://search.nixos.org/packages?channel=unstable&query=criterion
- `diff-so-fancy`: https://search.nixos.org/packages?channel=unstable&query=diff-so-fancy
- `e2fsprogs`: https://search.nixos.org/packages?channel=unstable&query=e2fsprogs
- `fd`: https://search.nixos.org/packages?channel=unstable&query=fd
- `ffmpeg`: https://search.nixos.org/packages?channel=unstable&query=ffmpeg_7
- `flyctl`: https://search.nixos.org/packages?channel=unstable&query=flyctl
- `fzf`: https://search.nixos.org/packages?channel=unstable&query=fzf
- `gh`: https://search.nixos.org/packages?channel=unstable&query=gh
- `git-delta`: https://search.nixos.org/packages?channel=unstable&query=delta
- `git-filter-repo`: https://search.nixos.org/packages?channel=unstable&query=git-filter-repo
- `git-lfs`: https://search.nixos.org/packages?channel=unstable&query=git-lfs
- `gitleaks`: https://search.nixos.org/packages?channel=unstable&query=gitleaks
- `gnu-time`: https://search.nixos.org/packages?channel=unstable&query=time
- `go`: https://search.nixos.org/packages?channel=unstable&query=go_1_26
- `helm`: https://search.nixos.org/packages?channel=unstable&query=kubernetes-helm-wrapped
- `imagemagick`: https://search.nixos.org/packages?channel=unstable&query=imagemagickBig
- `jq`: https://search.nixos.org/packages?channel=unstable&query=jq
- `k9s`: https://search.nixos.org/packages?channel=unstable&query=k9s
- `kind`: https://search.nixos.org/packages?channel=unstable&query=kind
- `lazygit`: https://search.nixos.org/packages?channel=unstable&query=lazygit
- `libpq`: https://search.nixos.org/packages?channel=unstable&query=libpq
- `librsvg`: https://search.nixos.org/packages?channel=unstable&query=librsvg
- `livekit`: https://search.nixos.org/packages?channel=unstable&query=livekit
- `livekit-cli`: https://search.nixos.org/packages?channel=unstable&query=livekit-cli
- `llmfit`: https://search.nixos.org/packages?channel=unstable&query=llmfit
- `mactop`: https://search.nixos.org/packages?channel=unstable&query=mactop
- `minikube`: https://search.nixos.org/packages?channel=unstable&query=minikube
- `mint`: https://search.nixos.org/packages?channel=unstable&query=mint
- `mise`: https://search.nixos.org/packages?channel=unstable&query=mise
- `neovim`: https://search.nixos.org/packages?channel=unstable&query=neovim
- `node`: https://search.nixos.org/packages?channel=unstable&query=nodejs_22
- `openjdk`: https://search.nixos.org/packages?channel=unstable&query=javaPackages.compiler.openjdk25
- `pandoc`: https://search.nixos.org/packages?channel=unstable&query=pandoc
- `pipx`: https://search.nixos.org/packages?channel=unstable&query=pipx
- `poppler`: https://search.nixos.org/packages?channel=unstable&query=poppler
- `portaudio`: https://search.nixos.org/packages?channel=unstable&query=portaudio
- `postgresql@14`: https://search.nixos.org/packages?channel=unstable&query=postgresql_14
- `postgresql@16`: https://search.nixos.org/packages?channel=unstable&query=postgresql_16
- `postgresql@17`: https://search.nixos.org/packages?channel=unstable&query=postgresql%4017
- `potrace`: https://search.nixos.org/packages?channel=unstable&query=potrace
- `redis`: https://search.nixos.org/packages?channel=unstable&query=redis
- `resvg`: https://search.nixos.org/packages?channel=unstable&query=resvg
- `ripgrep`: https://search.nixos.org/packages?channel=unstable&query=ripgrep
- `semgrep`: https://search.nixos.org/packages?channel=unstable&query=semgrep
- `sevenzip`: https://search.nixos.org/packages?channel=unstable&query=p7zip
- `sox`: https://search.nixos.org/packages?channel=unstable&query=sox
- `stow`: https://search.nixos.org/packages?channel=unstable&query=stow
- `swiftformat`: https://search.nixos.org/packages?channel=unstable&query=swiftformat
- `swiftlint`: https://search.nixos.org/packages?channel=unstable&query=swiftlint
- `tailscale`: https://search.nixos.org/packages?channel=unstable&query=tailscale
- `tmux`: https://search.nixos.org/packages?channel=unstable&query=tmux
- `tree`: https://search.nixos.org/packages?channel=unstable&query=tree
- `trivy`: https://search.nixos.org/packages?channel=unstable&query=trivy
- `universal-ctags`: https://search.nixos.org/packages?channel=unstable&query=universal-ctags
- `websocat`: https://search.nixos.org/packages?channel=unstable&query=websocat
- `wget`: https://search.nixos.org/packages?channel=unstable&query=wget
- `worktrunk`: https://search.nixos.org/packages?channel=unstable&query=worktrunk
- `yazi`: https://search.nixos.org/packages?channel=unstable&query=yazi-unwrapped
- `yq`: https://search.nixos.org/packages?channel=unstable&query=yq
- `yt-dlp`: https://search.nixos.org/packages?channel=unstable&query=yt-dlp
- `zoxide`: https://search.nixos.org/packages?channel=unstable&query=zoxide
- `zsh-autosuggestions`: https://search.nixos.org/packages?channel=unstable&query=zsh-autosuggestions
- `zsh-syntax-highlighting`: https://search.nixos.org/packages?channel=unstable&query=zsh-syntax-highlighting
- `daytonaio/tap/daytona`: https://search.nixos.org/packages?channel=unstable&query=daytona
- `hashicorp/tap/terraform`: https://search.nixos.org/packages?channel=unstable&query=terraform
- `jnsahaj/lumen/lumen`: https://search.nixos.org/packages?channel=unstable&query=lumen
- `nicosuave/tap/memex`: https://search.nixos.org/packages?channel=unstable&query=memex
- `steipete/tap/bird`: https://search.nixos.org/packages?channel=unstable&query=bird
- `steipete/tap/gogcli`: https://search.nixos.org/packages?channel=unstable&query=gogcli
- `steipete/tap/summarize`: https://search.nixos.org/packages?channel=unstable&query=summarize
- `stripe/stripe-cli/stripe`: https://search.nixos.org/packages?channel=unstable&query=stripe-cli
- `supabase/tap/supabase`: https://search.nixos.org/packages?channel=unstable&query=supabase-cli
- `withgraphite/tap/graphite`: https://search.nixos.org/packages?channel=unstable&query=graphite
- `aerospace`: https://search.nixos.org/packages?channel=unstable&query=aerospace
- `anaconda`: https://search.nixos.org/packages?channel=unstable&query=anaconda
- `codelayer`: https://search.nixos.org/packages?channel=unstable&query=codelayer
- `codex`: https://search.nixos.org/packages?channel=unstable&query=codex
- `codexbar`: https://search.nixos.org/packages?channel=unstable&query=codexbar
- `companion`: https://search.nixos.org/packages?channel=unstable&query=companion
- `emacs-app`: https://search.nixos.org/packages?channel=unstable&query=emacs
- `font-jetbrains-mono`: https://search.nixos.org/packages?channel=unstable&query=jetbrains-mono
- `font-symbols-only-nerd-font`: https://search.nixos.org/packages?channel=unstable&query=nerd-fonts.symbols-only
- `gcloud-cli`: https://search.nixos.org/packages?channel=unstable&query=google-cloud-sdk
- `ghostty@tip`: https://search.nixos.org/packages?channel=unstable&query=ghostty-bin
- `ngrok`: https://search.nixos.org/packages?channel=unstable&query=ngrok
- `opencode-desktop`: https://search.nixos.org/packages?channel=unstable&query=opencode-desktop
- `osaurus`: https://search.nixos.org/packages?channel=unstable&query=osaurus
- `pants`: https://search.nixos.org/packages?channel=unstable&query=pants
- `riptide-beta`: https://search.nixos.org/packages?channel=unstable&query=riptide-beta
- `riptide-dev`: https://search.nixos.org/packages?channel=unstable&query=riptide-dev
- `riptide-experimental`: https://search.nixos.org/packages?channel=unstable&query=riptide-experimental
- `virtualbox`: https://search.nixos.org/packages?channel=unstable&query=virtualbox
- `warp`: https://search.nixos.org/packages?channel=unstable&query=warp-terminal

View file

@ -1,308 +0,0 @@
# Machine Audit
This is the baseline inventory used to seed the first pass of this Nix config.
## Host Summary
- Machine: `hari-macbook-pro`
- Hostname: `hari-macbook-pro.local`
- Platform: `arm64-darwin`
- OS: macOS `26.3` (`25D5112c`)
- Nix: `2.34.1`
- `darwin-rebuild`: not installed yet
## Filesystem Roots Checked
Top-level roots on `/`:
- `Applications`
- `Library`
- `System`
- `Users`
- `nix`
- `opt`
- `private`
- `usr`
Large user-owned roots spotted during audit:
- `/Users/rathi`
- `/Users/rathi/Documents`
- `/Users/rathi/Library`
- `/Users/rathi/.config`
- `/Users/rathi/.local`
- `/opt/homebrew`
## Live Dotfiles Source Of Truth
The live machine is wired to `~/dots`, not `~/Documents/GitHub/dots`.
Confirmed symlinks:
- `~/.gitconfig -> ~/dots/git/.gitconfig`
- `~/.zshrc -> ~/dots/zsh/.zshrc`
There is also a duplicate clone at `~/Documents/GitHub/dots`. Content matched during the audit, but the active machine points at `~/dots`.
## Homebrew Inventory
This repo currently mirrors the top-level Homebrew inventory rather than every transitive dependency.
For a raw rerunnable dump, use `./scripts/snapshot-machine.sh`. The generated files go under `inventory/current/`.
### Taps
- `daytonaio/tap`
- `getcompanion-ai/tap`
- `hashicorp/tap`
- `homebrew/services`
- `humanlayer/humanlayer`
- `jnsahaj/lumen`
- `nicosuave/tap`
- `nikitabobko/tap`
- `opencode-ai/tap`
- `pantsbuild/tap`
- `pipedreamhq/pd-cli`
- `steipete/tap`
- `stripe/stripe-cli`
- `supabase/tap`
- `tallesborges/zdx`
- `withgraphite/tap`
### Brew Leaves
The current leaves were captured into [`modules/homebrew.nix`](../modules/homebrew.nix). A few noteworthy details:
- `python@3.13` was installed but `link: false` in the generated Brewfile
- `withgraphite/tap/graphite` was also `link: false`
- Go tools and one cargo tool were present in the generated Brewfile and are not yet expressed in the Nix module
- VS Code extension `anthropic.claude-code` was also present in the generated Brewfile and is not yet managed here
### Casks
Current casks were also captured into [`modules/homebrew.nix`](../modules/homebrew.nix), including:
- `aerospace`
- `codex`
- `companion`
- `gcloud-cli`
- `ghostty@tip`
- `warp`
- `virtualbox`
### Brew Services
Installed but not currently running:
- `cloudflared`
- `postgresql@14`
- `postgresql@16`
- `postgresql@17`
- `redis`
- `tailscale`
- `unbound`
## Apps Outside Current Brew Casks
The following apps were present in `/Applications` but did not match the current cask inventory during a rough audit, so they should be reviewed separately:
- `Amphetamine.app`
- `Cap.app`
- `ChatGPT.app`
- `Claude.app`
- `Cluely.app`
- `Conductor.app`
- `Dia.app`
- `Docker.app`
- `Granola.app`
- `Helium.app`
- `Karabiner-Elements.app`
- `Karabiner-EventViewer.app`
- `Klack.app`
- `Numbers.app`
- `PastePal.app`
- `Raycast.app`
- `Readout.app`
- `Rectangle.app`
- `Safari.app`
- `Screen Studio.app`
- `Signal.app`
- `Tailscale.app`
- `Telegram.app`
- `Typora.app`
- `Wispr Flow.app`
- `Zen.app`
- `kitty.app`
- `logioptionsplus.app`
Some of these may belong in:
- Mac App Store
- direct DMG installers
- manual vendor installers
- future Homebrew casks that were not part of the current audit
App Store apps confirmed by receipt search:
- `Amphetamine.app`
- `Klack.app`
- `Numbers.app`
- `PastePal.app`
- `Xcode.app`
## Launch Agents Found
These are current launch agents worth deciding on explicitly:
- `com.nanoclaw.plist`
- `com.thread-view.collector.plist`
- `com.thread-view.ngrok.plist`
- `pi.plist`
- `homebrew.mxcl.postgresql@16.plist`
- `org.virtualbox.vboxwebsrv.plist`
- Google updater agents
- iMazing mini agent
These are not yet represented in Nix.
Current login items:
- `Rectangle`
- `Raycast`
- `PastePal`
## Config Directories Found
Notable user config roots under `~/.config`:
- `agents`
- `amp`
- `gcloud`
- `gh`
- `gh-dash`
- `ghostty`
- `git`
- `graphite`
- `k9s`
- `karabiner`
- `kitty`
- `nanoclaw`
- `opencode`
- `raycast`
- `rpi`
- `stripe`
- `tmux`
- `worktrunk`
- `zed`
Notable app state under `~/Library/Application Support`:
- `Claude`
- `Codex`
- `Code`
- `Cursor`
- `Docker Desktop`
- `Ghostty`
- `Google`
- `LogiOptionsPlus`
- `OpenAI`
- `Raycast`
- `Screen Studio`
- `Signal`
- `Slack`
- `Telegram Desktop`
- `Warp`
- `Zed`
These paths are exactly why the first config keeps Homebrew and dotfile migration conservative.
## Additional Package Managers And Tool State
Global npm packages found:
- `@anthropic-ai/claude-code`
- `@augmentcode/auggie`
- `@companion-ai/cli`
- `@googleworkspace/cli`
- `@humanlayer/linear-cli`
- `@kubasync/cli`
- `agent-browser`
- `aws-cdk`
- `bun`
- `clawdbot`
- `markserv`
- `pnpm`
- `prisma`
- `vercel`
- `wscat`
- `yarn`
Other tool inventories found:
- `pipx`: `supabase-mcp-server`
- `uv tool`: `mistral-vibe`, `nano-pdf`
- `cargo install`: `lumen`
- Go bin tools: `agentikube`, `goimports`, `golangci-lint`, `gonew`
- Python user packages under `python3 -m pip list --user`
These are not represented in the first-pass Nix config yet.
## Codebase Summary
Code roots found:
- `~/Documents/GitHub` with `108` repos
- `~/code/symphony-workspaces`
- `~/dev/diffs.nvim`
- extra git repos outside those roots: `~/dots`, `~/meta-agent`, `~/Documents/College`, `~/Documents/better`, `~/.config/nvim.bak`, `~/.veetcode`, `~/.kubasync/clank-artifacts`, `~/.oh-my-zsh`
Repo manifest counts under `~/Documents/GitHub`:
- `package.json`: `56`
- `pnpm-workspace.yaml`: `7`
- `turbo.json`: `5`
- `pyproject.toml`: `6`
- `requirements.txt`: `7`
- `go.mod`: `3`
- `Cargo.toml`: `4`
- `flake.nix`: `4`
- `Dockerfile`: `10`
- `docker-compose.yml`: `7`
Practical implication:
- JavaScript/TypeScript is the dominant toolchain
- Python is the second major toolchain
- Go and Rust are both active enough to be first-class system runtimes
- Docker and local infra tooling belong in the baseline machine config
## Migration Boundaries
Safe to move into Nix now:
- core CLI packages
- current Homebrew taps, brews, and casks
- dotfiles already living in `~/dots`
- basic macOS defaults
Should stay manual or secret-managed for now:
- `~/.secrets`
- `~/.npmrc`
- `~/.yarnrc`
- `~/.claude.json`
- `~/.opencode.json`
- cloud credentials and tokens under `~/.config`
- app-internal state in `~/Library/Application Support`
- App Store apps and login items
- fonts installed directly under `~/Library/Fonts`
- global npm, pipx, uv, cargo, and Go-installed tools
- custom launch agents until they are rewritten declaratively
Recommended next steps:
1. Switch this host once with cleanup disabled.
2. Translate `git`, `zsh`, and `ghostty` from raw symlinks into pure Home Manager modules.
3. Decide whether `~/dots` should remain the source of truth or be folded into this repo.
4. Capture secrets explicitly instead of relying on ad hoc local files.
5. Review the unmanaged `/Applications` set and choose Homebrew cask, App Store, or manual buckets for each.