This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
A macOS dotfiles repo. Config files live in config/, rc files in rc/. The install.rb script symlinks everything into place.
ruby install.rb # symlinks + brew bundle + macOS defaults
ruby install.rb -n # dry run — preview what would happen
ruby install.rb --no-brew --no-macos # symlinks onlyThe script does four things:
config/*→~/.config/*(preserving directory structure)rc/*→~/.<name>(adds dot prefix, e.g.rc/vimrc→~/.vimrc)brew bundle— installs Homebrew packages (auto-detected whenBrewfileexists, skip with--no-brew)macos.sh— applies macOS defaults (auto-detected on macOS, skip with--no-macos)
Files listed in SKIP (currently config.local.example) are excluded. Existing non-symlink files are backed up with .backup suffix.
config/fish/config.fish— Fish shell config: PATH, Homebrew, aliases (eza, bat, zoxide, fzf, rg), git/ruby abbreviations, Starship promptconfig/git/— Git config with SSH signing, histogram diff, zdiff3 merge conflicts, rerere, auto-rebase on pull. Per-machine identity goes in~/.config/git/config.local(seeconfig.local.example)config/vim/— Modular vim config auto-sourced via glob inrc/vimrc. Files prefixed with_(e.g._plug.vim,_nvim-defaults.vim,_macvim.vim) are sourced explicitly and excluded from the globconfig/starship.toml— Single-line Starship prompt with Nerd Font symbolsconfig/mise/config.toml— Global mise settings (legacy version files, experimental features)
- Commit messages: short, imperative, title case (e.g.
Add Pagination to Query Endpoint). No bullet-point bodies unless a single sentence of context is genuinely needed. - No test suite — this is a config-only repo.
- Git config enforces signed commits (SSH), rebase on pull, and auto-setup of remote tracking.