The dev bootstrap script sets up a professional development environment on Ubuntu/Debian Linux or macOS. It is idempotent, meaning it can be safely run multiple times. The script installs essential packages, Python tools, Git configuration, SSH keys, and terminal utilities, while adding convenient virtual environment management commands.
-
Cross-platform support
- Ubuntu/Debian Linux
- macOS
-
Idempotent
- Skips installation or configuration if already present
- Safe to rerun on the same machine
-
Python environment setup
-
Installs Python 3, pip, and pipx
-
Provides virtualenvwrapper-style commands:
mkvirtualenv <env>– create and activate a virtual environmentworkon <env>– activate an existing virtual environmentrmvirtualenv <env>– remove a virtual environmentlsvirtualenv– list all virtual environmentsmkproject <project>– create a project folder with git + virtualenv + initial commit
-
-
Global Python CLI tools (via pipx)
poetry– dependency managementblack– code formattingpre-commit– automatic pre-commit hooks
-
Git configuration
- Prompts for username and email if not set
- Configures globally
-
SSH key setup for GitHub
- Generates an ED25519 key if missing
- Adds it to the SSH agent
- Shows public key for adding to GitHub
-
Terminal productivity tools
fzf– fuzzy finderripgrep– fast searchbat– improvedcateza– modernls
-
Progress feedback
- Shows what was installed, configured, or skipped
- Uses clear text messages
- Python 3 installed (the script can install it if missing)
- Administrative privileges (sudo) on Linux or macOS
- Internet connection for downloading packages and pipx tools
- Shell: Bash or Zsh
- Download or copy the
dev_bootstrap.shscript to your home directory. - Make it executable:
chmod +x dev_bootstrap.sh- Run the script:
./dev_bootstrap.sh- Follow prompts for Git configuration and GitHub SSH key (only if missing).
- After completion, restart the terminal or source your shell RC file:
source ~/.bashrc # or ~/.zshrc- You can now use:
mkvirtualenv <env> # create and activate a virtual environment
workon <env> # activate an existing virtual environment
rmvirtualenv <env> # remove a virtual environment
lsvirtualenv # list all virtual environments
mkproject <project> # create project folder with git + virtualenv + initial commit
pipx install <tool> # install Python CLI tools globally