A living reference for getting a dev machine back to a working state. I maintain this across both workplace and personal device refreshes, most recently a laptop replacement. I keep it current as my toolset evolves.
Inventory first
Before touching the new machine, dump what’s on the old one. Memory misses things - utilities, CLI tools installed months ago, drivers. A few commands cover most of it.
Run these from Downloads so all output files land in one place:
cd $env:USERPROFILE\Downloads
- Export winget-managed apps:
winget export -o installed_apps.json
Filtered to apps that were deliberately installed (excluding runtime/framework packages like VCRedist, VCLibs, WindowsAppRuntime, and OS-bundled components), grouped by category:
Cloud/AWS
Amazon.AWSCLI
Amazon.SAM-CLI
Amazon.SessionManagerPlugin
Microsoft.AzureCLI
Dev tools
Microsoft.VisualStudioCode
JetBrains.PyCharm.Community
GitHub.GitHubDesktop
Docker.DockerDesktop
Python.Python.3.13
Python.Python.3.12
Canonical.Ubuntu.2404
Notepad++.Notepad++
Security/networking
GnuPG.GnuPG
OpenVPNTechnologies.OpenVPNConnect
PuTTY.PuTTY
Enterprise/managed
Microsoft.Office
Microsoft.Teams
Everyday apps
7zip.7zip
Adobe.Acrobat.Reader.32-bit
Google.Chrome
Zoom.Zoom
- Full installed programs list via the registry (catches anything winget doesn’t know about):
Get-ItemProperty `
HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*, `
HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, `
HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName, DisplayVersion, Publisher |
Where-Object { $_.DisplayName -ne $null } |
Sort-Object DisplayName |
Export-Csv installed_programs.csv -NoTypeInformation
Filtered the same way (excluding OS components, driver bundles, and runtime redistributables), grouped by category:
Cloud/AWS
AWS Command Line Interface v2
AWS SAM Command Line Interface
Session Manager Plugin
Dev tools
Microsoft Visual Studio Code
PyCharm Community Edition
GitHub Desktop
Docker Desktop
Postman x64
Node.js
Python 3.12.5 (64-bit)
Python 3.13.1 (64-bit)
Java(TM) SE Development Kit 25.0.2 (64-bit)
Notepad++ (64-bit x64)
Copilot
Security/networking
GNU Privacy Guard
Gpg4win
PuTTY release 0.84 (64-bit)
OpenVPN Connect
Npcap OEM
Zscaler
Enterprise/managed
Microsoft 365 Apps for enterprise
SAP Business Explorer
SAP GUI for Windows
Snow Inventory Agent for Windows
Tanium Client
Everyday apps
7-Zip
Adobe Acrobat Reader
Google Chrome
Zoom Workplace (64-bit)
- VS Code extensions:
code --list-extensions > vscode_extensions.txt
Sample response, grouped by category:
AI/AWS
amazonwebservices.amazon-q-vscode
amazonwebservices.aws-toolkit-vscode
anthropic.claude-code
Containers/remote
docker.docker
ms-azuretools.vscode-containers
ms-azuretools.vscode-docker
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-wsl
Python
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
ms-python.vscode-python-envs
Other
github.github-vscode-theme
mohsen1.prettify-json
ms-vscode.powershell
redhat.vscode-yaml
tomoki1207.pdf
- Chocolatey packages (if used):
choco list --local-only > choco_apps.txt
Cloud and IaC
- AWS CLI - restore profiles and SSO config (
%USERPROFILE%\.aws\config) - AWS CDK (
npm install -g aws-cdk) - cfn-lint (
pip install cfn-lint)
Dev environment
- VS Code - restore extensions from the export above (
code --install-extension <name>per line invscode_extensions.txt) - Git - global config (
%USERPROFILE%\.gitconfig), SSH keys, GPG signing if used - Node.js via winget (
winget install OpenJS.NodeJS.LTS) or nvm-windows - Python via winget (
winget install Python.Python.3) or pyenv-win - Docker Desktop
- WSL2 - Ubuntu distro (
wsl --install -d Ubuntu), confirm it starts clean
AI tooling
- GitHub Copilot (VS Code extension)
- Claude Code CLI (
npm install -g @anthropic-ai/claude-code) - Amazon Q (VS Code extension or standalone installer)
- Kiro (
winget install Amazon.Kiro)
Credentials and config
Software is the easy part. Config is what actually costs time when missed.
- AWS SSO / IAM credentials - run
aws configure ssoand confirmaws sts get-caller-identityworks per profile - SSH keys - restore to
%USERPROFILE%\.ssh\and set permissions (icaclsor via Git Bashchmod 600) - GPG keys - import with
gpg --import private.asc, setuser.signingkeyin.gitconfig - Browser bookmarks and saved logins
- Dotfiles:
%USERPROFILE%\.aws\config,%USERPROFILE%\.gitconfig,%USERPROFILE%\.ssh\config - VS Code user settings JSON (
Ctrl+Shift+P-> Preferences: Open User Settings (JSON))
Before wiping the old machine, zip up dotfiles and the VS Code settings JSON as a standalone backup - restoring config as part of “reinstall the app” is slower than having it already on hand.