Repository navigation
Releases: mcbabel/Steam-Manifest-Downloader
Release list
Dev Build v1.5.0 (c13134e)
Automated dev build from c13134e
This is a development build and may be unstable. For stable releases, see the latest release.
Changes: chore(deps): bump tokio from 1.53.1 to 1.53.2 in the cargo-workspace group
Steam Manifest Downloader v1.5.0
It's finally here: Steam Manifest Downloader 1.5.0 🎉
This is the biggest update so far, with more than 90 commits since 1.4.3. There is a terminal version, a Docker image and a standalone ZIP for Windows. Games can be updated in place, and an optional mode picks the depots for you like Steam does. The history can check, repair and start your games, and there is a download queue. Proxy support works properly now, and a lot of smaller things are fixed.
Many of these changes came from your issues, ideas and pull requests. Thank you! Everyone who helped is named next to their change and in the thank-you section at the end.
🖥️ New ways to run it
- Terminal version
smdfor Windows and Linux. Without arguments it opens a full interface in the terminal, with all five steps, the history and the settings, usable with mouse or keyboard.smd search,smd downloadandsmd historywork headless for servers and scripts, with--jsonoutput. The Linux build is static and runs on any distribution. Requested by @Cohinem in #3 - Docker image at
ghcr.io/mcbabel/steam-manifest-downloaderfor every release and dev build, with/gamesand/datavolumes.docker stopcancels cleanly. - Windows standalone ZIP: the portable app plus gbe_fork, Steamless and the Steam API check bypass in a
third-partyfolder. Nothing has to be installed or downloaded, and instructions in English and German are included. Requested by @marlohowe in #46
🎮 Like Steam mode (optional, off by default)
- SMD picks the depots of the base game for your system and language and writes them into one game folder, like Steam does, so the game is complete and starts right away.
- Add DLC adds the DLC as well. The emulator step then marks them as owned for gbe_fork in
configs.app.ini. - Options for platform, game language, always including DLC and starting the download right away.
- Terminal:
--like-steam,--dlc,--platform,--language, and--all-depotsfor the old behaviour.
🔄 Keep your games current
- Update in place from the history. Only changed parts are downloaded, depots whose manifest did not change are skipped, and files the new version no longer has are deleted. Saves, emulator settings and your own files stay. Terminal:
smd download --update <folder>. Requested by @Ansh2209 in #4 - Update available badge in the history when Steam has a newer version.
- Check compares every file and repairs only what is damaged or missing, without updating. Terminal:
--update <folder> --repair. - Resume from a checkpoint: a cancelled download continues where it stopped and only checks a few chunks around that point instead of the whole game.
📚 History and queue
- Play starts a game from the history. On Linux, Windows games start through Steam and Proton, or with Wine.
- Portrait covers, search, status filter and sorting.
- Download queue: Add to Queue keeps games waiting, also across restarts, and runs them one after another.
🧩 Emulator
- Patch Existing Folder in step 1 runs the emulator step on a game that is already on disk. Folders that are already patched can be edited, saved and reverted there. Requested by @Ansh2209 in #6
- gbe_fork is taken from the newest release that has the needed files. The download asks first and shows its progress. Reported by @citaru and @victorsouzaleal in #44
- gbe_fork patching finds the 32-bit library again after gbe_fork renamed its folder.
- The emulator step points to Achievement Watcher for achievement pop-ups.
🌐 Network and Steam
- The proxy works for everything now: Steam's CDN, depot sources, ManifestHub, Hubcap, Ryuu, images and updates. HTTP, HTTPS and SOCKS5 are supported, and there is a Test button that shows whether Steam answers through it. Reported by @Accroon in #49
- Max retries on error also works for the built-in downloader. Network errors name the real cause and never show API keys. If nothing gets through, the download stops early with a clear message. System certificates are trusted, so company proxies and antivirus HTTPS scanning work. Reported by @Accroon in #49
- Choose the Steam folder when SMD does not find Steam, in the settings or right in the Steam library step. On Windows the machine wide registry key is read too, and on Linux more places are searched. Requested by @marlohowe in #52
- Easier setup without admin rights. The .NET warning only shows for the DepotDownloaderMod engine. SMD checks whether Steam is running before adding a game and can restart it. Emulator errors explain the common causes, and Windows shortcuts no longer need PowerShell. Reported by @marlohowe in #46
- Steam library entries get complete artwork through Steam's store API.
⚙️ More
- A speed limit that really works, in MB/s or Mbit/s, and applies live.
- Shut down the PC after the download, with a 60 second countdown. The next start offers the steps that were skipped.
- A warning before a download that does not fit on the disk.
- Download progress on the taskbar and in the window title.
- Keyboard shortcuts
Ctrl+O,Ctrl+F,Ctrl+HandCtrl+,. - The whole program in English and German, including the download log, error messages and
smd --help. - The changelog on the website now names everyone whose report, idea or pull request led to a change. Suggested by @marlohowe in #51
🐛 Fixes
- One depot without a key or manifest no longer stops the whole download. With shutdown switched on, the PC no longer turns off after the first depot.
- Partial downloads are shown as incomplete instead of successful, and fast failures no longer leave the app stuck on Initializing.
- Resuming or downloading into an existing folder could leave repeated content as zeroes on disk.
- The history no longer keeps a stale resumable entry next to the finished one.
- History sort menu, status filters and a completion sound that sometimes played again.
- Linux: the AppImage brings WebKitGTK and the libraries it needs, so nothing has to be installed, and it runs on Ubuntu 22.04, Debian 12 and newer. Found by the AppImage catalog check in AppImage/appimage.github.io#8542
- Linux: native game binaries are found as the program file to start and to add to Steam, not only Windows
.exefiles. - Changelog layout and a typo on the changelog page. Contributed by @TheRedstoneDEV-DE in #7
❤️ Thank you
Thanks to @Cohinem, @Ansh2209, @marlohowe, @Accroon, @citaru, @victorsouzaleal and @TheRedstoneDEV-DE for the reports, ideas and fixes in this release. If you find a bug or have an idea, open an issue, and you will be named in the next release too.
📦 Downloads
| File | What it is |
|---|---|
Steam.Manifest.Downloader_1.5.0_x64-setup.exe |
Windows installer, installs per user, no admin rights |
Steam-Manifest-Downloader_1.5.0_windows-standalone.zip |
Windows, nothing to install, emulator tools included |
Steam.Manifest.Downloader_1.5.0_amd64.AppImage |
Linux desktop app, brings everything it needs |
Steam-Manifest-Downloader-Terminal_1.5.0_windows-x64.exe |
Terminal version for Windows |
Steam-Manifest-Downloader-Terminal_1.5.0_linux-x64 |
Terminal version for Linux, static, runs on any distribution |
On Arch, CachyOS and Manjaro: steam-manifest-downloader-bin or steam-manifest-downloader from the AUR. Docker: docker pull ghcr.io/mcbabel/steam-manifest-downloader:1.5.0
Full documentation: https://smd.mcbabel.de/documentation/
Full Changelog: v1.4.3...v1.5.0
Steam Manifest Downloader v1.4.3
What's Changed
🚨 Critical fix — ManifestHub domain repoint
- The
api.manifesthub1.filegear-sg.mesubdomain went NXDOMAIN, breaking the ManifestHub download path witherror sending request for url (...). Repointed to the operator's active mirrorapi.manifesthub2.filegear-sg.me— same JSON API contract, Cloudflare-fronted, valid TLS. Existing user API keys keep working on the new host.
🚀 Native Steam download engine (default)
- Pure-Rust pipeline replaces DepotDownloaderMod as the default downloader (DDM stays available via Settings → Downloader). Anonymous Steam login + PICS via
steam-vent, manifest decoder with ZIP + AES-256 ECB+CBC + protobuf + encrypted-filename support, chunk decoder (VZ1/LZMA and VSZTD/zstd) with CRC32 + SHA-1 verify, CDN fetcher with token caching + 32 parallel chunks. - Per-depot fallback chain: Steam direct → configured depot sources / Hubcap cache → ManifestHub (if key set). Skip-existing via SHA-1 verify → resume after cancel/crash works out of the box.
⚡ Resume performance + IPC throttling
- Verify phase now groups chunks by file and reads sequentially → order-of-magnitude faster on partial-resume scans of 50 k+ chunk depots. Progress events throttled to one emit per 150 ms so the webview stays responsive — Cancel / Pause buttons no longer freeze during huge resumes. Cancel flag is now checked before the semaphore acquire so pending chunk tasks bail out immediately.
🔁 Chunk retry with exponential backoff on transient CDN errors
CHUNK_RETRY_COUNTbumped 3 → 8 with exponential backoff (250 ms → 15 s, ~30 s total budget), rotating CDN servers between attempts. Hard errors (4xx) fail-fast; transient errors (5xx, network, timeout) retry. Fixes the case where a stray 503 fromsteamcontent.comkilled a whole depot mid-download.
📦 Ryuu manifest source
- Ryuu (
ryuu.manifest) can now be added as an aggregate depot source alongside GitHub / archive.org / plain HTTPS folders.
🔌 HubcapDB as first-class source (opt-in)
- Hubcap moved from silent fallback to explicit choice: enable it in Settings → Depot Sources. Bundle also includes Lua-format Hubcap manifests.
🎮 Emulator scaffolding (gbe_fork)
- Backend scaffolding lands for gbe_fork emulator integration: per-file patching UI with smart defaults (host-OS best-match + x64 preference pre-checked), DLC has-exe heuristic to skip depots that ship their own executable, Linux ELF
e_typedetection (works on PIE binaries without the +x bit). Emulator step 5 edit-mode now routes through the full replacement path so you can switch Regular ↔ Experimental on an existing install without resetting the game folder.
🗑️ Safe history deletion
remove_history_entry/clear_historywith delete files now only removes the depot subfolders belonging to that entry — no longer the entire game folder. Fixes the reported "everything gets deleted" bug when sibling depots from other history entries shared the same game folder. Cancel-history race that produced duplicate entries is also gone; backend rejectsdelete_files=trueunless the entry iscancelled_resumablewith a resume payload.
🎨 UX polish
- Progress text now reads
X% — completed_GB / total_GBinstead of bare percent. - Speed / ETA labels refresh at 1.5 s cadence — no more flicker.
- Phantom completion sound killed: progress events whose
jobIdmismatches the active job are dropped. - Landing hero Download button on the docs site auto-resolves to the latest
.exeon Windows.
🧹 Cleanup
- Dropped the never-shipped
lobby_connectlauncher path (frontend, IPC, backend, locales — all in one sweep).
Commit: 697b03f
Full Changelog: v1.4.2...v1.4.3
Steam Manifest Downloader v1.4.2
What's Changed
🔌 Pre-configured depot sources on first launch
- Binary, NSIS and AUR installs now ship with two depot sources already wired up — the app is usable out of the box without manual setup. The two sources land in Settings → Depot Sources and can be removed anytime.
- Flatpak/Flathub intentionally ships without defaults (Flathub compliance). Flatpak users add their own sources as before.
⚠️ Confirmation prompt when removing a pre-installed source
- Removing one of the auto-seeded sources now pops a warning: "Search by App ID will stop working until you add your own source."
- The prompt only fires once per default. If you re-add the same URL manually later and remove it again, it stays quiet — your own additions are yours to manage without nagging.
🛠️ Internals
- New Cargo feature
default-sources(on by default; Flatpak builds with--no-default-features). - Settings struct gains
auto_seededandpristine_default_sources.save_settingskeeps the pristine list pruned to URLs still present indepot_sourcesso the remove-confirmation logic naturally falls out of the data model. - Remove-source confirmation modal has its own
z-index: 1100so it stacks above the Settings modal that spawned it.
Commit: aaf9f6f
Full Changelog: v1.4.1...v1.4.2
Steam Manifest Downloader v1.4.1
Bug fixes
🪄 First-launch onboarding flow
- Language picker → telemetry consent → auto-update check now run in strict sequence — no more overlapping modals.
- The telemetry consent appears in the language you just picked.
- The update modal only shows up after both onboarding modals are dismissed.
🔌 Depot source resolver
- Dropped the hardcoded
branches/path prefix from generic and GitHub depot sources. Paste the URL that points directly at the directory containing the<appid>/folders. - Any URL whose last path segment ends in
.zip/.tar.gz/.tgz/.tarnow has that basename auto-prepended as the in-archive root folder. So both of these work now:https://archive.org/download/<item>/<name>.zip/https://ia*.us.archive.org/view_archive.php?archive=…/<name>.zip
- For the legacy
branches.ziparchives, the resolver still picksbranches/as the prefix automatically — fully backward-compatible.
📋 Copy-paste
- Error messages and completion banners are selectable again so you can copy them into bug reports. The app-wide
user-select: nonewas previously hiding them from the clipboard.
🤖 CI
SMD_BUILD_DATEis now computed at build time withdate -u, so the "Build date" in Settings → Debug Info is populated even for releases triggered viaworkflow_dispatch(wherehead_commit.timestampis empty).
Commit: 15e646c
Full Changelog: v1.4.0...v1.4.1
Steam Manifest Downloader v1.4.0
What's Changed
🌍 Multi-language UI (English + Deutsch)
- First-launch language picker with flag cards (Union Jack / German tricolor)
- Switch language anytime in Settings → Sprache — the app restarts on apply
- All visible UI strings translatable via per-locale JSON files in
public/locales/ - Browser-language is the default pick when nothing is stored yet
Commits: c223b6d
📊 Opt-in anonymous telemetry
- End-to-end encrypted via
crypto_boxsealed-box — only the maintainer's server can decrypt events - Disabled by default; consent modal shown once on first launch, toggle stays in Settings
- No game IDs, depot IDs, file names, IP addresses, or account info are ever sent — see
PRIVACY.md - Receiver source is part of the repo at
tools/telemetry-server/so anyone can audit what's collected
🪄 Step 4: Shortcut creation (Windows)
- After download finishes you can now create Desktop and/or Start Menu shortcuts
- Auto-detects the game executable; falls back to a manual browse + an "other detected" list
- Resumes the workflow with "Start New Download" or jumps straight back to depot selection
📜 Download history
- Past downloads list with game cover, App ID, depot count and status badge
- Per-entry actions: Re-download (with original depot selection preserved), Open folder, Remove
- One-click "Clear All" at the bottom
🔌 User-configurable depot sources
- The app no longer ships hardcoded archive.org / GitHub repos — paste any URL
- GitHub repositories and
archive.org/view_archive.phpURLs are auto-detected - Any plain HTTPS folder following the
branches/<appid>/<files>layout works too - Sources are queried in the order shown in Settings → Depot Sources
Commits: 8e9f3a1
📦 Packaging
- Flatpak manifest + Flathub submission files under
packaging/flatpak/ - Updater now detects system-managed installs (AUR / Flatpak /
.deb) and tells you to update via the package manager instead of fetching a binary - Binary installs keep the existing one-click auto-update flow
Commits: 1de6e69, 2413864, 39b6fa9, 1d543c6
🛠️ Settings: Debug info panel
- New Debug Info section in Settings shows channel, version, commit, build date, profile and platform
- One-click "Copy debug info" — paste into bug reports so the maintainer knows which build you're running
Commits: e7e4750
♿ Accessibility & UI polish
aria-labelon every icon-only button,role="dialog"+aria-modalon all six modals- Focus trap: Tab cycles inside the topmost dialog, Escape closes via
[data-modal-cancel] role="progressbar"on the workflow stepper witharia-valuenowupdated as you advance- Every UI emoji replaced by consistent inline Lucide-style stroke SVGs (gear, moon/sun, alert-triangle, folder, search, …) — same look on every OS, theme-aware
- Text selection disabled app-wide so it stops feeling like a webpage; opt-in only on inputs, terminal output and code blocks
- Light-mode Primary/Danger buttons no longer go invisible on hover; hover glow tokenized so it actually shows on white backgrounds
🗑️ Removed
- Hardcoded Internet Archive source — replaced by the configurable sources model (8e9f3a1)
- GitHub personal access token field — no longer needed since GitHub is one of many configurable sources (f8d1251)
- Alternative sources (kernelos, printedwaste) — replaced by user-configured sources (25839d5)
🐛 Fixes & cleanup
- Docs site dropped FontAwesome, fixed outdated marketing copy and the obsolete GitHub rate-limit FAQ (b50062f)
- WebKit re-paint bug where hovering a button with
transform: translateYmade adjacent toggle sliders animate — switched the slider's check animation fromtransform: translateXtoleft(c223b6d) cargo tauri dev's "ghost window" afterapp.restart()— debug builds nowstd::process::exit(0)instead, so you re-run the dev command manually (c223b6d)- Hardened input validation and HTML escaping across the app (25839d5)
- Contributing guide, issue/PR templates, SECURITY.md, CODE_OF_CONDUCT.md added (75c0287)
- Stripped narration comments and decorative banners throughout the codebase (cd29e2c)
🤖 CI
- Automatic dev-branch build workflow with path filtering so only relevant changes trigger builds (73bec07, ab198ac, b530ded)
src-tauri/gen/gitignored and tracked build artifacts removed (9c60a99)
Full Changelog: v1.3.0...v1.4.0
Steam Manifest Downloader v1.3.0
What's Changed
🔍 Game Name Search
- Search by game name with autocomplete — powered by Steam Store Search API
- No need to know the App ID anymore, just start typing the game name
📊 Download Information
- Depot size display before download — see how large each depot is
- Total size shown in the download button when depots are selected
- Real-time download speed (MB/s) and ETA display
- Elapsed timer for large files — shows activity even when progress can't be tracked
⚙️ Advanced Settings
- New Advanced Settings panel in settings (collapsible dropdown)
- Configure DepotDownloader extra arguments, max retries, speed limit, proxy, and notification sound
- .NET Runtime warning banner with download link (Windows only)
🏗️ Architecture Changes
- Migrated from GitHub repos to Internet Archive — ManifestHub data preserved as permanent archive
- New folder picker button for download location (native OS dialog)
- "Start Over" returns to depot selection with preserved choices
- DDM binaries moved to
src-tauri/vendor/for cleaner project structure
🗑️ Removed
- Export .bat/.sh feature removed
- GitHub repository multi-search removed (replaced by Internet Archive)
🐛 Fixes
- Fixed unused Rust import warning
- Fixed .NET version references (8.0 → 9.0)
Steam Manifest Downloader v1.2.0
What's Changed
🔄 Auto-Update System
- Built-in auto-update system — checks for new releases on GitHub at startup with configurable toggle
- One-click update on Windows — downloads and installs the latest version automatically
🐧 Linux Improvements
- Custom title bar with full window dragging support on Linux
- Rounded window corners matching the Windows appearance
- Double-click title bar to maximize/restore window
🎨 UI Enhancements
- Custom title bar with minimize, maximize, close controls on all platforms
- Settings panel with update toggle and version display
🔐 Security & Signing
- Windows code signing with SignTool in the CI/CD pipeline
🔧 Infrastructure
- Enhanced release workflow with customizable release name, description, and pre-release option
- GitHub Pages deployment with path filter — pages only rebuild when documentation changes
- Faster CI builds with cargo-binstall for Tauri CLI installation
- Separate test workflows for Linux (Arch) and Windows builds
📦 Downloads
| Platform | File | Description |
|---|---|---|
| 🪟 Windows | steam-manifest-downloader.exe |
Portable executable (no install needed) |
| 🪟 Windows | Steam.Manifest.Downloader_1.2.0_x64-setup.exe |
NSIS installer |
| 🐧 Linux | Steam.Manifest.Downloader_1.2.0_amd64.AppImage |
AppImage (make executable with chmod +x) |
Full Changelog: https://smd.mcbabel.de/changelog/
Steam Manifest Downloader v1.1.0
What's Changed
🎨 UI Redesign
- Complete glassmorphism design overhaul — blur effects, blue/purple gradients, transparent borders, animated hover states
- Inter font now bundled locally as
.woff2files — removed Google Fonts CDN dependency for better privacy and offline support - Gradient text styling on header and App ID display
🔧 Infrastructure
- GitHub Actions CI/CD workflow for automated cross-platform builds and releases
- Two-stage Linux build pipeline — Arch Linux compilation for WebKitGTK ABI compatibility + Ubuntu AppImage bundling
- Simplified Content Security Policy after removing external font dependency
📦 Downloads
| Platform | File | Description |
|---|---|---|
| 🪟 Windows | steam-manifest-downloader.exe |
Portable executable (no install needed) |
| 🪟 Windows | Steam.Manifest.Downloader_1.1.0_x64-setup.exe |
NSIS installer |
| 🐧 Linux | Steam.Manifest.Downloader_1.1.0_amd64.AppImage |
AppImage (make executable with chmod +x) |
Full Changelog: https://smd.mcbabel.de/changelog/
v1.0.0 — Initial Release
🎮 Steam Manifest Downloader v1.0.0
The first official release!
✨ Features
- 📂 Drag & drop
.luafile upload with automatic parsing - 🔍 Multi-repo search across 5+ GitHub repositories
- 📦 Automatic manifest download from ManifestHub API
- 🔑 Automatic depot keys generation (
steam.keys) - ⚡ Integrated DepotDownloaderMod — embedded in the app, no separate install needed
- 📊 Real-time download progress tracking with cancel support
- 🎮 Steam Store API integration — game names & cover art
- 🌙 Dark / Light theme toggle
- ⚙️ Configurable settings — download location, GitHub token, extra args
- 📝 Batch script export (
.bat) for manual execution - 🛡️ Safe cancel — automatically cleans up partial downloads
📥 Downloads
| File | Description |
|---|---|
Steam.Manifest.Downloader_1.0.0_x64-setup.exe |
Recommended — Windows installer (NSIS) |
steam-manifest-downloader.exe |
Portable version (no install needed) |
💻 System Requirements
- Windows 10/11 (64-bit)
- .NET 8.0 Runtime (required for DepotDownloaderMod)
- Internet connection
⚠️ Legal Notice
This tool is for legitimate use only. DepotDownloaderMod must only be used with your own legally obtained Steam keys. See the full disclaimer in the README.