Rift SensAI

Case study · Desktop tool

Tell me what is happening. Not what to do.

A transparent overlay for League of Legends. It uses Riot's official APIs to show timers, jungler tracking, opponent scouting and optional AI coaching.

Illustrative mock-up of the Rift SensAI overlay: a top bar with jungler status and a coaching line, a Dashboard window and a Match Scout panel.
Illustrative mock-up with invented players and numbers. Not a capture of live gameplay.

What it does

Four things, in a bar you can read at a glance.

Jungler tracker

Last-seen time, an elapsed gank timer and live KDA, with warning and danger states.

● Enemy jungler mid 0:32 ago | 2·1

Objective timers

Dragon, Baron, Void Grubs, Rift Herald and Scuttle Crab, with the rules checked against each patch.

Baron spawns in 3:00
13:32 Dragon soul secured

Match Scout

Press F10 for rank, last-8 form and win rate on the champion each player locked in. Labels are small-sample heuristics.

62%Player A Gold IISTREAK
38%Player C Gold IVWEAK

Champ select picks

Three AI suggestions. Click a card to swap it for a fresh pick; dismissed picks never come back.

Pick 1
swapped
Pick 3

Also: a resizable Dashboard window with an alert feed, a post-game review and a battle log.

Decision 1 of 4

Information, not instructions.

My reading of Riot's developer policy: no real-time overlay that tells players what to do right now. So version 2.0.0 reworded every live alert and the live AI prompt. The overlay states the situation and the player decides.

Pre-game and post-game advice were already fine. Reflective coaching is allowed.

Before
3 enemies down. Take Dragon or Baron now!
After
Enemy jungler missing from the map for 25s. Baron up in 2:14.

Wording examples are illustrative of the change, redrawn as mock-ups.

Decision 2 of 4

Don't let the AI guess what it can look up.

An early build told players to build a nonexistent item path. Two fixes followed.

  1. Real recipesBuild paths for 170+ items come from Riot's Data Dragon feed, cached and refreshed every patch.
  2. A freshness filterTips are dropped if they quote a countdown of 5 seconds or less, or name a champion's life status that live data contradicts.
  3. Spoken, or silently droppedA late or wrong tip never reaches the player.

Decision 3 of 4

Know when you're out of your depth.

The app once gave Summoner's Rift advice, such as Void Grubs and Dragon, in ARAM matches. The cause: game mode was checked once, on the first tick. It is now checked every tick from several signals.

When League Classic arrived with different rules, the app learned to say so and stop, instead of being confidently wrong.

Waiting screen
Unsupported mode (name shown here) — coaching disabled

Decision 4 of 4

Say when it didn't work.

Release record

Shipped in the open.

Dates from the public GitHub releases page.

Under the hood, and the limits

Plain tools, honest edges.

ElectronWindows desktop
JavaScriptHTML and CSS UI
Riot APIsgame client and developer API
Claude / Geminioptional AI coaching
Details and what is not done
  • The game state is polled every 2 seconds. No latency figures are claimed.
  • Hotkeys use a low-level keyboard hook, because the game bypasses standard global shortcuts.
  • The app does not modify game files, inject code or automate gameplay. It is not endorsed by or affiliated with Riot Games.
  • Not shipped yet: an Overwolf-based build, which would let the overlay and hotkeys work without leaving the game.