Skip to content

About

Windows desktop tool for exploring and monitoring the local League of Legends client (LCU) API — endpoint testing, live WebSocket event streaming, and read-only champ select tracking.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

wakatime .NET C# WPF Windows CommunityToolkit.Mvvm

DKDev.LolClientTool

Windows desktop tool for talking to the local League of Legends LCU API: port/token discovery, GET/POST/PATCH calls, and live event streaming across multiple LCU domains (summoner, champ select, gameflow).

What this is

The League client hosts a local HTTPS + WebSocket server on 127.0.0.1 (LeagueClientUx.exe), used internally by its own Chromium-based UI. This project discovers that server's port/token via WMI and talks to it directly, giving you:

  • A general-purpose REST tester for any LCU endpoint (GET, with quick-pick shortcuts for common ones)
  • A live event log via the LCU's WebSocket push channel (OnJsonApiEvent), showing state changes as they happen
  • A read-only champ select preview: teammates with their picked/hovered champion, and the reroll bench

This is unofficial and read-only by design. The LCU API is not publicly documented or supported by Riot Games, and this project does not send any request that mutates game state (no picks, no bans, no bench swaps).

Solution structure

src/
├── DKDev.LolClientTool.Core/            Contracts and domain models, zero external dependencies
├── DKDev.LolClientTool.Infrastructure/  WMI discovery, HttpClient, WebSocket client, Data Dragon catalog
└── DKDev.LolClientTool.Desktop/         WPF UI (MVVM via CommunityToolkit.Mvvm), DI composition root

Each project has its own README with more detail: Core, Infrastructure, Desktop.

Architecture rules

  • Core knows nothing about WMI, HttpClient, or WPF.
  • Desktop never references Infrastructure types directly outside of DI registration in App.xaml.cs.
  • A new LCU domain means a new interface in Core plus a new implementation in Infrastructure.
  • LCU endpoint paths live as const fields inside the owning Infrastructure service, never as magic strings in a ViewModel.
  • Async everywhere; no blocking .Result/.Wait().
  • LCU client not running is an explicit result (null / LcuApiResult<T>.Fail(...)), not an exception on the normal control-flow path.

Requirements

  • .NET 8 SDK
  • Windows 10/11 (WPF and System.Management/WMI are Windows-only)
  • League client running, for anything beyond building the solution

Running

dotnet build

Run DKDev.LolClientTool.Desktop from your IDE, or dotnet run --project src/DKDev.LolClientTool.Desktop. The League client must be running for Connect to succeed; discovery fails gracefully (no exception) if it isn't.

About

Windows desktop tool for exploring and monitoring the local League of Legends client (LCU) API — endpoint testing, live WebSocket event streaming, and read-only champ select tracking.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages