Skip to content

Sync Claude Code config via dotfiles stow package #1

@pruszel

Description

@pruszel

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:

  1. Move iterm-title.sh to ~/Developer/claude-code-config
  2. Create the directory structure in dotfiles
  3. Move ~/.claude/CLAUDE.md, settings.json, hooks/improve-prompt.py into dotfiles/claude/.claude/
  4. Add grill-me skill files and claude-hud plugin config
  5. Update settings.json to remove terminal-notifier hook and iterm-title.sh references
  6. Run: stow -t ~ claude
  7. Verify ~/.claude/settings.json and ~/.claude/hooks/improve-prompt.py are symlinks
  8. On other machines: clone dotfiles, run stow -t ~ claude

Platform-specific differences

Keep one shared settings.json for both macOS and Linux.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions