Easily automate the setup of your development environment on Windows, macOS, or Linux with a single script. Select from a wide range of popular tools, languages, IDEs, browsers, databases, and more.
- ✅ Interactive menu for tool selection
- 🖥️ Cross-platform: Windows (winget), macOS (Homebrew), Linux (apt/snap/script)
- 📦 Automatic package manager detection and installation
- 💾 Save/load your configuration for easy reuse
- 🎯 Wide selection of tools:
- IDEs: VS Code, JetBrains Toolbox, IntelliJ, PyCharm, WebStorm, Sublime
- Languages: Node.js, Python, Java (OpenJDK), Go, Rust, Ruby, PHP, .NET, Deno, Bun, Maven, Gradle
- Tools: Git, GitHub Desktop, Docker, kubectl, Minikube, Postman, DBeaver
- Browsers: Chrome, Firefox, Edge, Brave
- Databases: MySQL, PostgreSQL, MongoDB, Redis
- Communication: Slack
- Power-user extras and more
- Windows 10/11
- winget (App Installer) – pre-installed on most systems. If missing, install from Microsoft Store.
- macOS 10.15 or later
- Homebrew – will be installed automatically if missing.
- Ubuntu 20.04+ or Debian-based distro
sudoprivileges- apt and snap (usually pre-installed)
-
Download the script:
- From GitHub or copy
dev-setup.pyto your machine. - Or use:
curl -O https://github.com/RushiK8626/dev-setup/dev-setup.py
- From GitHub or copy
-
Make it executable (macOS/Linux):
chmod +x dev-setup.pyWindows (PowerShell/CMD):
python dev-setup.pymacOS/Linux:
./dev-setup.py
# or
python3 dev-setup.pyThe script will display an interactive menu with categories and tools. Select tools by number, type all to select everything, or use 0 to install selected tools.
- Install specific tools:
1 2 3 - Install all tools:
all - Add more tools:
4 5(then0to install) - Cancel:
99
Your selections are saved to ~/.dev-setup-config.json for easy reuse on other machines or after a reset.
To add your own tools, edit the self.tools dictionary in dev-setup.py:
'toolname': {
'name': 'Tool Display Name',
'description': 'Brief description',
'category': 'editors', # or another category
'windows': {'type': 'winget', 'id': 'Publisher.ToolName'},
'darwin': {'type': 'brew', 'package': 'toolname'},
'linux': {'type': 'apt', 'package': 'toolname'}
}Supported package manager types:
- Windows:
winget - macOS:
brew(with optional'cask': True) - Linux:
apt,snap, orscript(for custom commands)
- Fresh OS install
- Download and run
dev-setup.py - Select tools (e.g.,
1 2 3 4 5for Git, VS Code, Node, Python, Docker) - Type
0to confirm - Type
yto proceed - Wait for installation to complete
- Restart terminal/system if needed
- winget not found: Install "App Installer" from Microsoft Store
- Installation failed: Run PowerShell/CMD as Administrator
- Homebrew issues: Ensure Xcode Command Line Tools are installed:
xcode-select --install
- Permission denied: Some packages may need admin password
- Permission denied: Use
sudowhen running the script - Package not found: Update package lists first:
sudo apt update
- Snap not installed: Install snap:
sudo apt install snapd
You can modify the script to run non-interactively by pre-setting selected tools:
# Add at the beginning of run() method:
selected_tools = ['git', 'vscode', 'node', 'python']Use the saved config file for automated setups:
# Copy config to new machine
cp ~/.dev-setup-config.json /path/to/new/machine/
# Run with saved config (auto-accept)
python3 dev-setup.py| Tool | Windows | macOS | Linux |
|---|---|---|---|
| Git | ✅ | ✅ | ✅ |
| VS Code | ✅ | ✅ | ✅ |
| JetBrains Toolbox | ✅ | ✅ | |
| IntelliJ, PyCharm | ✅ | ✅ | ✅ |
| Node.js, Yarn, Bun | ✅ | ✅ | ✅ |
| Python 3 | ✅ | ✅ | ✅ |
| Java (OpenJDK) | ✅ | ✅ | ✅ |
| Go, Rust, Ruby | ✅ | ✅ | ✅ |
| PHP, .NET, Deno | ✅ | ✅ | ✅ |
| Docker, kubectl | ✅ | ✅ | ✅ |
| MySQL, PostgreSQL | ✅ | ✅ | ✅ |
| MongoDB, Redis | ✅ | ✅ | ✅ |
| Chrome, Firefox | ✅ | ✅ | ✅ |
| Edge, Brave | ✅ | ✅ | ✅ |
| DBeaver, Postman | ✅ | ✅ | ✅ |
| Slack | ✅ | ✅ | ✅ |
Feel free to add more tools or improve OS compatibility! The tool is designed to be easily extensible.
MIT License - Feel free to use and modify
- Some installations may require admin/sudo privileges
- System restart may be needed after installation
- Docker on Linux requires logout/login for group changes
- Configuration is saved to
~/.dev-setup-config.json
Save time on your next setup! ⚡