Developer environment setup and automation encompasses the tools, scripts, and practices that transform manual configuration into reproducible, version-controlled infrastructure. This domain spans dotfiles management, package managers, shell customization, containerized development, and onboarding automation—bridging the gap between "it works on my machine" and "it works everywhere, instantly." The shift from manual setup to declarative configuration is not just a convenience; it's a multiplier for team velocity, onboarding speed, and disaster recovery. Modern tools like chezmoi, DevContainers, and mise have evolved to handle cross-platform complexity while keeping configuration files readable and maintainable. The key insight: your development environment is code—it should be versioned, tested, and deployed like any other critical infrastructure.
What This Cheat Sheet Covers
This topic spans 15 focused tables and 92 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Dotfiles Management Tools
Dotfiles are the hidden configuration files (.bashrc, .gitconfig, .vimrc, etc.) that customize your shell, editor, and command-line tools. Version-controlling dotfiles is the foundation of reproducible environments—it lets you recreate your setup on any machine, track configuration changes over time, and share best practices across teams. Modern dotfiles managers automate symlinking, handle platform-specific variants, and support templating for secrets or machine-specific values.
| Tool | Example | Description |
|---|---|---|
chezmoi init --apply https://github.com/user/dotfiles.git | Cross-platform dotfiles manager with templating (Go templates), encrypted secrets (age, gpg), and one-command setup; handles OS-specific config variants and file attribute management (• most actively maintained in 2026 • best for multi-machine setups with secrets) | |
stow -d ~/dotfiles -t ~ zsh | • Symlink farm manager using directory structure mirroring • minimal dependencies (Perl) • each app's config lives in its own folder, and stow creates symlinks to $HOME | |
./install (runs install.conf.yaml) | • Lightweight Python-based installer using YAML config • handles symlinks, shell commands, and cross-platform setup scripts • popular in bootstrap repos |