Personal Claude Code configuration, managed with chezmoi.
Everything under dot_claude/ maps to ~/.claude/ on apply. settings.json is merged into any existing one (never overwritten), so machine-specific hooks already present are preserved.
dot_claude/
CLAUDE.md # global instructions
rules/ # auto-loaded behavior rules
hooks/ # Python/shell hooks (UserPromptSubmit, PreCompact, ...)
skills/whats-new/ # custom skill
modify_settings.json # merge script -> ~/.claude/settings.json
memory-seed/ # seed for ~/.claude/projects/<slug>/memory (copied, not applied)
install.sh # bootstrap helper
Prereqs: python3 (hooks). For the sandbox on Linux/WSL2: bubblewrap + socat
(sudo apt-get install bubblewrap socat).
Fresh machine, one-liner:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply wes-chen/dotfilesOr clone and run the helper (also seeds memory):
git clone https://github.com/wes-chen/dotfiles ~/Dev/dotfiles
~/Dev/dotfiles/install.shNotes:
settings.jsonis merged via a chezmoimodify_script — existing hooks (e.g. an image bridge, rtk) and keys are preserved, and re-applying is idempotent.- The memory seed is copied into
~/.claude/projects/<slug>/memory/only if that dir is empty (it never clobbers live memory Claude has written). - After install, run
/sandboxonce to turn on auto-allow.
In a new session:
/helplists thewhats-newskill.- "what's new" triggers the skill.
- Editing a code file injects a formatter reminder (once per session).
- "wrap up" makes Claude record the session and end its reply with
[WRAPUP-DONE].
This is a bootstrap, not a final state — iterate from here.