What is WinSetup?
WinSetup is the "installer" for my machine: a set of PowerShell + winget scripts that download a list of programs and install each one silently. No clicks, no "Next, next, Next".
Everything lives in this repository: the scripts, the lists and this very website. You just paste a command in PowerShell and wait.
In three steps
- Open PowerShell (or Windows Terminal). It's included in Windows 10 and 11.
- Paste the command for the package list you want to install.
- Press Enter and wait: the list will be downloaded and the programs installed silently.
Main command
Why iwr ... | iex?
iwr (Invoke-WebRequest) downloads the script and iex (Invoke-Expression) runs it. It's the classic shortcut. The -UseBasicParsing flag makes it work on Windows PowerShell 5.1 too.
Notes
- Requires Windows 10/11 with winget (already installed).
- If a package fails, the script warns and continues with the next one.
- You don't need to be an administrator for most packages.
Available package lists
Each list is a .txt file in the repository with one winget ID per line. Its matching script downloads and installs it. Press Copy and paste it in PowerShell.
| List | Packages | Script | Command |
|---|---|---|---|
| Default Everything: browsers, dev, media, office, utilities and gaming. view list | 31 apps | default.ps1 | |
| Gaming Steam, Discord, Epic, LoL EUW and OBS. view list | 5 apps | gaming.ps1 | |
| Dev Development tools: Git, VS Code, Node, Python, Docker. view list | 9 apps | dev.ps1 | |
| Media Players and editing: VLC, Spotify, AIMP, HandBrake, Audacity and GIMP. view list | 6 apps | media.ps1 | |
| General General use: browsers, office, downloads, utilities and creativity. view list | 12 apps | general.ps1 |
What this is
WinSetup is a personal project to stop installing programs by hand every time I reinstall Windows. The PowerShell scripts live in the scripts/ folder of this repository (the source of truth) and are copied to the site on every build: /default.ps1, /packagelists/*.txt...
How it works
iwrdownloadsdefault.ps1andiexruns it.- The script reads its list from
packagelists/<name>.txt. - Each line is a winget ID; lines starting with <code>#</code> are comments.
- It runs
winget install --id <ID> --silentfor each package.
Tech
- Landing built with Astro + XP.css (MIT).
- Deployed on GitHub Pages with GitHub Actions.
- Wallpaper: A serene green field under a clear blue sky via Pexels.
Disclaimer
This is a nostalgic Windows XP recreation, not a Microsoft product. Windows XP and "Bliss" are trademarks/property of Microsoft. You run remote scripts at your own risk: read first, run after.
Mozilla.Firefox Google.Chrome Telegram.TelegramDesktop Discord.Discord Git.Git Microsoft.VisualStudioCode OpenJS.NodeJS Python.Python.3.12 Docker.DockerDesktop GitHub.GitHubDesktop Microsoft.PowerToys Notepad++.Notepad++ Postman.Postman VideoLAN.VLC Spotify.Spotify AIMP.AIMP HandBrake.HandBrake Audacity.Audacity GIMP.GIMP TheDocumentFoundation.LibreOffice SumatraPDF.SumatraPDF 7zip.7zip qBittorrent.qBittorrent calibre.calibre Bitwarden.Bitwarden Rufus.Rufus Obsidian.Obsidian Valve.Steam EpicGames.EpicGamesLauncher RiotGames.LeagueOfLegends.EUW OBSProject.OBSStudio
Valve.Steam Discord.Discord EpicGames.EpicGamesLauncher RiotGames.LeagueOfLegends.EUW OBSProject.OBSStudio
Git.Git Microsoft.VisualStudioCode OpenJS.NodeJS Python.Python.3.12 Docker.DockerDesktop GitHub.GitHubDesktop Microsoft.PowerToys Notepad++.Notepad++ Postman.Postman
VideoLAN.VLC Spotify.Spotify AIMP.AIMP HandBrake.HandBrake Audacity.Audacity GIMP.GIMP
Mozilla.Firefox Google.Chrome TheDocumentFoundation.LibreOffice SumatraPDF.SumatraPDF Telegram.TelegramDesktop 7zip.7zip qBittorrent.qBittorrent calibre.calibre Bitwarden.Bitwarden Rufus.Rufus Obsidian.Obsidian GIMP.GIMP
