My portable, version-controlled Claude Code configuration. Fork it, customize it, sync it across machines.
git clone https://github.com/petekp/claude-code-setup.git
cd claude-code-setup && ./setup.shThat's it. Your Claude Code now uses this repo's skills, commands, agents, and hooks.
The setup script symlinks this repo's directories into ~/.claude/:
~/.claude/
├── skills/ → <repo>/skills/
├── commands/ → <repo>/commands/
├── agents/ → <repo>/agents/
├── hooks/ → <repo>/hooks/
└── scripts/ → <repo>/scripts/
Edit files in either location—they're the same files. Commit and push to sync across machines.
- Fork this repo on GitHub
- Clone your fork and run
./setup.sh - See FORKING.md for customization guidance
# Push changes
git add -A && git commit -m "Update config" && git push
# Pull on another machine
git pull./setup.sh --undoRemoves symlinks and restores any backed-up directories.
Some files aren't symlinked—they're templates or references for manual setup. See templates/README.md for details.
Skills/commands not appearing?
- Check symlinks:
ls -la ~/.claude/skills - Validate frontmatter:
./scripts/validate.sh - Restart Claude Code
Permission denied?
chmod +x setup.sh && ./setup.shPreview before running?
./setup.sh --dry-runWindows? Use WSL or set up symlinks manually.
MIT