Dev Configs for Windows: From fresh install to IDE in one command
With Microsoft's new Dev Configs, a Windows installation becomes a ready-to-use developer workstation with a single command – including WSL and Ubuntu.
(Image: Microsoft / Moritz Förster / KI / iX)
With Dev Configs for Windows, Microsoft has released an open-source collection of configurations that automate the setup of developer workstations on Windows. The configurations are based on the WinGet feature winget configure and are intended to transform a freshly installed computer into a ready-to-use development environment with a single command. They are declaratively structured, undergo automated tests, and, according to Microsoft, can be safely executed multiple times.
The project targets developers who want to set up their work environment reproducibly – on a new notebook, a test machine, or in teams with standardized setups. Instead of maintaining their installation scripts, the configurations describe the desired end state of a system. Microsoft distinguishes three use cases: a complete developer workstation for Windows, an extended shell environment for WSL, and individual language and framework workloads.
Complete Developer Setup for Windows 11
The most comprehensive variant is called “Windows Dev Config.” It installs typical developer tools, including PowerShell 7, Git, GitHub CLI, Visual Studio Code, .NET SDK 10, Python 3.13 with the package manager uv, Node.js, Oh My Posh, and PowerToys. Additionally, the configuration adjusts Windows itself and enables features like developer mode, long file paths, and dark mode. File Explorer, Start Menu, Search, and Edge also receive new default settings.
Microsoft places a strong emphasis on the Windows Subsystem for Linux (WSL). The configuration installs WSL along with Ubuntu and automatically bridges the necessary restart. It uses the Windows mechanism RunOnce, which executes a task once after the next login. Users do not need to intervene after the reboot; the installation proceeds automatically.
Videos by heise
Comfortable Shell Environment with WSL Comfort
Furthermore, Microsoft offers “WSL Comfort,” a configuration specifically for working with Linux on Windows. It can be run interactively or unattended with the -NonInteractive switch and sets up both the Windows and Linux sides. Users can choose between Bash and Zsh and optionally add the prompt generator Starship, Homebrew, or various modern command-line tools. The Linux script comfort-shell-bootstrap.sh also runs independently on any Ubuntu host.
These tools include rg (ripgrep) for fast full-text searches in source code, bat as an alternative to cat with syntax highlighting, zoxide for intelligent directory navigation, and fzf, fd, eza, and jq. On the Windows side, the configuration sets up a customized profile for Windows Terminal and the Cascadia Code Nerd Font. Nerd Fonts contain additional symbols that modern shell prompts use, for example, for Git branches or status indicators.
Individual Workloads Instead of a Complete Package
Those who do not need a complete development environment can install individual workloads instead. Microsoft mentions TypeScript, Python, .NET, Go, Java, Rust, PHP, WinForms, and WinUI 3, among others. Each of these configurations comes with its configuration.winget file and a helper script install.ps1 that initiates the installation and updates the PATH variable in the current shell session.
Technically, Dev Configs build on WinGet's existing configuration features. The files declaratively describe packages, system settings, and post-installation steps. Since they define the target state rather than individual steps, setups can be reliably repeated and transferred to other machines. An up-to-date version of the App Installer is required; if winget configure is not available, the feature can be enabled once with winget configure --enable.
Extension for PowerToys Announced
An extension for the PowerToys Command Palette has already been announced. It is intended to offer the configuration workflows defined in the project directly as selectable entries, so users no longer have to specify the respective configuration files manually.
With Dev Configs, Microsoft is pursuing an approach reminiscent of dotfile collections, Infrastructure as Code, and automated developer setups on Linux or macOS. Further details and the complete list of supported toolchains can be found in the documentation on Microsoft Learn and in the project's GitHub repository.
(fo)