I built SteamWD because the other Steam Workshop downloaders annoyed me. I originally needed it to download Stellaris mods without dealing with them.
SteamWD is a Windows desktop app that downloads Steam Workshop items and
collections through steamcmd.
- Download items or collections from Workshop links or IDs
- Expand nested collections
- Download
steamcmdautomatically when it is not installed - Use anonymous login or a Steam account when a game requires ownership
- Queue multiple items and see their status and progress
- Retry failed items
- Skip items that are already downloaded and up to date
- Choose the output folder, naming format, grouping, and transfer mode
- Keep download history and clean the
steamcmdcache - Use light or dark mode
- Process supported games with built-in mod processors, including Stellaris
- Process RimWorld mods into its user
Modsfolder automatically
Run SteamWD.exe. Python is not required for the standalone executable.
SteamWD downloads steamcmd automatically the first time it needs it.
- Open the Downloads tab.
- Paste Workshop links or IDs into the input box.
- Click Add and start, or add items to the queue first.
- Double-click a completed item to open its output folder.
Files are saved to Downloads\SteamWD by default. The output location and
other options can be changed in the Settings tab.
SteamWD uses a generic folder processor for most games. Supported games can
have a built-in processor that prepares their files for the game. Stellaris
downloads are placed in %USERPROFILE%\Documents\Paradox Interactive\Stellaris\mod
by default, and SteamWD creates the .mod descriptor required by Stellaris.
The destination can be changed under Settings > Output > Stellaris mod
folder.
RimWorld downloads are placed in %USERPROFILE%\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Mods by default. RimWorld's existing About\About.xml metadata
is preserved. Both destinations are editable in Settings, and the queue shows
which processor was selected for each item.
Game processors are maintained in src/steamwd/processors/. Contributors can
add support for another game by implementing the processor interface, adding
tests, and registering the processor by Steam app ID.
Anonymous login is used by default. Some games only allow Workshop downloads for accounts that own the game. If needed, select Steam account under Settings > Steam account and save your password.
Passwords are stored in Windows Credential Manager. SteamWD asks for a Steam Guard code when Steam requires one.
| Data | Location |
|---|---|
| Settings and history | %APPDATA%\SteamWD\ |
| Logs | %APPDATA%\SteamWD\logs\ |
steamcmd and download cache |
%LOCALAPPDATA%\SteamWD\ |
These locations can be changed in Settings where supported.
Python 3.12 or newer is required.
py -m venv .venv
.venv\Scripts\Activate.ps1
pip install -e ".[dev]"Run the app:
python -m steamwdRun the tests and checks:
pytest
ruff check --fix .
ruff format .
mypy src testsBuild the standalone executable:
scripts\build.ps1The executable is written to dist\SteamWD.exe.
Releases are created by pushing a version tag such as v0.1.1 to GitHub. The
release workflow runs the tests, builds SteamWD.exe, and publishes a
SHA256SUMS.txt file alongside the executable. Verify a download in
PowerShell with:
Get-FileHash .\SteamWD.exe -Algorithm SHA256To enable an optional VirusTotal scan, add a repository secret named
VIRUSTOTAL_API_KEY. When configured, the workflow uploads the executable to
VirusTotal and includes the resulting VIRUSTOTAL.json report in the release.
The scan is skipped when the secret is not configured.
- Downloads depend on what Steam and
steamcmdmake available. - Some games require the logged-in account to own the game.
- Workshop content may change or disappear after it has been downloaded.
Every release is uploaded to VirusTotal for scanning and transparency. SteamWD is intended solely as a utility tool and has no malicious purpose. Antivirus engines may occasionally flag unsigned or newly built software as suspicious; if you are concerned about a release, inspect the public source code and build workflow yourself, verify the checksum, and review the VirusTotal results before running it.
See LICENSE. Do whatever you want with this project.