6.8 KiB
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 /:
ApplicationsLibrarySystemUsersnixoptprivateusr
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/tapgetcompanion-ai/taphashicorp/taphomebrew/serviceshumanlayer/humanlayerjnsahaj/lumennicosuave/tapnikitabobko/tapopencode-ai/tappantsbuild/tappipedreamhq/pd-clisteipete/tapstripe/stripe-clisupabase/taptallesborges/zdxwithgraphite/tap
Brew Leaves
The current leaves were captured into modules/homebrew.nix. A few noteworthy details:
python@3.13was installed butlink: falsein the generated Brewfilewithgraphite/tap/graphitewas alsolink: 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-codewas also present in the generated Brewfile and is not yet managed here
Casks
Current casks were also captured into modules/homebrew.nix, including:
aerospacecodexcompaniongcloud-clighostty@tipwarpvirtualbox
Brew Services
Installed but not currently running:
cloudflaredpostgresql@14postgresql@16postgresql@17redistailscaleunbound
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.appCap.appChatGPT.appClaude.appCluely.appConductor.appDia.appDocker.appGranola.appHelium.appKarabiner-Elements.appKarabiner-EventViewer.appKlack.appNumbers.appPastePal.appRaycast.appReadout.appRectangle.appSafari.appScreen Studio.appSignal.appTailscale.appTelegram.appTypora.appWispr Flow.appZen.appkitty.applogioptionsplus.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.appKlack.appNumbers.appPastePal.appXcode.app
Launch Agents Found
These are current launch agents worth deciding on explicitly:
com.nanoclaw.plistcom.thread-view.collector.plistcom.thread-view.ngrok.plistpi.plisthomebrew.mxcl.postgresql@16.plistorg.virtualbox.vboxwebsrv.plist- Google updater agents
- iMazing mini agent
These are not yet represented in Nix.
Current login items:
RectangleRaycastPastePal
Config Directories Found
Notable user config roots under ~/.config:
agentsampgcloudghgh-dashghosttygitgraphitek9skarabinerkittynanoclawopencoderaycastrpistripetmuxworktrunkzed
Notable app state under ~/Library/Application Support:
ClaudeCodexCodeCursorDocker DesktopGhosttyGoogleLogiOptionsPlusOpenAIRaycastScreen StudioSignalSlackTelegram DesktopWarpZed
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/cliagent-browseraws-cdkbunclawdbotmarkservpnpmprismavercelwscatyarn
Other tool inventories found:
pipx:supabase-mcp-serveruv tool:mistral-vibe,nano-pdfcargo 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/GitHubwith108repos~/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:56pnpm-workspace.yaml:7turbo.json:5pyproject.toml:6requirements.txt:7go.mod:3Cargo.toml:4flake.nix:4Dockerfile:10docker-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:
- Switch this host once with cleanup disabled.
- Translate
git,zsh, andghosttyfrom raw symlinks into pure Home Manager modules. - Decide whether
~/dotsshould remain the source of truth or be folded into this repo. - Capture secrets explicitly instead of relying on ad hoc local files.
- Review the unmanaged
/Applicationsset and choose Homebrew cask, App Store, or manual buckets for each.