microsoft/WindowsDeveloperConfig
PowerShell
Captured source
source ↗microsoft/WindowsDeveloperConfig
Description: Automate the setup and configuration of your Windows development environment.
Language: PowerShell
License: MIT
Stars: 1036
Forks: 81
Open issues: 15
Created: 2026-05-21T15:13:35Z
Pushed: 2026-06-09T22:46:20Z
Default branch: main
Fork: no
Archived: no
README:
Windows Developer Config
Opinionated setups for Windows dev boxes. Idempotent. CI-tested.
Windows Dev Config · WSL Comfort · Workloads · Troubleshooting
---
Go from a fresh Windows install to a fully configured dev box in one command. These declarative, CI-tested configs set up your tools, settings, and shells the same way every time — so any machine can be your machine in minutes.
🎯 Pick your setup
Three developer setups live in this repo. Pick the one that matches what you want:
| You want... | Go to | | --- | --- | | A complete dev workstation: tools, OS settings, WSL, and terminal. One command, may reboot. | [Windows Dev Config](#%EF%B8%8F-windows-dev-config) | | A polished WSL shell: zsh/bash, Starship, CLI tools, and a themed terminal profile. Interactive or unattended. | [WSL Comfort](#-wsl-comfort) | | A single language toolchain: Node, Python, .NET, Rust, Go, Java, PHP, WinForms, or WinUI 3. One command each. | [Workloads](#-single-language-workloads) |
Most of them use `winget configure`. If you've never used it before, enable it once:
winget configure --enable
> [!IMPORTANT] > If winget is being invoked from a non-elevated environment, the Microsoft Visual C++ Redistributable (aka.ms/vcredist) must also be installed — without it winget configure fails with an internal error. Install it once with the command for your machine's architecture: > > ``powershell > # x64: > winget install Microsoft.VCRedist.2015+.x64 > > # ARM64: > winget install Microsoft.VCRedist.2015+.arm64 >
If that fails or winget configure is still not recognized, see [Troubleshooting](#-troubleshooting).
🖥️ Windows Dev Config
*Turns a fresh Windows 11 box into a clean, distraction-free dev workstation in one shot.*
A single winget configuration file that installs dev tools, applies opinionated Windows settings, and bootstraps WSL + Ubuntu through the required reboot. Non-interactive. Idempotent. Safe to re-run on an existing machine.
First, get the files onto the box. The config is invoked from a local path, but the bootstrap itself is what installs Git — so on a clean Windows install you'll typically download the repo as a ZIP. If Git is already there, clone it:
# Git already installed: git clone https://github.com/microsoft/WindowsDeveloperConfig.git cd WindowsDeveloperConfig # Otherwise, download and extract the ZIP: Invoke-WebRequest -Uri https://github.com/microsoft/WindowsDeveloperConfig/archive/refs/heads/main.zip -OutFile WindowsDeveloperConfig.zip Expand-Archive .\WindowsDeveloperConfig.zip -DestinationPath . cd .\WindowsDeveloperConfig-main
Then apply the configuration:
winget configure -f .\windows-dev-config\dev-config.winget --accept-configuration-agreements --disable-interactivity
> ⚠️ May reboot. Enabling WSL needs a Windows optional feature that requires a restart. A RunOnce task picks the configuration back up after you sign in, installs Ubuntu, and finishes the run. Expect one hard reboot plus about a minute of post-login work. Save your work first.
What you get
- Dev tools: PowerShell 7, Git, GitHub CLI, VS Code, .NET SDK 10, Python 3.14 + uv, Node.js, Oh My Posh, and PowerToys.
- Terminal: PowerShell 7 is the default profile, Oh My Posh is enabled, and Cascadia Mono NF is set as the default font.
- Windows settings: Dark theme, developer mode, long paths, File Explorer defaults, Start/Search cleanup, Edge policies, and other workstation defaults.
- WSL: WSL platform + Ubuntu, including the reboot and the
RunOnceresume step.
Full details: [windows-dev-config/README.md](./windows-dev-config/README.md).
🐧 WSL Comfort
*Also known as Comfort Shell. An interactive setup for a polished Windows + WSL shell environment.*
WSL Comfort stands apart. It supports both interactive and non-interactive modes, and lets you pick and choose individual components. The Windows side handles WSL, the distro, the Cascadia Code Nerd Font, and a themed Windows Terminal profile. The Linux side runs inside the distro and configures the shell itself.
.\wsl-comfort\install.ps1
Interactive by default. Use -NonInteractive for unattended runs; the bootstrap also takes --minimal for a smaller setup. The Linux half is standalone, so you can copy comfort-shell-bootstrap.sh onto any Ubuntu host and run it directly.
What you can pick
- Your choice of shell: zsh or bash.
- Optional Starship prompt.
- Optional modern CLI tools:
fzf,rg,fd,bat,eza,zoxide,jq. - Optional clipboard and
openshims (pbcopy,pbpaste,open). - Optional Homebrew.
- Optional Git defaults.
- A themed Windows Terminal profile using Cascadia Code Nerd Font.
Full details: [wsl-comfort/readme.md](./wsl-comfort/readme.md).
🧪 Single-language workloads
Just want one toolchain? Pick a row. Each workload ships a configuration.winget file plus a matching install.ps1 shim that applies it and refreshes PATH in the current session.
| Workload | Installs | Run | | ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | TypeScript | Node.js LTS + global typescript | winget configure -f .\Workloads\typescript\configuration.winget --accept-configuration-agreements --disable-interactivity | | PHP | PHP 8.5 | winget configure -f .\Workloads\php\configuration.winget --accept-configuration-agreements --disable-interactivity | | .NET | .NET SDK 10 | winget configure -f .\Workloads\dotnet\configuration.winget --accept-configuration-agreements --disable-interactivity | | Go | Go (rolling) | winget configure -f .\Workloads\go\configuration.winget --accept-configuration-agreements --disable-interactivity | | Java | Microsoft Build of OpenJDK 25 LTS | `winget configure -f…
Excerpt shown — open the source for the full document.
Notability
notability 4.0/10Routine repo from Microsoft, moderate traction.