GitHunt
ST

steamforge-app/steamforge

A modern Steam achievement manager for Windows & Linux/Steam Deck. Browse your library, view global rarity, unlock/lock achievements. Native single binary — no .NET required.

SteamForge

License: MIT
GitHub release
GitHub downloads
Platform
Go
Svelte

A modern, cross-platform Steam achievement manager. Browse your library, view global rarity stats, and unlock or lock achievements — all from a clean, Steam-themed desktop app. Native on both Windows and Linux/Steam Deck, with no .NET or Proton required.

Disclaimer: SteamForge modifies achievement data through the Steamworks SDK. Use at your own risk — modifying achievements may violate Steam's terms of service. This project is provided for educational and personal use.

Why SteamForge?

SteamForge SAM
Linux / Steam Deck Native binary Requires .NET / Proton workarounds
UI Modern Steam-themed (Svelte 5) Legacy WinForms
Global rarity stats Built-in No
Library browsing Grid/list with filters & sorting Flat list
Dependencies Single binary, no runtime .NET Framework required
Bulk operations Select & modify multiple achievements One at a time
Keyboard navigation Full keyboard support Mouse only

Download

Platform Link
Windows steamforge.exe
Linux steamforge

Screenshots

Game Library
Browse your Steam library in grid view with achievement progress

Achievement Fullscreen
Fullscreen achievement view

Features

  • Game Library - Browse your Steam games in grid or list view with search, filtering (all, incomplete, perfected, no achievements), and sorting (name, last played, achievement %)
  • Achievement Management - View, unlock, and lock individual achievements or bulk modify selections. Supports auto-save or manual save workflows
  • Global Rarity - Displays global unlock percentages from the Steam Web API with color-coded rarity tiers
  • Achievement Scanning - Scan your entire library to fetch achievement counts and track overall completion
  • Carousel Navigation - Switch between games with carousel-style card transitions (modal view) or arrow navigation (fullscreen view)
  • Profile Detection - Automatically detects whether your Steam profile is public or private and adapts data sources accordingly
  • Local Caching - Caches achievement counts and rarity percentages to minimize API calls
  • Keyboard Navigation - Arrow keys to switch games, / to focus search, Escape to close

Tech Stack

Layer Technology
Backend Go 1.23
Frontend Svelte 5, TypeScript 5.7
Desktop Wails v2
Styling Tailwind CSS 4
Build Vite 6

Prerequisites

Linux

WebKit2GTK is required:

# Ubuntu/Debian
sudo apt install libwebkit2gtk-4.1-dev

Development

wails dev -tags webkit2_41

This starts a Vite dev server with hot reload for the frontend and live reloads the Go backend.

Building

# Linux
wails build -tags webkit2_41 -ldflags="-s -w"

# Windows
GOOS=windows wails build -ldflags="-s -w"

The compiled binary is output to build/bin/.

Project Structure

steamforge/
├── app.go                    # Main Go API surface
├── main.go                   # Wails entry point
├── internal/
│   ├── models/               # Achievement & Game data models
│   ├── services/             # GameService, AchievementService, WebAPI
│   ├── steam/                # Steamworks SDK wrapper, local stats parsing
│   ├── settings/             # Persistent settings & achievement cache
│   └── cache/                # Image caching
├── frontend/
│   ├── src/lib/
│   │   ├── pages/            # GamePicker, GameManager
│   │   ├── components/       # GameCard, AchievementRow, AchievementToolbar, etc.
│   │   ├── stores/           # Svelte stores (games, achievements, settings, app)
│   │   └── utils/            # Steam image URLs, rarity tiers, date formatting
│   └── wailsjs/              # Auto-generated Go bindings
├── wails.json                # Wails configuration
└── Makefile                  # Build scripts

How It Works

SteamForge connects to Steam through the Steamworks SDK to read and modify achievement state. When your Steam profile is public, it can also fetch achievement data from the Steam Community without requiring a game connection. Global unlock percentages are fetched from the Steam Web API with rate limiting and retry logic.

Achievement changes are written back through the Steamworks SDK, which requires the target game to be connected via Steam. The app handles connection management automatically when needed.

Support

If you find SteamForge useful, consider buying me a coffee.

License

This project is licensed under the MIT License.

Languages

Go45.5%Svelte40.4%TypeScript5.3%NSIS4.1%JavaScript2.7%CSS1.4%Makefile0.5%HTML0.1%

Contributors

MIT License
Created February 19, 2026
Updated March 12, 2026
steamforge-app/steamforge | GitHunt