Skip to main content

steam-library-size

How big would your Steam library be if you installed every game you own?

Installing and running steam-library-size in a terminal: a 288-game library totals 6,401 GB

Steam only knows the size of games you've already installed. SteamDB's calculator doesn't do install sizes, and the old web calculators are dead — and they needed a public profile anyway. This tool answers the question locally: it reads the license cache your own Steam client already has on disk, then asks Steam anonymously for each game's depot sizes. No API key. No public profile. Works with fully private accounts.

Install

You need: Python 3.10 or newer, and Steam installed on the same machine (logged in at least once — that's what writes the license cache this tool reads). Your games do not need to be installed.

The recommended installer is pipx — it's like pip, but it puts command-line tools in their own isolated environment so they can't break (or be broken by) anything else on your system.

Windows

  1. Install Python from python.org/downloads — on the first installer screen, tick "Add python.exe to PATH".
  2. Open a new Command Prompt (or PowerShell) and run:
    py -m pip install --user pipx
    py -m pipx ensurepath
    
  3. Close and reopen the terminal (that's what makes the new PATH take effect), then:
    pipx install steam-library-size
    

Linux

Install pipx from your package manager, then install the tool:

# Debian/Ubuntu:  sudo apt install pipx
# Fedora:         sudo dnf install pipx
# Arch:           sudo pacman -S python-pipx
pipx ensurepath

Close and reopen the terminal, then:

pipx install steam-library-size

macOS

brew install pipx
pipx ensurepath

Close and reopen the terminal, then:

pipx install steam-library-size

Just want a single script to read and run?

The whole tool also exists as one plain Python file: standalone/steam_library_size.py. Download it, install its two dependencies, and run it:

python3 -m pip install vdf "steam[client]"
python3 steam_library_size.py

Same behavior, same flags. A test in CI keeps it byte-for-byte in sync with the packaged version.

No pipx? Plain pip works too

python3 -m pip install --user steam-library-size    # Windows: py -m pip install --user steam-library-size

Troubleshooting

  • steam-library-size: command not found — you didn't reopen the terminal after pipx ensurepath (or skipped it). Reopen and try again.
  • pipx: command not found right after installing it — same fix: new terminal.
  • error: Could not find a Steam install — start Steam once and log in, or pass the location yourself: steam-library-size --steam-dir "D:\Steam".

Usage

Just run it:

steam-library-size

Real output from a real library:

Your Steam library: 288 games
Installed all at once, that's 6,401.0 GB (6.25 TiB).
An 8 TB drive would hold the lot.

  Games: 6,401.0 GB   DLC: 8.7 GB   Other (tools/demos/etc): 545.2 GB

Top 5 biggest games:
      572.6 GB  Call of Duty®
      496.6 GB  ARK: Survival Evolved
      208.2 GB  iRacing
      182.1 GB  Arma 3
      180.5 GB  FINAL FANTASY VII REBIRTH

8 apps with no size data (usually delisted or test apps).

Options

Flag What it does
--top N How many of the biggest games to list (default: 20)
--json Machine-readable JSON (totals + every app) to stdout
--csv One CSV row per app: appid,name,type,size_bytes
--include-dlc Add owned DLC sizes to the headline total
--include-all Add everything owned (DLC, tools, demos, soundtracks, servers)
--os {windows,linux,macos,all} Which platform's depots to size. Default: your platform — except Linux uses Windows sizes, matching what Proton installs. all sums every platform (upper bound).
--steam-dir PATH Point at your Steam install if auto-detection fails

Progress goes to stderr, so --json/--csv pipe cleanly.

How it works

Your Steam client keeps a cache of every license on your account in appcache/packageinfo.vdf. The tool parses that file to get the full list of app IDs you own, then makes one anonymous connection to Steam's product-info service (the same PICS system the Steam client uses) to fetch each app's depot manifest sizes, and sums the public-branch, English, your-platform depots per app.

Accuracy caveats

  • Sizes are fresh-install sizes today (uncompressed public-branch depots). Games with optional depots — every Call of Duty mode, all ARK maps, HD texture packs — count all of them, so those over-report a typical install.
  • Shader cache, save games, and workshop content are not included.
  • Owned-but-delisted apps may have no size data; they're counted and reported as such, never silently dropped. Same for apps that fail to fetch.

Privacy

Nothing about your account leaves your machine. The only network traffic is an anonymous (not-logged-in) Steam connection querying public app metadata by app ID — the same data any Steam client can see.

Platform support

  • Linux: verified, including Flatpak and Snap Steam installs.
  • Windows / macOS: path detection implemented and unit-tested, but not yet verified on real machines — issues and reports welcome.

License

MIT — see LICENSE.

Metadata

Release files for steam-library-size 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for steam-library-size 0.2.0
File Size Uploaded
steam_library_size-0.2.0.tar.gz 337.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for steam-library-size 0.2.0
File Interpreter ABI Platform
steam_library_size-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 349.2 kB

Release files / steam_library_size-0.2.0.tar.gz

Download URL steam_library_size-0.2.0.tar.gz
Size 337.8 kB
Tags Source
SHA-256 checksum
How to use checksums
746fe4090698b7ec1da97197523947f712d80d2b1c7d7b96302e41d58cb36415
BLAKE2b-256 checksum
How to use checksums
0913b4fb7f69d80fa00c5898736872c0dc6e1f50af23f0188b4275133b92fb23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release files / steam_library_size-0.2.0-py3-none-any.whl

Download URL steam_library_size-0.2.0-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8510691df8a15f2fdb18fa80f05002c354dc466e6613b2eb590677f24cb40f57
BLAKE2b-256 checksum
How to use checksums
2c52d60b9333d1e926ac136fc80a5b951dcdc239077d5c8c5c5f9fdc3ad13c69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page