Modern, secure, and performance-optimized macOS development environment
Dotfiles are configuration files that customize your development environment and command line tools. They're called "dotfiles" because they typically start with a dot (.) and are hidden by default in Unix-like systems. These files control everything from your shell prompt to your text editor settings, making your development environment consistent and personalized across different machines.
This dotfiles repository will transform your macOS system into a comprehensive, secure, and performant development environment. It provides:
- π Performance Optimized: Optimized shell startup with immediate Node.js/npm availability
- π Security First: Secure SSH configuration templates and key management
- π¦ Complete Package Management: 90+ essential development tools and applications
- π οΈ Modern Toolchain: Starship prompt, Oh My Zsh, and contemporary CLI utilities
- π» Ghostty Terminal: GPU-accelerated terminal with Nord theme and custom keybindings
- π Automated Setup: One-command installation with comprehensive error handling
- π macOS Optimized: System defaults and configurations designed specifically for macOS
# Clone the repository
git clone https://github.com/cassmtnr/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Run the installation
./install.shThe installation script automatically sets up your complete development environment with error handling and progress feedback. It's idempotent, so you can run it multiple times safely.
This configuration includes a comprehensive set of productivity-enhancing aliases and functions.
Key productivity features:
- 40+ aliases for navigation, git, and system utilities (
.aliases) - Utility functions including
mkd,killport,extract(.functions) - Claude Flow integration with
flow start,flow resume,flow wizardcommands - Performance optimized with immediate Node.js tool availability
After installation, you'll need to configure these components for your specific environment:
The SSH config is automatically symlinked to ~/.ssh/config. Customize it with your actual settings:
vim ~/dotfiles/.ssh/configUpdate with your actual SSH key paths and host configurations. Generate keys in organized folders (e.g., ~/.ssh/github/, ~/.ssh/work/).
- SSH Agent: Edit
.ssh-agentwith your actual key paths - Git: Set your identity with
git config --global user.name/user.email - Local Settings: Create
~/.zshrc.localfor machine-specific configurations
dotfiles/
βββ install.sh # Main installation script
βββ .brewfile # Package definitions (30+ packages)
βββ .zshrc # Main shell configuration
βββ .zshenv # Environment variables
βββ .functions # Custom functions + Claude Flow helper
βββ .aliases # Shell aliases (40+ shortcuts)
βββ .ssh-agent # SSH agent management
βββ .completion # Shell completions
βββ .starship # Starship prompt configuration
βββ .defaults # macOS system preferences
βββ .node # Node.js environment setup
βββ .bun # Bun JavaScript runtime config
βββ .ghostty/
β βββ config # Ghostty terminal configuration (Nord theme)
βββ .ssh/
β βββ config # SSH configuration template
βββ .alfred/
β βββ Alfred.alfredpreferences/ # Alfred workflows and settings
βββ .claude-flow/
βββ metrics/ # Claude Flow session data and metrics
install.sh- Comprehensive installation with error handling and progress feedback.zshrc- Modular shell configuration with performance optimizations.functions- 40+ utility functions including Claude Flow integration (flow()command).brewfile- Curated collection of 90+ essential development tools.ghostty/config- Ghostty terminal with Nord theme, custom keybindings, and shell integration.ssh/config- Security-focused SSH template with organized key management.claude-flow/- AI workflow integration with session management and metrics
- Aliases: Edit
.aliasesfor custom shortcuts - Functions: Add utilities to
.functions - Packages: Modify
.brewfileand runbrew bundle - Prompt: Customize
.starshipfor terminal appearance
π Important Security Practices:
- Never commit actual SSH keys - only configuration templates
- Use
.zshrc.localfor private/sensitive configurations - Keep secrets out of version control - the
.gitignoreis configured to protect sensitive files - Template paths are examples - replace with your actual key locations
- Review permissions - SSH keys should have
600permissions (chmod 600 ~/.ssh/*/id_*) - Use strong passphrases for SSH keys in sensitive environments
- Slow startup: Profile with
time zsh -lic exitandzmodload zsh/zprof - SSH issues: Test with
ssh -T git@github.comand debug withssh -vT - Homebrew: Check with
brew doctorand update withbrew update
Found a bug or have a suggestion? Please report it on the GitHub Issues page.
When reporting issues, please include:
- macOS version
- Error messages (if any)
- Steps to reproduce
- Expected vs actual behavior
These dotfiles are released under the CC0 1.0 Universal license.