Opinionated, automated development environment management.
dotfiles/
├── home/ # Your actual dotfiles and configurations
│ ├── .zshrc # Shell configuration
│ ├── .gitconfig # Git settings
│ ├── .vscode/ # VSCode settings and extensions
│ └── Brewfile # Homebrew packages
├── scripts/ # Management scripts (project source)
├── config # Global command (symlinked to ~/.local/bin/)
├── install.sh # Installation script
└── Makefile # Build system with clean API
make install # Install all dotfiles
config status # Check current state (from anywhere!)The config command is globally accessible after installation - use it from any directory.
Workflow Commands:
config install- Install everything from dotfiles to new machineconfig sync- Export current state + commit + push (full sync)config pull- Export current state to dotfiles (no git operations)config diff- Show what needs syncingconfig status- Show current symlink status
Maintenance:
config test- Run full test suiteconfig verify- Verify all links are correctconfig backup- Create timestamped backupsconfig clean- Remove symlinks and restore backupsconfig cleanup- Remove unmanaged packages
Note: Use
make <command>when in the dotfiles directory, orconfig <command>from anywhere.
The tool handles the full workflow automatically:
# After installing packages, extensions, or changing settings:
config sync # Exports state + commits + pushes automaticallygit clone your-dotfiles-repo
cd your-dotfiles
make install # Installs everythingWhy Opinionated? You shouldn't waste time on dotfiles maintenance. This tool makes decisions for you:
- Automatic commit messages with timestamps
- Standardized file structure
- Integrated git operations
- One command does everything
Remove packages not managed by dotfiles:
config cleanup # Interactive removal of unmanaged packagesThis system was built for personal use and has architectural debt that would need addressing for production use. See ARCHITECTURE.md for detailed analysis of:
- Coupling issues between tool and profile data
- Design limitations in the current approach
- Production architecture for open source distribution
- Migration path toward better separation of concerns
Key limitation: The home/ directory is tightly coupled to the tool scripts, and your .zshrc contains tool-specific code. A production version would separate the tool installation from user profile data.