2026-05-27 22:18:29 -05:00
mvp
2026-05-27 22:12:14 -05:00
mvp
2026-05-27 22:12:14 -05:00
mvp
2026-05-27 22:12:14 -05:00
mvp
2026-05-27 22:12:14 -05:00
mvp
2026-05-27 22:12:14 -05:00

bootstrap_windows_env

Windows-native bootstrapper for a personal Windows 11 development workstation, with an optional Fedora WSL handoff.

The tool is intentionally conservative:

  • Windows packages come from winget by exact package ID whenever available.
  • Secondary managed providers such as Scoop or Chocolatey are used only for items without a reliable winget manifest, such as pyenv-win.
  • Unsupported packages are reported as deferred instead of installed through ad hoc custom installers.
  • WSL guest provisioning expects the published JMR-dev/bootstrap_dev_env Linux release to support --wsl; this repository does not modify that Linux project.

Build

go build ./cmd/bootstrap_windows_env

Tagged GitHub releases build and upload a precompiled bootstrap_windows_env.exe.

Usage

.\bootstrap_windows_env.exe
.\bootstrap_windows_env.exe --yes
.\bootstrap_windows_env.exe --dry-run
.\bootstrap_windows_env.exe --only os
.\bootstrap_windows_env.exe --only host
.\bootstrap_windows_env.exe --only custom
.\bootstrap_windows_env.exe --only config
.\bootstrap_windows_env.exe --only wsl
.\bootstrap_windows_env.exe --no-ai
.\bootstrap_windows_env.exe --no-wsl

Phases

os runs before any application installation. It invokes Windows Update/Microsoft Update, stops for reboot when required, creates a restore point, runs Chris Titus Tech WinUtil with the managed sane-default config, enables Developer Mode and Windows sudo, applies power/update/UI/store/taskbar defaults, then creates a second restore point before package installation.

host installs exact winget packages, configures Hyper-V when supported for Vagrant, provisions Node.js LTS through fnm, installs pyenv-win through Scoop or Chocolatey, provisions the latest stable Python through pyenv, and imports VLC default media-player associations for common audio/video file types.

Visual Studio Community 2026 is installed as Microsoft.VisualStudio.Community with the managed .vsconfig exported from the current workstation. That config includes the native desktop workload, Microsoft C/C++ tools, Windows SDKs, and CMake integration. The Windows host intentionally does not install gcc or g++; native C and C++ builds should use the Visual Studio toolchain.

custom installs oh-my-posh, agy through Google's official Windows PowerShell installer, Node-based AI CLIs unless --no-ai is set, Playwright browsers, and the JMR-dev/gh-repo-bootstrap GitHub CLI extension.

config deploys managed WezTerm, PowerShell profile, and oh-my-posh assets, backs up differing existing files with numbered suffixes, clones JMR-dev/nvim-config, and optionally offers interactive GitHub/SSH setup.

wsl enables WSL prerequisites, installs the current official FedoraLinux-* distro reported by wsl --list --online, stops for reboot or first-launch username creation when needed, then invokes the latest Linux bootstrap release with --wsl --headless --yes.

Current Deferrals

Webcamoid is deferred because no exact winget manifest was available during implementation. Native Docker Desktop, Podman Desktop, Buildah, Minikube, Firecracker, QEMU, virt-manager, Windows Terminal, and VS Code are also intentionally excluded from Windows v1.

S
Description
No description provided
Readme
206 KiB
Languages
Go 99.2%
PowerShell 0.8%