My global CLAUDE.md, settings, skills, hooks, and environment-specific configuration for Claude Code.
Clone the repo, then run the install script:
python install.py
This creates symlinks from ~/.claude/ into the repo:
~/.claude/CLAUDE.md→ repo'sCLAUDE.md~/.claude/settings.json→ repo'ssettings.json~/.claude/environments/→ repo'senvironments/~/.claude/hooks/→ repo'shooks/- Each skill directory in
skills/→~/.claude/skills/<name>/
Skills are symlinked individually so that skills from other repos can coexist in ~/.claude/skills/.
Use --dry-run to preview what would be done without making changes.
- Python 3
- On Windows, symlinks require Developer Mode enabled or running as administrator
The script never overwrites files that aren't symlinks. If you have existing files in ~/.claude/ that conflict, remove them first, then re-run.
Since everything is symlinked, edits in ~/.claude/ are edits in the repo. Just commit and push.
Environment-specific configuration lives in environments/. A SessionStart hook in settings.json runs hooks/session-init.py to detect the platform and inject the right environment file into the conversation automatically.
To add a new environment, create a file in environments/ and add a detection rule to hooks/session-init.py.
Session hooks live in hooks/. Currently:
session-init.py— Injects platform-specific environment config on all session starts, and re-injects CLAUDE.md after context compaction.