My config files for different apps and services.
Managed with GNU Stow. Each top-level directory is a Stow "group" mirroring the target path layout.
$ brew install stow # macOS
$ stow -Sv tmux nvim alacritty agentsDefault target is $HOME, so e.g. nvim/.config/nvim/init.lua →
~/.config/nvim/init.lua.
The agents group ships both Codex and Claude assets in one tree:
agents/.codex/AGENTS.md→~/.codex/AGENTS.mdagents/.codex/skills/→~/.codex/skills/agents/.claude/CLAUDE.md→~/.claude/CLAUDE.md(symlinked toAGENTS.mdinside the repo, single source of truth)agents/.claude/skills/→~/.claude/skills/(individual skills are in-repo symlinks back to.codex/skills/<name>, single source of truth)
If a target file already exists as a real file (not a symlink), Stow refuses. Two options:
stow --adopt -Sv <group>— moves the real file into the repo, replacing it with a symlink. Use only aftergit diffto confirm no surprise edits.- Delete the real file first, then
stow -Sv <group>.
$ stow -Dv <group>-n (no-op) shows what would happen without touching the filesystem:
$ stow -nvS tmux