My dotfiles
- cd ~/
- git clone https://github.com/flurdy/dotfiles.git ~/.dotfiles
-
echo "source ~/.dotfiles/.bash_aliases" >> ~/.bash_aliases -
echo "source ~/.dotfiles/.bash_profile" >> ~/.bash_profile -
echo "export PATH=~/.dotfiles/bin:$PATH >> ~/.bash_profile -
echo "source ~/.dotfiles/.bashrc" >> ~/.bashrc -
echo "export PATH=~/.dotfiles/bin:$PATH" >> ~/.bashrc
mkdir -p ~/.config/fish/functions ~/.config/fish/completionsecho "source ~/.dotfiles/.config/fish/config.fish" >> ~/.config/fish/config.fishecho "set -xg PATH ~/.dotfiles/bin $PATH >> ~/.config/fish/config.fish
echo "[include]" > ~/.gitconfignewecho " path = ~/.dotfiles/.gitconfig" >> ~/.gitconfignewcat ~/.gitconfig >> ~/.gitconfignewmv ~/.gitconfignew ~/.gitconfig
- ln -s ~/.dotfiles/.hgrc ~/.hgrc
mkdir -p ~/.vimtmpln -s ~/.dotfiles/.vimrc ~/.vimrc
- mkdir -p ~/.m2
- ln -s ~/.dotfiles/.m2/settings.xml ~/.m2/settings.xml
- mkdir -p ~/.sbt/0.13
- ln -s ~/.dotfiles/.sbt/0.13/global.sbt ~/.sbt/0.13/global.sbt
- ln -s ~/.dotfiles/.sbt/0.13/plugins ~/.sbt/0.13/plugins
- ln -s ~/.dotfiles/.sbt/repositories ~/.sbt/repositories
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- touch ~/.ssh/authorized_keys
- chmod 600 ~/.ssh/authorized_keys
cp ~/.dotfiles/.ssh/config ~/.ssh/config
The shared hook implementation lives in ai-tools, not dotfiles.
Its Claude and Codex integration directories provide separate install targets; the registrations remain in .claude/settings.hooks.fragment.json and .codex/hooks.json.
Merge hook arrays without replacing existing entries, then review new Codex commands with /hooks.
The gate also requires the executable artifact-hygiene helper from agent-skills installed under ~/.agents/skills/.
beads-all lists every store with cached ahead/behind counts, without syncing.
See usage and checks.
You could also add another level of indirection by having a ~/.dotprivate folder for common but non public settings. Such as public keys, api keys, usernames, etc. The .dotprivate then usually source on to .dotfiles for simplicity.