A Tauri desktop application for managing and launching your personal game collection from a single place.
- Steam Integration — auto-detects your local Steam installation and lists all installed games
- Custom Games — add any non-Steam executable with a title, cover image, and tags
- Visual Library — grid/card layout with cover art, platform badges, search, and filters
- One-click Launch — launch Steam games via
steam://run/<appid>or run any custom binary - Controller Support — full gamepad navigation using the browser Gamepad API
| Layer | Technology |
|---|---|
| Frontend | Vue 3 + TypeScript + Vite |
| Styling | Tailwind CSS |
| Desktop shell | Tauri 2 |
| Backend | Rust |
game-library/
├── src/ # Vue frontend
│ ├── components/
│ │ ├── GameCard.vue # Individual game card (cover, title, badge)
│ │ ├── GameGrid.vue # Responsive grid of GameCards
│ │ └── Sidebar.vue # Search, filter, sort controls
│ └── App.vue # Root component
├── src-tauri/ # Rust/Tauri backend
│ └── src/
│ ├── main.rs # Entry point
│ ├── lib.rs # Tauri command registration
│ ├── steam.rs # Steam VDF parsing & game discovery
│ ├── library.rs # Custom game CRUD (JSON persistence)
│ └── launcher.rs # Game process spawning
└── CLAUDE.md # Project plan
- Rust (stable)
- Node.js 18+
- Tauri CLI prerequisites for your OS
- Steam installed (optional — required for Steam game discovery)
# Install frontend dependencies
yarn install
# Run in development mode (hot-reload frontend + Rust backend)
yarn tauri dev
# Build a production release
yarn tauri build| Command | Description |
|---|---|
get_steam_games |
Returns all installed Steam games detected on the system |
get_custom_games |
Returns all manually added custom games |
add_game |
Adds a new custom game entry |
remove_game |
Removes a custom game by ID |
launch_game |
Launches a game (Steam URI or direct executable) |
# Rust unit tests
cd src-tauri && cargo testCustom game entries are stored in the Tauri app data directory as custom_games.json.