# DepotDownloader: a console client for pulling specific Steam depots and old manifests

> DepotDownloader is a .NET 8 console tool built on SteamKit2 that fetches individual Steam depots, workshop items and pinned manifest IDs. It is useful when the Steam client will not give you the exact build you need, and awkward when you want a graphical installer or a one-click download.

**SteamRE/DepotDownloader** — Steam depot downloader utilizing the SteamKit2 library.

- Repository: https://github.com/SteamRE/DepotDownloader
- Stars: 3,419 · Forks: 426
- Language: C#
- License: GPL-2.0
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/steamre-depotdownloader

## The problem DepotDownloader solves for Steam users

The Steam client downloads what the publisher currently serves. DepotDownloader targets the case where that is not what you want: a specific depot, a branch other than Public, a pinned manifest ID, or a workshop item pulled out of the client. It is a console application, and the README states plainly that it has no GUI, so the workflow is a command line and a directory of files. The audience is narrow but real. People who archive old builds, modders who need a particular manifest, and anyone scripting a download rather than clicking through Steam. It authenticates in two modes. By default it uses an anonymous account, which the README links to a SteamDB page listing which apps are available on it. For restricted content you pass -username, and the password is asked interactively unless you supply -password. That split matters: anonymous covers a subset of apps, and the README notes that error 401 or a missing manifest code for old manifest IDs may be resolved by logging in with a real Steam account.

## How the SteamKit2-based downloader actually works

The repository describes DepotDownloader as a Steam depot downloader utilizing the SteamKit2 library, and the top-level layout shows a single DepotDownloader project inside DepotDownloader.sln, targeting .NET 8.0. The flow implied by the parameters is: authenticate to Steam, resolve the app to a set of depots, resolve each depot to a manifest, then fetch content chunks from a content server. Several flags act at those stages. -app selects the AppID, -depot narrows to one depot, and -manifest pins the manifest, which the README says requires -depot and defaults to the current manifest for the branch. -branch and -branchpassword select a non-Public branch. -pubfile resolves a PublishedFileId to a UGC id automatically, while -ugc takes the UGC id directly. On the content side, -cellid overrides the content server CellID and -max-downloads caps concurrent chunk downloads, defaulting to 8. -use-lancache forces downloads over the local network via a Lancache instance. There is also a manifest-only mode that downloads a human readable manifest for the depots that would be downloaded, which is a cheap way to inspect what a selection resolves to before moving bytes.

## Installing DepotDownloader and downloading your first depot

The README gives three install routes. You can download a binary from the releases page, install the winget package on Windows, or use Homebrew on macOS. The winget command the README shows is:

```powershell
winget install --exact --id SteamRE.DepotDownloader
```

On macOS the README gives two commands, tapping the project's Homebrew tap first and then installing:

```shell
brew tap steamre/tools
brew install depotdownloader
```

Once installed, the basic invocation takes an app ID and optionally a depot and manifest. The README's own example pins all three:

```powershell
./DepotDownloader -app 730 -depot 731 -manifest 7617088375292372759
```

That example targets app 730 with depot 731 and a specific manifest ID. Run without -username, it uses the anonymous account. To pull a workshop item instead, the README shows -pubfile with an app ID, for example `./DepotDownloader -app 730 -pubfile 1885082371`, which resolves the published file ID to a UGC id automatically. Output lands in the current directory unless you pass -dir <installdir>. If you want to check what a selection resolves to before committing disk space, -manifest-only downloads a human readable manifest for the depots that would be downloaded.

## Where DepotDownloader fails or is the wrong tool

The README documents several failure modes rather than hiding them. Old manifest IDs can return error 401 or no manifest code at all, and the README states that Steam allows developers to block downloading old manifests, in which case no manifest code is returned even when the parameters look correct. That is a hard stop, not a configuration problem. Slow downloads and connection timeouts are also documented: when downloading old builds, the cache server may not have chunks readily available, and the README suggests increasing -max-downloads to saturate the network more. Authentication has its own friction. The README's FAQ says a 2FA code authenticates a Steam session and that you need -remember-password to persist the login key, otherwise you are prompted every run. Running it while an account is already connected to Steam closes the other connection if they share a LoginID; -loginid sets a distinct 32-bit integer for concurrent instances. Passwords with special characters need shell escaping if passed via -password, though omitting -password and relying on the interactive prompt avoids that. And if you want a GUI, this is simply not the project: the README states it has no GUI and must be run from a console.

## DepotDownloader compared with the Steam client and SteamCMD

The Steam client is the default alternative, and the difference is scope. Steam installs and updates the current build of an app you own, with a GUI, background updates and a library. DepotDownloader takes an app ID, depot ID and optional manifest ID and writes files to a directory you name with -dir. It does not manage a library, does not patch, and does not run in the background. SteamCMD, Valve's own console client, is the closer comparison for headless use, but it is aimed at dedicated servers and app installation rather than arbitrary manifest pinning. DepotDownloader's distinguishing capability is the combination of -manifest with -depot, plus branch selection via -branch and -branchpassword, which lets you request a specific historical build rather than whatever is current. It also exposes -os, -osarch, -all-platforms, -all-archs and -all-languages, so you can fetch platform or language variants of an app in one run, and -filelist to restrict the download to a list of paths, with a regex: prefix for pattern matching. Those are the levers that make it a different tool from both the client and SteamCMD.

## Licence and maintenance cost of the C# codebase

DepotDownloader is licensed GPL-2.0, per the repository metadata. If you only run the released binaries, that is the end of it. If you intend to reuse the code in another product, GPL-2.0 is a copyleft licence, and the practical consequence is that derivative distribution carries source and licensing obligations. This is not legal advice; check the LICENSE file in the repository and take advice if you plan to embed it. On maintenance, the last push to the default branch was on 2026-09-21, and the repository is not archived. The most recent release listed is DepotDownloader 3.4.0 on 2025-05-09, following 3.3.0 on 2025-05-04 and 3.2.0 on 2025-04-21. The README states support for .NET 8.0, and global.json at the repository root pins the SDK behaviour for builds. Upgrade cost is mostly on the Steam side rather than the tool: when Valve changes content server behaviour or a publisher blocks old manifests, the fix is in the tool, not in your scripts. Your command lines stay stable as long as the parameter names in the README do.

## Conclusion

Adopt DepotDownloader if you need a specific depot, branch or manifest ID and you are comfortable in a terminal; the README states it has no GUI, so anyone expecting a graphical client should look elsewhere. Skip it if anonymous access covers your case and the Steam client already downloads the build you want, since logging in with an account adds session handling and 2FA prompts. Before relying on it, verify that the app you care about is available under the anonymous account, and check whether the manifest you need returns a manifest code at all, because the README notes developers can block old manifests.

## FAQ

### Is DepotDownloader safe to use?

It is an open source project under GPL-2.0 that authenticates to Steam through the SteamKit2 library, and the README documents its parameters and failure modes. Safety here depends on what you do with the account credentials you supply, since -password and -remember-password persist or pass login material.

### How do I use DepotDownloader?

Run it from a console with an app ID, for example ./DepotDownloader -app 730 -depot 731 -manifest 7617088375292372759 as the README shows. It uses the anonymous account by default, and you add -username for restricted content.

### How do I install DepotDownloader?

The README lists three routes: a binary from the releases page, winget install --exact --id SteamRE.DepotDownloader on Windows, or brew tap steamre/tools followed by brew install depotdownloader on macOS.

### What is DepotDownloader and what does it do?

It is a Steam depot downloader built on the SteamKit2 library, supporting .NET 8.0, that downloads specific depots, workshop items and pinned manifests. The README states it must be run from a console and has no GUI.

### What are the latest DepotDownloader releases on GitHub?

The most recent release listed in the repository is DepotDownloader 3.4.0 on 2025-05-09, preceded by 3.3.0 on 2025-05-04 and 3.2.0 on 2025-04-21. Binaries are published on the releases page.

### How do I use DepotDownloader on Linux?

The README does not list a Linux installation command; it documents a GitHub binary, winget on Windows and Homebrew on macOS. It does document an -os parameter accepting windows, macos or linux, which selects which platform-specific depots to download rather than where the tool runs.

## Sources

- [Issues](https://github.com/SteamRE/DepotDownloader/issues)
- [License: GPL-2.0](https://github.com/SteamRE/DepotDownloader/blob/master/LICENSE)
- [README](https://github.com/SteamRE/DepotDownloader/blob/master/README.md)
- [Releases](https://github.com/SteamRE/DepotDownloader/releases)
- [SteamRE/DepotDownloader on GitHub](https://github.com/SteamRE/DepotDownloader)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/steamre-depotdownloader
