Skip to main content

SteamGGames — CLI + TUI for browsing games on steamgg.net

Project description

SteamGGames — CLI + TUI for steamgg.net

Interactive game browser for steamgg.net, right from the terminal.

Author: DevTroli · License: MIT · Version: 1.0

🇺🇸 English | 🇧🇷 Português


Installation

Global (recommended):

pip install steamggames
steamggames

Development:

git clone https://github.com/DevTroli/SteamGGames.git && cd SteamGGames
uv venv && uv pip install -r requirements.txt
uv run steamggames

Usage

steamggames                        # Interactive TUI mode
steamggames search "Elden Ring"    # Direct search
steamggames info <url>             # Game details
steamggames open <url>             # Open in browser
steamggames --refresh              # Force cache refresh

TUI Commands

Command Action
<text> Search by name
info <n> Details for result #N
info <url> Details from URL
open <n> Open result #N in browser
open <url> Open URL in browser
next / n Next page
prev / p Previous page
refresh Clear cache and re-fetch
help / h Help
quit / q Quit

Features

  • Async: 8 concurrent connections (aiohttp) with semaphore
  • 🛡️ Anti-block: 1.5~4.5s delay, backoff on 403/429/503, User-Agent rotation
  • 📦 Smart cache: 4h for search, 12h for game page (XDG)
  • 🔒 SSL/TLS: certifi CA bundle + SSRF protection
  • 🎨 Rich TUI: colored interface with tables and panels
  • 🔍 Version extraction: detects v1.2.3, Build N, Update N automatically
  • 🔗 Download links: extracts vc_btn3 buttons for datanodes.to, rootz.so, etc.

Project Structure

steamggames/
├── __init__.py     # Version and metadata
├── config.py       # Constants, URLs, anti-block, cache config
├── models.py       # Dataclasses: SearchResult, GamePage, DownloadLink
├── utils.py        # User-Agent rotation, extract_version, helpers
├── cache.py        # Disk cache with TTL (XDG)
├── scraper.py      # Async scraper with multi-layer selectors
├── cli.py          # CLI with argparse + entry point
└── tui.py          # Interactive TUI with Rich

Cache Location

Cache is stored at:

  • Linux/macOS: ~/.cache/steamggames/
  • Windows: %LOCALAPPDATA%\steamggames\

To clear: use the refresh command in TUI, or delete the folder manually.

Development

# Install dev dependencies
uv pip install -e ".[dev]"

# Lint
ruff check steamggames/

# Type check
mypy steamggames/

# Tests
pytest

Not affiliated with steamgg.net. Use in accordance with the site's terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

steamggames-1.0.0.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

steamggames-1.0.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file steamggames-1.0.0.tar.gz.

File metadata

  • Download URL: steamggames-1.0.0.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for steamggames-1.0.0.tar.gz
Algorithm Hash digest
SHA256 56f190777145bc2d7087ce1fbcceff5fe07bd074d76ebb9fa5dd022e46aef8cc
MD5 33832cec89c4c415b1656755f708a7d4
BLAKE2b-256 74ce65d4956609f763882dc63a7e85436d926f42295aa1cc9c91e5d0f06f8c01

See more details on using hashes here.

File details

Details for the file steamggames-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: steamggames-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for steamggames-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9f6996cd940b2bb3f3bac6e207a3522d830109368d1fe9ba55f947ab13fa9e4
MD5 0f698fc8a1267ff1cf3d27e5a2fd5910
BLAKE2b-256 9d41bb1b59b830d0415a6f9db1f3a3e5052ba7b576777b3c19edfef721f343a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page