Skip to content

Releases: mcbabel/Steam-Manifest-Downloader

Dev Build v1.5.0 (c13134e)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Oct 03:29
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

Choose a tag to compare

@github-actions github-actions released this 05 Oct 14:18
238d052

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 smd for 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 download and smd history work headless for servers and scripts, with --json output. The Linux build is static and runs on any distribution. Requested by @Cohinem in #3
  • Docker image at ghcr.io/mcbabel/steam-manifest-downloader for every release and dev build, with /games and /data volumes. docker stop cancels cleanly.
  • Windows standalone ZIP: the portable app plus gbe_fork, Steamless and the Steam API check bypass in a third-party folder. 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-depots for 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+H and Ctrl+,.
  • 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 .exe files.
  • 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

Windows Setup Windows Standalone ZIP Linux AppImage

Terminal Windows Terminal Linux Docker

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

Choose a tag to compare

@github-actions github-actions released this 23 Jul 18:26

What's Changed

🚨 Critical fix — ManifestHub domain repoint

  • The api.manifesthub1.filegear-sg.me subdomain went NXDOMAIN, breaking the ManifestHub download path with error sending request for url (...). Repointed to the operator's active mirror api.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_COUNT bumped 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 from steamcontent.com killed 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_type detection (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_history with 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 rejects delete_files=true unless the entry is cancelled_resumable with a resume payload.

🎨 UX polish

  • Progress text now reads X% — completed_GB / total_GB instead of bare percent.
  • Speed / ETA labels refresh at 1.5 s cadence — no more flicker.
  • Phantom completion sound killed: progress events whose jobId mismatches the active job are dropped.
  • Landing hero Download button on the docs site auto-resolves to the latest .exe on Windows.

🧹 Cleanup

  • Dropped the never-shipped lobby_connect launcher path (frontend, IPC, backend, locales — all in one sweep).

Commit: 697b03f

Windows Setup Windows Portable Linux


Full Changelog: v1.4.2...v1.4.3

Steam Manifest Downloader v1.4.2

Choose a tag to compare

@github-actions github-actions released this 14 May 03:00

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_seeded and pristine_default_sources. save_settings keeps the pristine list pruned to URLs still present in depot_sources so the remove-confirmation logic naturally falls out of the data model.
  • Remove-source confirmation modal has its own z-index: 1100 so it stacks above the Settings modal that spawned it.

Commit: aaf9f6f

Windows Setup Windows Portable Linux


Full Changelog: v1.4.1...v1.4.2

Steam Manifest Downloader v1.4.1

Choose a tag to compare

@github-actions github-actions released this 13 May 11:01

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 / .tar now 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.zip archives, the resolver still picks branches/ 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: none was previously hiding them from the clipboard.

🤖 CI

  • SMD_BUILD_DATE is now computed at build time with date -u, so the "Build date" in Settings → Debug Info is populated even for releases triggered via workflow_dispatch (where head_commit.timestamp is empty).

Commit: 15e646c


Full Changelog: v1.4.0...v1.4.1

Steam Manifest Downloader v1.4.0

Choose a tag to compare

@github-actions github-actions released this 12 May 13:03

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_box sealed-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

Commits: 5b0bb92, 9167376

🪄 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

Commits: d2c78ee, f8d1251

📜 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

Commits: 35ce3f8, f8d1251

🔌 User-configurable depot sources

  • The app no longer ships hardcoded archive.org / GitHub repos — paste any URL
  • GitHub repositories and archive.org/view_archive.php URLs 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-label on every icon-only button, role="dialog" + aria-modal on all six modals
  • Focus trap: Tab cycles inside the topmost dialog, Escape closes via [data-modal-cancel]
  • role="progressbar" on the workflow stepper with aria-valuenow updated 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

Commits: 895866e, fa8f760

🗑️ 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: translateY made adjacent toggle sliders animate — switched the slider's check animation from transform: translateX to left (c223b6d)
  • cargo tauri dev's "ghost window" after app.restart() — debug builds now std::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

Choose a tag to compare

@github-actions github-actions released this 07 Apr 13:37

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

Choose a tag to compare

@github-actions github-actions released this 18 Mar 22:11

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

Choose a tag to compare

@github-actions github-actions released this 20 Feb 00:23

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 .woff2 files — 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

Choose a tag to compare

@mcbabel mcbabel released this 16 Feb 02:06

🎮 Steam Manifest Downloader v1.0.0

The first official release!

✨ Features

  • 📂 Drag & drop .lua file 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.