-
released this
2026-06-18 13:09:58 +05:30 | 107 commits to main since this releaseWhat's new
Microsoft's Azure Sentinel WAF began blocking the backend's data-center IP on the download-link endpoint. This release adds graceful degradation so the site remains usable while the architectural fix (CLI tool) ramps up.
Stale link detection
- Backend now emits
X-MSDL-Link-Status: fresh | cached | staleandX-MSDL-Link-Expireson every proxy response - Frontend reads these headers and surfaces an amber warning when a cached/expired link is served
Official fallback guide
- When links are stale, a collapsible fallback panel appears below the download card
- Edition-aware links to the official Microsoft download pages (Windows 11 / 10 / 8.1)
- Step-by-step download guide for each edition
Product catalog
- Removed Windows 8.1 Single Language (product 48) — dropped by Microsoft server-side
Also shipped alongside this release
- msdl CLI v0.1.0 — standalone Go tool that calls Microsoft directly from your machine, bypassing the WAF entirely. See the cli/v0.1.0 release for install instructions.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Backend now emits
-
msdl CLI cli/v0.1.0 Stable
released this
2026-06-18 12:43:10 +05:30 | 103 commits to main since this releaseInstall
Windows (winget):
winget install starkSV.msdlLinux/macOS:
# Linux x86_64 curl -L https://github.com/starkSV/windows-iso-downloader/releases/download/cli/v0.1.0/msdl-linux-amd64 -o msdl chmod +x msdl && sudo mv msdl /usr/local/bin/ # macOS Apple Silicon curl -L https://github.com/starkSV/windows-iso-downloader/releases/download/cli/v0.1.0/msdl-darwin-arm64 -o msdl chmod +x msdl && sudo mv msdl /usr/local/bin/ # macOS Intel curl -L https://github.com/starkSV/windows-iso-downloader/releases/download/cli/v0.1.0/msdl-darwin-amd64 -o msdl chmod +x msdl && sudo mv msdl /usr/local/bin/Windows (manual): Download
msdl-windows-amd64.exe, rename tomsdl.exe, place in a directory on your PATH.Usage
msdl # fully interactive msdl "windows 11 25h2" # filter products, pick language msdl --id 3262 --lang "English (United States)" # direct, no prompts msdl --eval server-2025 # evaluation ISOs msdl --list # list all productsDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
msdl-darwin-amd64
0 downloads · 5.4 MiB
-
msdl-darwin-arm64
0 downloads · 5.3 MiB
-
msdl-linux-amd64
3 downloads · 5.1 MiB
-
msdl-windows-amd64.exe
1 download · 5.2 MiB
-
Source code (ZIP)
-
released this
2026-05-22 22:09:23 +05:30 | 116 commits to main since this releaseWhat's new
- Expiry countdown — shows time remaining on download links; Refresh button appears when under 6 hours left
- Refresh links — force-fetches fresh signed URLs from Microsoft, bypassing cache
- CLI command tabs — wget / curl / aria2 tabs replace the old aria2-only tip; selection persists across sessions
- Recently viewed — homepage row showing your last 4 visited products with expiry status
- chore —
.claude/added to.gitignore
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-22 22:06:42 +05:30 | 131 commits to main since this releaseWhat's new
- Windows Server 2016–2025 + Windows 11 Enterprise evaluation ISOs via Microsoft's Eval Center — no registration required
- Cloudflare Worker outbound proxy — Microsoft API calls route through Cloudflare's edge IPs, preventing rate-limit blocks (error 715-123130) under high traffic
- 38 languages per consumer release, ARM64 + x64 + x86 support
- SEO improvements across all pages — meta descriptions, JSON-LD, sitemap
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-22 22:06:42 +05:30 | 124 commits to main since this releaseWhat's new
Two-layer in-memory caching
Reduced Microsoft API calls from thousands/day to ~50–100/day.
- SKU cache (7-day TTL) — language lists cached per product
- Link cache (dynamic TTL from signed URL expiry) — download links cached per product + language
- Eval cache (24h TTL) — eval ISOs warmed at startup
- Negative cache (60s) — prevents thundering-herd retries during rate-limit blocks
- Singleflight — collapses concurrent cache misses into a single Microsoft fetch
- Stale-on-failure — serves expired cache entry if refresh fails
/metrics endpoint
GET /metrics?secret=<secret>— real-time cache hit rates, miss counts, Microsoft fetch totals- Auth via
METRICS_SECRETenv var
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads