This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a collection of Unix installation scripts and dotfiles for setting up a development environment across macOS and Linux systems. The repository provides modular installation scripts for various tools and automatic dotfile management.
./setup- Interactive menu-driven installer with 8 different component categories./setup_dotfiles- Force hard-links dotfiles to appropriate system locations
The setups/ directory contains specialized installation scripts:
- Cross-platform detection using
$OSTYPEvariable (darwin* for macOS, linux-gnu for Linux) - Each script handles both macOS (Homebrew) and Linux (apt) package management
- Asset files in
setups/assets/provide configuration snippets that get appended to shell configs
- Dotfiles stored in
dotfiles/directory with OS-specific conditional linking - Hard-linking strategy used to keep dotfiles in sync with repository
- Shell profile detection: uses zsh_profile if zsh exists, otherwise bash_profile
- Automatic sourcing configuration added to existing shell rc files
Run the main interactive installer:
./setupInstall specific components (comma-separated):
# Example: Install core tools, zsh, and dotfiles
echo "1,2,3" | ./setupSetup only dotfiles:
./setup_dotfilesRun individual setup scripts:
bash setups/setup_zsh.sh
bash setups/setup_python.sh
bash setups/setup_git.sh- Git setup script (
setups/setup_git.sh) prompts for GitHub credentials and generates SSH keys - Python setup installs uv using the official standalone installer
- Tmux and Vim plugin installation handled separately through dedicated functions
- The setup system is designed to be idempotent - running scripts multiple times should be safe