Track Claude Code configuration in dotfiles so it syncs across machines (Mac + Linux).
What to sync
- ~/.claude/settings.json (permissions, hooks, plugins)
- ~/.claude/hooks/improve-prompt.py (critical prompt evaluation hook)
- ~/.claude/CLAUDE.md (personal preferences)
- /grill-me skill
- claude-hud plugin
Machine-local files (~/.claude/projects/, sessions/, memory/, etc.) stay outside dotfiles.
What NOT to sync
- iterm-title.sh hook → move to ~/Developer/claude-code-config for safe keeping
- terminal-notifier command → remove (not needed on Linux)
Implementation
Create dotfiles/claude/ stow package:
dotfiles/claude/
├── .claude/
│ ├── CLAUDE.md
│ ├── settings.json
│ └── hooks/
│ └── improve-prompt.py
├── skills/
│ └── (grill-me skill files)
└── plugins/
└── (claude-hud plugin config)
Steps:
- Move iterm-title.sh to ~/Developer/claude-code-config
- Create the directory structure in dotfiles
- Move ~/.claude/CLAUDE.md, settings.json, hooks/improve-prompt.py into dotfiles/claude/.claude/
- Add grill-me skill files and claude-hud plugin config
- Update settings.json to remove terminal-notifier hook and iterm-title.sh references
- Run:
stow -t ~ claude
- Verify ~/.claude/settings.json and ~/.claude/hooks/improve-prompt.py are symlinks
- On other machines: clone dotfiles, run
stow -t ~ claude
Platform-specific differences
Keep one shared settings.json for both macOS and Linux.
Track Claude Code configuration in dotfiles so it syncs across machines (Mac + Linux).
What to sync
Machine-local files (~/.claude/projects/, sessions/, memory/, etc.) stay outside dotfiles.
What NOT to sync
Implementation
Create
dotfiles/claude/stow package:Steps:
stow -t ~ claudestow -t ~ claudePlatform-specific differences
Keep one shared settings.json for both macOS and Linux.