Skip to content

Sync Claude Code config via dotfiles stow package #1

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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