Configuration files for setting up a macOS development environment.
.aliases.sh # Shell aliases (docker, terraform, claude, etc.)
.function.zsh # Custom shell functions
.zshrc / .zshenv # Zsh configuration
.config/ # XDG config (starship prompt)
.gitignore_global # Global gitignore
Brewfile # Homebrew packages & casks
git/ # .gitconfig
terminal/ # Ghostty, WezTerm, cmux configuration
macos/ # macOS system preferences scripts
karabiner/ # Karabiner-Elements config
handy/ # Voice input (Handy + ollama) post-processing config
claude/ # Claude Code configuration (skills, agents, hooks)
bin/ # Custom scripts
setup/ # Setup scripts
docs/ # Architecture notes & learnings
git clone https://github.com/cmb-sy/dotfiles.git
cd dotfilesCreate symlinks and apply base configuration:
zsh setup/setup.zshInstall Homebrew packages, VSCode/Cursor extensions, and apply macOS settings:
zsh setup/install.zshRestart your terminal to apply all changes.
GitHub Actions runs setup/setup.zsh on a macOS-latest runner on every push and on a monthly cron schedule, then verifies:
- shell config / Claude Code /
.configsymlinks - Brewfile formulas on PATH (gh, jq, starship, uv, mise, ...)
~/.claude/skillsSKILL.md inventory (≥ 20)~/.claude/settings.jsonis valid JSON- no legacy bad symlinks (
~/.git,~/.Brewfile, etc.)
gh workflow run CI --ref main # manual trigger
gh run watch # tail latest runReproduce locally:
CI=true zsh setup/install.zsh