Skip to content

Repository files navigation

GameIndex logo

GameIndex

A unified, cross-store game launcher and library manager.

Unify your Steam, GOG, Epic, Rockstar, Ubisoft, and DRM-free libraries into a single, fast, native experience — with discovery, sync, activity tracking, a social layer, and a controller-first 10-foot UI.


Status Platforms Stack License: MIT


📑 Table of Contents


✨ Features

Feature Description
Unified Library Steam, GOG Galaxy, Epic Games Store, Rockstar, Ubisoft Connect, Humble Bundle, and manual imports in one cohesive grid.
Rich Game Pages Hero, metadata, reviews, achievements, screenshots, videos, web links, HowLongToBeat, Crackwatch, ProtonDB, and live player counts.
Emulators & ROMs Integrated emulator manager: launch emulator executables, catalog multi-system platforms, and manage ROMs with bulk actions.
Mod Manager Dual-pane mod manager for Steam Workshop & Nexus Mods with bulk multi-select (enable/disable/delete), stat cards, and mod size tracking.
IGDB Storefront IGDB-powered catalog browsing (search, filters, rails, price badges, comparisons).
Activity Tracking FPS, frametime, and per-session metrics via MSI Afterburner / RTSS, with interactive timeline, Gantt, performance, and sparkline views.
Downloads Unified download engine with single-active queueing, seeding, HTTP direct, debrid (Real-Debrid / AllDebrid), and torrents via librqbit.
Storage Manager Visualize disk usage, move installs between drives, track emulator & mod footprints, and bulk-recalculate sizes.
Community & Friends Local-first social layer: profiles, friend sync, shared recommendations, and a community feed.
Discord Rich Presence Playing and browsing presence — platform/playtime context, dynamic game poster, and a launcher toggle.
Big Picture Mode Full-screen, controller-first 10-foot UI with rail-aware gamepad navigation across Library, Store, News, Deals, Activity, Friends, and Community.
Live Player Counts Steam player counts with a hero banner, tabbed popover, and historical player-count graph with range toggle.
i18n & Privacy Multi-language translation support (LanguageContext), theme gallery with custom accent picker, and a Privacy & Data tab to view/wipe local storage.

🚧 Planned / in progress: Linux + Steam Deck support · Steam reviews & multi-source ratings · plugin system.


📸 Screenshots

Dark-first UI, captured on Windows at 1920×1080. The same interface adapts to light mode and desktop use.

GameIndex library grid

🏠 Library

Library grid view Library with filters and detail rail

🎮 Game Page

Game page hero banner Game page metadata Game page details and media

🛒 Store

Store catalogue Store browsing with filters Store product page

Community reviews Web links panel

📰 News

News feed News article

💰 Deals

Deals view 1 Deals view 2 Deals view 3

📊 Stats

Stats overview Stats charts Stats breakdown

🎯 Activity

Activity timeline Activity charts Session metrics

👥 Friends

Friends hub Friend profile Friends chat

🧩 Mods & 🕹️ Emulators

Mod manager Emulator manager Emulator library

📥 Downloads

Downloads manager

💾 Storage

Storage manager Storage breakdown Storage actions

🏆 Achievements & 💜 Wishlist

Achievements Wishlist

📁 Full sets live in Screenshots/ — including more Game page (10), Friends (10), Activity (5), and Store (9) shots.


💡 Inspiration

GameIndex is built with — not just inspired by — excellent projects in the launcher space:

  • Hydra Launcher — the clean, modern approach to game distribution.
  • Playnite — the extensible, library-aggregation philosophy and customization depth.
  • LaunchBox — rich metadata, media, and emulation-focused cataloging.
  • Steam + GOG Galaxy — unified-library UX patterns.

We borrow the best ideas from each and aim to combine them into a single, lightweight native app.


🛠️ Tech Stack

Layer Technology
Shell Tauri v2 (Rust)
Frontend React 19 + TypeScript
Bundler Vite 7
DB SQLite (rusqlite + r2d2_sqlite)
Secrets OS keychain via keyring
Torrents librqbit
Charts Custom SVG (src/components/charts/)
Routing React Router v7 (HashRouter for Tauri file://)

🚀 Getting Started

Prerequisites

Development

npm install
npm run tauri dev      # launches the native window with hot reload

Frontend-only iteration (no native shell):

npm run dev            # Vite at http://localhost:1420

Build

npm run tauri build    # tsc + vite build + native bundles

🔎 VirusTotal scans

Independent antivirus scans of the latest release artifacts:

Why does VirusTotal flag GameIndex? The detections you may see (e.g. Trapmine's Malicious.moderate.ml.score or Acronis's Static ML) are machine-learning heuristics, not malware signatures — there is no malicious behavior being matched. GameIndex is a Tauri (Rust) app, and Rust-compiled binaries are routinely flagged for these characteristics:

  • Unsigned binaries. Release builds are not code-signed, so antivirus engines have no publisher identity to anchor on and treat the file as an "unknown new binary."
  • Rust binary traits. Static Rust executables have high entropy and an import table atypical of native apps — a classic ML trigger.
  • Self-contained packaging. The standalone/portable build embeds its WebView2 bootstrap, which heuristic engines find suspicious.

This is a known false-positive pattern affecting many legitimate Tauri and Rust projects. Nothing in the source code matches malware behavior — it's fully open source, so you can verify the code yourself and build from source (npm run tauri build). The files are intentionally unsigned because code-signing certificates cost money; the ML flags typically disappear once a release is signed.

Typecheck

npx tsc --noEmit

📁 Project Structure

.
├── src/                 React + TypeScript frontend
│   ├── pages/           Top-level route components (Library, Store, News, Deals,
│   │                   Activity, Achievements, Downloads, Storage, Community,
│   │                   Friends, Wishlist, Emulators, Mods, Settings)
│   ├── components/      Feature-scoped UI (game/, library/, store/, downloads/,
│   │                   news/, activity/, charts/, bigscreen/, ui/)
│   ├── context/         Cross-cutting providers (Game, Activity, Theme, Language, ...)
│   ├── hooks/           Reusable stateful helpers
│   ├── types/           Mirrors of Rust serde models
│   └── styles/          Themed CSS
└── src-tauri/           Rust backend
    ├── src/             Tauri commands, DB DAOs, integrations
    │   ├── steam|gog|epic|rockstar|uplay|humble/   Per-store sync + auth
    │   ├── downloader/       Direct + debrid downloads & queue management
    │   ├── db/               SQLite pool + schema
    │   └── torrent_engine.rs librqbit wrapper
    └── tauri.conf.json  Frameless window + bundle config

For deeper architectural notes and conventions, see knowledge.md.


🗺️ Roadmap

Track progress, ideas, and priorities in todo.md. Highlights:

  • ✅ Steam, GOG, Epic, Rockstar, Ubisoft, Humble library sync
  • ✅ Steam achievements, HowLongToBeat, Crackwatch, live + historical player counts
  • ✅ Activity dashboard with FPS + frametime charts
  • ✅ Downloads engine rewrite (single-active queue, seeding, direct & debrid torrents)
  • ✅ Storage manager + emulator & mod footprint breakdown
  • ✅ News page with RSS feeds
  • ✅ IGDB-powered storefront (search, filters, rails, price badges, comparisons)
  • ✅ Community & Friends social layer
  • ✅ Big Picture Mode (controller-first 10-foot UI with rail navigation)
  • ✅ Emulators manager & ROM library tools
  • ✅ Mod manager (Steam Workshop & Nexus Mods integration)
  • ✅ Discord Rich Presence (playing + browsing presence, dynamic poster, launcher toggle)
  • ✅ Internationalization (i18n) & language switcher
  • ✅ Privacy & Data management in Settings
  • ✅ Theme gallery + custom accent picker
  • ✅ Steam reviews & multi-source ratings
  • 🚧 Per-game launch options & compatibility profiles
  • ⏳ Linux + Steam Deck support
  • ⏳ Plugin system
  • ⏳ Theme editor & community themes

📌 Status

🛠️ Personal project, vibe-coded — built in my free time as a learning exercise and a love-letter to PC gaming. Expect rough edges, breaking changes, and rapid iteration. Contributions and ideas are welcome.


🤝 Contributing

  1. Read the conventions in knowledge.md (theme tokens, routing, schema migrations, etc.).
  2. Fork the repo and create a feature branch.
  3. Keep PRs focused and documented.
  4. Run npx tsc --noEmit and cargo check before submitting.

Please open an issue before starting large changes so we can discuss direction.


⚖️ Disclaimer

  • If you like a game, support its developers — buy it from official stores (Steam, GOG, Epic, etc.) where the money actually reaches the people who made it.

We believe in the open-source community, the games we love, and the developers who make them. Please use GameIndex responsibly and in accordance with the laws of your country.


📄 License

GameIndex is released under the MIT License — free to use, modify, and distribute, including for contributing back to the project. Attribution appreciated.

See the full text in the LICENSE file.


🙏 Acknowledgments

  • The Tauri, React, and Rust communities for the excellent tooling.
  • IGDB, HowLongToBeat, Steam, GOG, Epic, and IsThereAnyDeal for the data.
  • Hydra Launcher, Playnite, and LaunchBox for the inspiration.
Built with ☕ and a lot of music.

About

Unify your Steam, GOG, Epic, and DRM-free libraries into a single, fast, native experience — with discovery, sync, activity tracking, and a controller-first Big Picture mode (Beta).

Topics

Resources

Stars

12 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages