A modular dev environment framework for macOS (Linux coming soon). One command sets up your entire development environment with modern CLI tools, ZSH configuration, and a plugin system for extensions.
- One-command setup -
./setup.shhandles everything, safe to re-run - Modern CLI tools - eza, bat, fzf, ripgrep, delta, zoxide, and more
- Beautiful terminal - Powerlevel10k prompt with Oh-My-Zsh
- Tool management -
devsetupcommand to install/manage 113+ dev tools - Plugin system - Auto-discovers extensions in
~/my-tools/ - Test suite - Verify your setup with
devsetup test - Idempotent - Skips what's already installed, fixes what's broken
# Clone to ~/my-tools (recommended) or anywhere
git clone https://github.com/mark-hubers/hubers-devtools-system.git ~/my-tools/hubers-devtools-system
cd ~/my-tools/hubers-devtools-system
# Run setup (installs everything)
./setup.sh
# Open new terminal, then configure your prompt
p10k configure
# Verify everything works
devsetup test| Category | Tools |
|---|---|
| Shell | ZSH, Oh-My-Zsh, Powerlevel10k |
| Modern CLI | eza, bat, fzf, ripgrep, fd, zoxide, delta |
| Plugins | zsh-autosuggestions, zsh-syntax-highlighting, fzf-tab |
| Fonts | Meslo Nerd Font |
| Framework | devsetup command, toolkits, 70+ shell functions |
# Check what's installed
devsetup check
# Install more tools
devsetup add terraform
devsetup add k9s
# See your favorites (customizable startup display)
fav
favedit # customize it
# Run verification tests
devsetup testThe framework includes a test suite to verify everything is configured correctly:
devsetup test # Run all tests (56 checks)
devsetup test path # Check PATH configuration only
devsetup test tools # Check core tools only
devsetup test config # Check config preservation onlyTest categories:
path- PATH configuration, devsetup availabilityaliases- Core aliases and functions definedtools- Required CLI tools installedfavorites- Favorites system workingplugins- Plugin detection and loadingconfig- Configuration file preservation
When to run tests:
- After initial setup
- After adding new tools or aliases
- After system updates
- When troubleshooting issues
Drop additional tool repos in ~/my-tools/ with a .devtools-plugin marker file, and they'll be auto-discovered:
~/my-tools/
├── hubers-devtools-system/ ← this repo (master)
├── some-plugin/ ← auto-discovered
│ ├── .devtools-plugin ← marker file
│ └── setup.sh ← plugin setup
Run ./setup.sh again and it will offer to set up new plugins.
Your personal settings go in ~/.zshrc_local - this file is never overwritten by updates:
# Edit your personal config
vim ~/.zshrc_local
# Re-run setup (your customizations are preserved)
cd ~/my-tools/hubers-devtools-system/terminal-config
./INSTALL.sh- macOS (Apple Silicon or Intel)
- Internet connection (for Homebrew packages)
Linux support coming soon.
See the docs/ folder:
docs/GIT-MULTI-ACCOUNT.md- Multiple GitHub accounts setupdocs/QUICK-REFERENCE.md- Command cheat sheetdocs/ASDF-GUIDE.md- Version management for terraform, node, etc.
Or use the built-in help:
th <TAB> # Browse all help topics
devsetup help # Tool management helphubers-devtools-system/
├── setup.sh ← Run this! Main entry point
├── lib/
│ ├── setup-utils.sh ← Shared utilities
│ └── test-utils.sh ← Test framework
├── bin/devsetup ← Tool manager command
├── config/tools.yaml ← Tool definitions (113 tools)
├── tests/ ← Test suite
│ ├── test-runner.sh ← Test orchestrator
│ └── tests.d/ ← Individual test modules
├── terminal-config/ ← ZSH configuration
├── git-things/ ← Git multi-account setup
└── docs/ ← Documentation
When adding new features:
- Add the feature to the appropriate toolkit file
- Update tests in
tests/tests.d/if needed - Run
devsetup testto verify - Update documentation
MIT - Use it, fork it, make it yours.