Home Features How It Works Tech Stack Docs Changelog Download GitHub
Getting Started

Getting Started

Steam Manifest Downloader (SMD) is a modern Tauri v2 desktop application built with Rust and WebView. It parses manifest files, searches multiple sources for Steam depot manifests, and downloads them automatically using an integrated DepotDownloaderMod engine.

System Requirements

  • .NET 9.0 Runtime — Required by the embedded DepotDownloaderMod engine. Download .NET 9.0
  • Windows 10+ — Windows 10 version 1803 or later (with WebView2)
  • Linux — Most modern distributions with GTK3 and WebKit2GTK (for AppImage: FUSE support or APPIMAGE_EXTRACT_AND_RUN=1)
  • Internet connection — Required for searching and downloading manifests
  • Disk space — ~20 MB for the app itself; additional space for downloaded depots

Installation

Windows (NSIS Installer)

  1. Download the latest .exe installer from the Releases page
  2. Run the installer and follow the setup wizard
  3. Launch Steam Manifest Downloader from your Start Menu or Desktop

Linux (AppImage)

  1. Download the latest .AppImage file from the Releases page
  2. Make it executable:
bash
chmod +x SteamManifestDownloader_*.AppImage
./SteamManifestDownloader_*.AppImage

If FUSE is not available on your system, you can run the AppImage with the environment variable APPIMAGE_EXTRACT_AND_RUN=1 set.


First Launch

On first launch, the application opens with the main interface ready to accept files. No initial configuration is required — the default settings work for most users. However, you may want to:

  • Set a custom download location on the download page before starting a download
  • Add a GitHub token via the ⚙️ gear icon to increase API rate limits (optional)
  • Configure a ManifestHub API key for additional manifest sources (optional)
Usage Guide

Usage Guide

Using Steam Manifest Downloader is a straightforward 3-step process: upload a file, select the manifests you need, and hit download.


Step 1: Upload a File

Start by providing a manifest data file. You can either:

  • Drag & drop a .lua, .vdf, or .st file onto the upload area
  • Click the upload area to open a file picker

The application will parse the file and extract all depot IDs, manifest IDs, app IDs, and depot keys contained within.

You can upload multiple files — each new upload merges its data with any previously loaded depots.


Step 2: Select Manifests

After parsing, the app displays a list of all discovered depots and their manifest IDs. From here you can:

  • Select / deselect individual depots using the checkboxes
  • Use Select All or Deselect All for bulk actions
  • Search / filter depots by ID or name using the search bar
  • View app details fetched from the Steam Store API (game name, icon, etc.)

Each depot entry shows the depot ID, the associated manifest ID, and whether a depot key was found in the parsed file.


Step 3: Download

Click the Download button to begin. Behind the scenes, the application performs several operations:

  1. Manifest search — Queries ManifestHub API and multiple GitHub repositories to locate .manifest files for each selected depot
  2. Manifest download — Downloads all found .manifest files to a local directory
  3. Depot keys generation — Creates a steam.keys file containing all known depot decryption keys
  4. DepotDownloaderMod execution — Launches the embedded DepotDownloaderMod binary with the correct arguments to download the actual depot files

You'll see real-time progress tracking with:

  • A progress bar showing overall completion
  • Download speed (MB/s)
  • ETA estimates
  • Per-depot status updates

The downloaded files are saved to your configured download location (default: Documents/SteamDownloads). Each download creates a subdirectory named after the app ID.


Cancel a Download

You can cancel an in-progress download at any time by clicking the Cancel button. When a download is canceled:

  • The DepotDownloaderMod process is terminated immediately
  • Partially downloaded files are deleted to avoid incomplete or corrupted data
  • The UI returns to the selection screen so you can start a new download

Canceling a download will delete all partially downloaded files for that session. Make sure you really want to cancel before confirming.

File Formats

Supported File Formats

SMD can parse three different file formats to extract depot and manifest information.


.lua Files

Lua script files are the most common format. They contain function calls that define app IDs, depot keys, and manifest IDs. The parser recognizes the following patterns:

lua
-- Register an app ID (no depot key)
addappid(1995890)

-- Register a depot with a hex decryption key
addappid(1995891, 0, "a1b2c3d4e5f6...")

-- Set the manifest ID for a depot
setManifestid(1995891, "3438272076824159257")
  • addappid(depotId) — Registers a depot ID
  • addappid(depotId, 0, "hexKey") — Registers a depot with a decryption key
  • setManifestid(depotId, "manifestId") — Associates a manifest ID with a depot

.vdf / Key.vdf Files

Valve Data Format (VDF) files use a nested key-value structure. The Key.vdf file typically contains depot keys in the following format:

vdf
"depots"
{
    "1995891"
    {
        "DecryptionKey"    "a1b2c3d4e5f6..."
    }
    "1995892"
    {
        "DecryptionKey"    "f6e5d4c3b2a1..."
    }
}

The parser extracts each depot ID and its associated decryption key from the VDF structure.


.st Files

The .st format is a binary file format used by certain sources. SMD includes a dedicated binary parser that can read and extract depot IDs, manifest IDs, and depot keys from these files.

.st files are automatically detected by their binary signature. Simply drag and drop them like any other supported file.

Configuration

Settings & Configuration

Configuration options are split between the Settings modal (⚙️ gear icon in the header) and the download page (Step 3 of the workflow). All values are persisted between sessions.

Settings Modal (⚙️)

Click the gear icon in the top-right corner to open the Settings modal. Currently it contains:

GitHub Token (optional)

Adding a personal GitHub token increases the GitHub API rate limit from 60 requests/hour (unauthenticated) to 5,000 requests/hour (authenticated).

To generate a token:

  1. Go to GitHub → Settings → Developer settings → Personal access tokens
  2. Click Generate new token (classic)
  3. No special scopes are required — a token with no permissions is sufficient
  4. Copy the token and paste it into the token field, then click Save

Your token is stored locally on your machine only. It is never sent anywhere except to the GitHub API for authentication.


Download Page Options

These options appear on the download page (Step 3) after selecting your depots, just above the download button.

Download Location

Configure where downloaded depot files are saved. Type or paste a path directly into the text field. The default location is Documents/SteamDownloads inside your home folder.

  • Each download creates a subdirectory named after the app ID
  • Ensure the chosen path has sufficient disk space

ManifestHub API Key (optional)

If you have a ManifestHub API key, enter it on the download page to enable searching the ManifestHub manifest database. This provides access to a large collection of Steam manifests as an additional source.


Internal Defaults

The app passes default arguments to the DepotDownloaderMod engine automatically. These include:

args
-max-downloads 8 -verify-all

This limits concurrent download connections to 8 and verifies all downloaded files. These defaults are not configurable through the UI.

Configuration

Manifest Sources

SMD searches multiple sources to locate manifest files for your selected depots. Here's where it looks:

ManifestHub API

The primary manifest source. SMD queries the ManifestHub API at:

url
manifesthub1.filegear-sg.me

This API provides fast, indexed access to a large database of Steam manifests. Requires an API key entered on the download page.


GitHub Repositories

SMD searches multiple GitHub repositories for manifest files using the GitHub Contents API. The primary repositories include:

  • SteamAutoCracks/ManifestHub — The main manifest repository

The app searches for manifest files matching the depot ID and manifest ID pattern within these repositories.

GitHub API has rate limits. Without a token, you're limited to 60 requests/hour. Add a GitHub token in Settings to increase this to 5,000 requests/hour.


Alternative Sources

When a manifest is not found on the primary sources, SMD also checks alternative sources:

  • KernelOS — Alternative manifest repository
  • PrintedWaste — Additional fallback source

These sources are checked automatically as fallbacks — no additional configuration is needed.

Development

Building from Source

This guide covers how to compile Steam Manifest Downloader from source. The project uses Tauri v2 with a Rust backend and an embedded .NET tool (DepotDownloaderMod).


Prerequisites

bash
cargo install tauri-cli

Linux Additional Dependencies

bash
# Debian/Ubuntu
sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

# Arch/CachyOS
sudo pacman -S webkit2gtk-4.1 libappindicator-gtk3 librsvg patchelf

Step 1: Building DepotDownloaderMod (optional)

The project embeds DepotDownloaderMod binaries at compile time. Pre-built versions are already included in the repository, so this step is only needed if you want to build them yourself.

Pre-built binaries are located in DepotDownloaderMod-Windows/ (framework-dependent, requires .NET runtime) and DepotDownloaderMod-linux-full/ (self-contained, no runtime needed). You can skip this step if you don't need to modify them.

Source: github.com/SteamAutoCracks/DepotDownloaderMod

Windows (framework-dependent)

bash
git clone https://github.com/SteamAutoCracks/DepotDownloaderMod.git
cd DepotDownloaderMod
dotnet publish -c Release -o ./publish-windows

Then copy all files from publish-windows/ to DepotDownloaderMod-Windows/ in the project:

  • DepotDownloaderMod.exe
  • DepotDownloaderMod.dll
  • DepotDownloaderMod.deps.json
  • DepotDownloaderMod.runtimeconfig.json
  • SteamKit2.dll
  • protobuf-net.Core.dll
  • protobuf-net.dll
  • QRCoder.dll
  • System.IO.Hashing.dll
  • ZstdSharp.dll

Linux (self-contained, NO trimming)

bash
git clone https://github.com/SteamAutoCracks/DepotDownloaderMod.git
cd DepotDownloaderMod
dotnet publish -c Release -r linux-x64 --self-contained true \
    -p:PublishSingleFile=true -o ./publish-linux

Do NOT use -p:PublishTrimmed=true — .NET trimming removes reflection metadata needed by SteamKit2/protobuf-net, causing "A task was canceled" errors at runtime.

Then copy publish-linux/DepotDownloaderMod to DepotDownloaderMod-linux-full/DepotDownloaderMod in the project.


Step 2: Building the Tauri App

Windows

bash
cargo tauri build

Output locations:

  • NSIS installer: src-tauri/target/release/bundle/nsis/
  • Portable executable: src-tauri/target/release/steam-manifest-downloader.exe

Linux (Arch/CachyOS/etc.)

bash
NO_STRIP=true APPIMAGE_EXTRACT_AND_RUN=1 cargo tauri build

Output: src-tauri/target/release/bundle/appimage/Steam Manifest Downloader_1.1.0_amd64.AppImage

NO_STRIP=true prevents stripping symbols from the embedded .NET binary. APPIMAGE_EXTRACT_AND_RUN=1 is needed on some distros for the AppImage bundler to work correctly.


Step 3: Project Structure (for reference)

The include_bytes! macro in src-tauri/src/services/embedded_tools.rs embeds the DDM binaries at compile time:

  • Windows build reads from DepotDownloaderMod-Windows/
  • Linux build reads from DepotDownloaderMod-linux-full/

The DDM binary files must be in place before running cargo tauri build. The Rust compiler reads them via include_bytes! at compile time — if the files are missing, the build will fail.

Help

Troubleshooting / FAQ

Common issues and how to resolve them.

".NET not found" error on launch
The embedded DepotDownloaderMod requires .NET 9.0 Runtime. Download and install it from dotnet.microsoft.com. Make sure to install the .NET Runtime (not just the ASP.NET or Desktop runtime).
"Connection timeout" during download
This usually happens when too many concurrent connections overwhelm your network or when Steam servers are under heavy load. Check if a VPN or proxy is interfering with the connection. The app uses -max-downloads 8 by default, which works well for most connections.
"GitHub rate limit exceeded" when searching
Without authentication, GitHub limits API requests to 60 per hour. Go to Settings and add a GitHub personal access token. This increases the limit to 5,000 requests/hour. See the Settings section for instructions on generating a token.
Download stuck at 0%
First, check your internet connection. If your connection is fine, ensure your firewall or antivirus is not blocking DepotDownloaderMod.exe. You may need to add an exception for the application. Also verify that .NET 9.0 Runtime is properly installed.
Linux: AppImage won't launch
AppImages require FUSE to run. If FUSE is not available on your system, set the environment variable before launching:

APPIMAGE_EXTRACT_AND_RUN=1 ./SteamManifestDownloader_*.AppImage

Also ensure the file is executable: chmod +x SteamManifestDownloader_*.AppImage
No manifests found for my game
Not all games have manifests available in the searched repositories. Ensure your .lua / .vdf / .st file contains the correct depot and manifest IDs. You can also try adding a ManifestHub API key on the download page for access to additional sources.
App crashes or shows a white screen
On Windows, ensure Microsoft Edge WebView2 Runtime is installed (it's included with Windows 10 1803+ and Windows 11). On Linux, ensure WebKit2GTK is installed (sudo apt install libwebkit2gtk-4.1-0 on Debian/Ubuntu).