Skip to content
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
81f8ad2
Initial commit
Glct26 Apr 18, 2026
fb51083
Phase 1.5: Deterministic evaluation layer, smart recommendations, bun…
Glct26 Apr 27, 2026
eefdf1c
Update screenshots, add VR dropdown filter to Free Games, remove 8th …
Glct26 Apr 27, 2026
402707f
Fix cache TTL, lint errors, and Price Drops deduplication
Glct26 Apr 27, 2026
92549a1
Final polish: consistent why strings, isAtTypical fix, safeATL null-s…
Glct26 Apr 27, 2026
6f00183
Rename recommendation tiers: GREAT DEAL, GOOD DEAL, FAIR PRICE, HIGH …
Glct26 Apr 27, 2026
746a4f0
Update screenshots and remove console.log
Glct26 Apr 27, 2026
6646835
Update README
Glct26 Apr 28, 2026
6b46169
Update README with support link and shortcuts
Glct26 Apr 29, 2026
fcca5a5
fix(saved-games): clear cache when removing or clearing saved games
Glct26 Apr 29, 2026
e268d91
fix: multiple improvements and bug fixes
Glct26 Apr 30, 2026
480cc41
fix: update bundle logic, ID normalization, and cache mechanism
Glct26 May 11, 2026
ca0190d
fix: apply SHOW_CHART condition to saved-games and fix country separator
Glct26 May 11, 2026
66cfa4d
Refactor: Major overhaul of heuristic engine, edge case fixes, and UI…
Glct26 May 13, 2026
ba2a395
Docs: Update README.md with new features and heuristics
Glct26 May 13, 2026
4465454
Fix: Resolve hook violations, bundle icon display, and top-deals maxP…
Glct26 May 13, 2026
c52dd69
chore: Remove ESLint configuration, update dependencies, and enhance …
0xdhrv May 15, 2026
b35394f
Docs: Update package.json to reflect insight dependency and add desig…
Glct26 May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions extensions/game-scout/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"root": true,
"extends": [
"@raycast"
],
"rules": {
"@typescript-eslint/no-explicit-any": "off"
}
}
14 changes: 14 additions & 0 deletions extensions/game-scout/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules

# Raycast specific files

raycast-env.d.ts
.raycast-swift-build
.swiftpm
compiled_raycast_swift

# misc
.DS_Store
5 changes: 5 additions & 0 deletions extensions/game-scout/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Game Scout Changelog

## [Initial Release] - {PR_MERGE_DATE}

- Initial release
80 changes: 80 additions & 0 deletions extensions/game-scout/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Game Scout

The ultimate gaming companion for Raycast. Search across multiple storefronts, track historical lows, discover free giveaways, and catch the best daily deals without leaving your launcher.

## Features

* **Smart Recommendation Engine:** Heuristic scoring evaluates current prices against All-Time Lows (ATL), medians, and active bundles to generate actionable verdicts (👍 STRONG OPPORTUNITY, 🟢 GOOD OPPORTUNITY, 🟡 AVERAGE TIMING, 🟠 WEAK OPPORTUNITY, ❌ POOR OPPORTUNITY) along with special overrides (🎁 FREE TO CLAIM, 📦 CHEAPER IN BUNDLE).
* **Price History Charts:** Visual price trend graphs (3-month, 6-month, 1-year ranges) generated directly in the detail view. *(Note: Can be toggled off in preferences to save API limits).*
* **Bundle Content Viewer:** Drill down into active bundles to inspect pricing tiers, expiration dates, and included games.
* **Search Games:** Quickly look up any game, see its current price, all-time low, and active bundles (via **IsThereAnyDeal API**).
* **Saved Games:** Add games to your personal watchlist. Features advanced filtering (Only Deals, Biggest Discount, Best Opportunities) and a dynamic 🔥 Price Drops section.
* **Top Deals:** Discover the highest-rated game deals across 30+ official stores, powered by the CheapShark Deal Rating algorithm (via **CheapShark API** - No API key required).
* **Free Games:** Never miss a 100% free game or DLC giveaway across PC, PlayStation, Xbox, VR, and Mobile platforms (via **GamerPower API** - No API key required).
* **Manage Stores:** Globally filter results across the extension so you only see prices from the storefronts you actually use.

## Setup

The **Top Deals**, **Free Games**, and **Manage Stores** commands work out of the box.

To use the **Search** and **Saved Games** features, a free API key from IsThereAnyDeal is required:

1. Create an account at [IsThereAnyDeal](https://isthereanydeal.com/).
2. Go to the [Apps page](https://isthereanydeal.com/apps/) and click **Register App**.
3. Enter a name for the application and click **Submit**.
4. On your app's dashboard, locate the **API Keys** section on the right side.
5. Copy the generated API key. *(Important: Use the API Key, **not** the OAuth Client ID or Client Secret on the left).*
6. In Raycast, open the extension preferences and fill in:
* **IsThereAnyDeal API Key** — the API key you generated.
* **Country** — select your preferred region for pricing data.
* Configure optional preferences (e.g., max results, showing mature/DLC content, min discount, update frequency, and toggling the Price History Chart).

## Commands

| Command | Description |
| :--- | :--- |
| **Search Games** | Look up current prices, historical lows, and bundles for any game. |
| **Saved Games** | Manage your personal watchlist and track active price drops. |
| **Top Deals** | Browse the best daily discounts across 30+ official stores. |
| **Free Games** | Find 100% free games, DLCs, and giveaways across all platforms. |
| **Manage Stores** | Select which stores to include in your searches and deals. |

## Actions

### Global Actions
* **Enter** — View detailed information (prices, charts, bundles, instructions) in full-screen.

### Search & Saved Games
* **Cmd+S / Ctrl+S** — Save / Remove game from your watchlist.
* **Cmd+B / Ctrl+B** — View bundle contents (if active bundles exist).
* **Cmd+R / Ctrl+R** — Force refresh price and chart data for the current game.

### Game Detail View (Search & Saved Games)
* **Cmd+C / Ctrl+C** — Copy best deal link.
* **Cmd+Shift+C / Ctrl+Shift+C** — Copy game name.

### Saved Games Specific
* **Cmd+Shift+Backspace / Ctrl+Shift+Backspace** — Clear all saved games.

### Top Deals
* **Cmd+M / Ctrl+M** — View Metacritic reviews (if available).
* **Cmd+Shift+C / Ctrl+Shift+C** — Copy deal link.
* **Cmd+Alt+Shift+C / Ctrl+Alt+Shift+C** — Copy Metacritic link (if available).

### Free Games
* **Cmd+I / Ctrl+I** — Ignore / Restore giveaway (hides from the main list).

### Manage Stores
* **Cmd+Shift+A / Ctrl+Shift+A** — Select all stores.
* **Cmd+Shift+D / Ctrl+Shift+D** — Deselect all stores.

## Troubleshooting

* **Getting "No Results" or "Invalid API Key" toast?** Double-check that you copied the **API Key** (from the right column) and not the OAuth Client ID from your IsThereAnyDeal app dashboard.
* **Hitting API Rate Limits?** If you check hundreds of games daily, try turning off the `Show Price History Chart` setting in the extension preferences to save 1 API call per game lookup.

## Support

If this extension helps you find great deals, consider buying me a coffee!

<a href="https://buymeacoffee.com/glct26" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
Binary file added extensions/game-scout/assets/extension-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/game-scout/metadata/7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading