Files
steam-backlog-helper/README.md
T
2026-07-16 13:21:36 +01:00

150 lines
4.1 KiB
Markdown

# Steam Backlog Helper
Steam Backlog Helper is a desktop app for choosing what to play next from a large Steam library.
It is built around a simple workflow: connect a Steam profile, import the owned games list, set a few preferences, then spin the wheel for a recommendation. The app is intended for people with enough Steam games that picking one has become its own chore.
## What It Does
- Imports your Steam library using your Steam profile and Steam Web API key.
- Shows a large recommendation wheel using Steam game artwork.
- Picks from your imported library with either weighted recommendations or true random mode.
- Lets you adjust hard eligibility filters, such as whether to include unplayed or already-played games.
- Lets you set preference weights for reviews, single-player/multiplayer, genre or Steam tags, and playtime.
- Builds a shortlist of top candidate games.
- Opens a separate debug window so you can inspect why a game was picked.
## Current State
This is an early local-first version. The app can run as a Tauri desktop application and can build a macOS DMG locally.
Working now:
- First-run setup wizard.
- Local settings storage.
- Steam owned-games import.
- Recommendation wheel.
- Shortlist view.
- Settings modal.
- Separate debug diagnostics window.
- Background metadata enrichment for reviews, tags, genres, categories, and play mode where available.
Still evolving:
- Metadata caching in SQLite.
- Faster and more reliable Steam Store enrichment for very large libraries.
- Better exclusion of non-game Steam apps once metadata caching is in place.
- Launching selected games directly through Steam.
- Completion-time integration.
- Release automation for all platforms.
## Requirements
You need:
- A Steam account with public or API-accessible game details.
- A Steam Web API key.
- Node.js and npm for local development.
- Rust/Cargo for the Tauri desktop app.
The app does not ask for your Steam password.
## Running Locally
Install dependencies first:
```bash
npm install
```
Run validation:
```bash
npm run local:check
```
Start the desktop app:
```bash
npm run local:dev
```
Build a local desktop release:
```bash
npm run local:build
```
On macOS, the DMG is written under:
```text
src-tauri/target/release/bundle/dmg/
```
## Setup Flow
On first run, the app asks for:
- Steam profile, vanity URL, profile URL, or Steam ID.
- Steam Web API key.
- Optional time-to-beat provider placeholder.
- Default session length.
- Random mode preference.
Settings can be changed later from the cog button in the top bar.
## Recommendations
The picker separates two kinds of filters:
- Eligibility filters remove games from the candidate pool.
- Preferred filters change weighting without removing games.
Preferred filters currently include:
- Review signal.
- Single-player or multiplayer/co-op preference.
- Genre and Steam tag preference.
- Playtime preference.
True random mode bypasses weighting and chooses from the eligible pool.
## Debug Window
The Settings screen includes an Open Debug Window button. This opens a second desktop window that shows:
- Current pick.
- Active restrictions.
- Score contributions.
- Review data.
- Genres.
- Steam tags.
- Categories.
- Play mode metadata.
- Candidate scores.
This is useful while tuning the recommendation logic.
## Data And Privacy
Steam Backlog Helper is local-first.
- Settings are stored locally.
- The Steam API key is currently stored locally in SQLite during early development.
- The app contacts Steam APIs and public Steam Store pages to import and enrich library data.
- Library data is not sent to an app-owned server.
Before a public release, API key storage should move to OS-protected credential storage.
## Documentation
Project planning lives in:
- [Product Brief](docs/product-brief.md)
- [Implementation Plan](docs/implementation-plan.md)
- [Feature Roadmap](docs/feature-roadmap.md)
- [Technical Plan](docs/technical-plan.md)
- [Data and Integrations](docs/data-and-integrations.md)
- [Architecture Decisions](docs/architecture-decisions.md)
- [Answered Product Questions](docs/open-questions.md)