By the time a League game loads, most of what decides your lane is already known: who you are up against, both junglers, whether you just got counter-picked. Elomentary reads it as it happens and turns it into something short enough to read before the game starts.
While you draft, it suggests picks from your own champions, ranked by how comfortable you are on them and how they fit the draft. At the loading screen it shows one report for your role: how your lane goes, how to play into a counter-pick, what both junglers mean for you, who must not get fed, and a game plan. Then it gets out of the way and shows nothing during the game.
It only reads the League client. It never clicks, picks or changes anything.
How it is built
A Python desktop app for Windows. It finds the League client, subscribes to its events over a local websocket, and follows champion select as it happens. The window is pywebview on Edge's engine.
With an Anthropic key, Claude writes the report in plain sentences from the facts the app gathered. Without one you get the same facts as a list, so it works without the AI and reads better with it. A Riot API key adds enemy players who queue together and one-tricks at the loading screen, and a check of each report against how the game actually went.
Every release runs the test suite on a Windows runner, packages the app with PyInstaller inside an Inno Setup installer, and publishes it to a public releases repo. The installed app checks that repo and updates itself.
