This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a personal dotfiles repository for configuring a macOS development environment, optimized for Go/Cloud/Kubernetes development with interactive command-line productivity tools so that it will be easier to setup new Mac machine.
The repository uses shell scripts for setup rather than traditional build tools:
# Install Homebrew packages (formulas and casks)
./script/install-homebrew.sh
./script/install-homebrew.sh --formula # Development tools only
./script/install-homebrew.sh --cask # Applications only
# Create symbolic links for config files
./script/install-config.sh
# Install Go development tools
./script/install-go.sh
# Install additional utilities
./script/install-else.shconfig/zshrc: Main shell configuration that auto-loads all functions fromconfig/zsh/function/config/gitconfig: Git configuration with GPG signing and SSH URL rewritingconfig/tmux.conf: Tmux with custom prefix (Ctrl+T) and vim-like navigationconfig/peco-config.json: Interactive filtering tool configuration
All .zsh files in config/zsh/function/ are automatically loaded. Key interactive functions:
- Productivity:
peco-select-command-history,peco-ghq-change-directory,peco-git-checkout-branch - Kubernetes:
peco-k8s-change-context,peco-k8s-change-namespace,peco-k8s-view-pod-logs - Navigation:
peco-cdr-change-directory,enter-list-files
Ctrl+R: Command history searchCtrl+J: Repository directory change (ghq)Ctrl+H: Recent directory changeCtrl+B: Git branch checkoutCtrl+X: Kubernetes context switchingCtrl+]: Kubernetes namespace switching
sss # Alias for 'source ~/.zshrc' - reload shell configurationUses ghq for centralized repository cloning to ~/src/github.com/. The peco-ghq-change-directory function provides quick navigation between projects.
- Primary editor: Cursor (aliases:
c,v,e) - Opens in reuse mode with
-rflag
- Homebrew: Package manager for all tools
- Peco: Interactive filtering tool (core dependency for most functions)
- ghq: Repository management tool
- kubectl: Kubernetes CLI (for k8s functions)
When adding new tool and package:
- Create new a git branch
- Open install-homebrew.sh
- Edit the list of cask or formula (depending on availability) and inject the item
- Execut the script with the flag --cask or --formula depending on which you modify
- If it's successfully installed, commit it and send pull request
When adding new zsh functions:
- Create
.zshfile inconfig/zsh/function/ - Follow naming pattern:
peco-*for interactive functions - Use
peco --query "$LBUFFER"for search integration - Add
print -sfor command history
When modifying configurations:
- Edit files in
config/directory (not the symlinked versions in~) - Test with
sssalias to reload zsh configuration - Use
install-config.shto create/update symlinks