Akimbo compares your Steam and Epic libraries and wishlists: it finds games you own on both stores, Steam wishlist items you already own on Epic, and Epic wishlist items you already own on Steam. Fuzzy matching handles different titles across stores.
- The project was vibecoded
- The project is not affiliated with Epic Games or Steam
- Python 3.12+
- Steam: Steam Web API key and your Steam ID (or vanity URL). Your profile and game details must be public for wishlist/library access.
- Epic: Legendary (
pip install legendary-gl). Runlegendary authonce so Akimbo can read your Epic library and wishlist.
git clone https://github.com/MemerGamer/Akimbo.git
cd Akimbo
pip install -r requirements.txt
Copy the example config and edit it:
cp example.config.toml config.toml
| Section | Key | Description |
|---|---|---|
[steam] |
api_key |
Your Steam Web API key. |
[steam] |
steam_id |
Your 64-bit Steam ID or vanity URL (e.g. example or 76342736118770791). |
[matching] |
threshold |
Fuzzy match strictness 0–100 (default 85). Higher = stricter. |
[output] |
json_out |
Optional path to write results as JSON (leave empty or comment out to skip). |
[ui] |
mode |
"cli" or "gui" (GUI needs PyQt6). |
[ui] |
debug |
true = extra progress and debug logs to console (including in GUI). |
[cache] |
steam_applist_ttl_hours |
How long to cache the Steam app name list (default 24). |
CLI (default):
python main.py
You’ll see progress lines, then a summary: library sizes, duplicate owned games, Steam wishlist → owned on Epic, and Epic wishlist → owned on Steam.
GUI (requires PyQt6):
Set mode = "gui" in config.toml, then:
python main.py
Use Scan to refresh; results appear in tabs. Console stays quiet unless debug = true.
JSON output:
If [output] → json_out is set, the same comparison is written to that file (CLI and GUI).



