lol-tui

A terminal UI showing real-time League of Legends game intelligence — CS/min tracking, a kill and objective event feed, and per-player rank, role and pre-made party detection.

Downloads

PlatformDownloadNotes
macOS, Apple Silicon lol_tui-macos-aarch64.tar.gz Needs Homebrew Tesseract — see below
Windows 10/11, 64-bit lol_tui-windows-x86_64.zip Self-contained

Intel Macs and Linux are not supported. No binaries are published for them; --update on those platforms says so plainly rather than failing oddly. Building from source is the only option there.

Each archive holds a single executable at its root — lol_tui on macOS, lol_tui.exe on Windows. Those links always point at the newest release; to pin a version, replace latest in the URL with the tag, e.g. /releases/download/v1.3.2/….

macOS

1. Install the Tesseract runtime

The macOS binary links dynamically against Homebrew's Tesseract and Leptonica, which power the CS scoreboard OCR. Without them the app will not launch at all.

brew install tesseract

That one command is enough — Homebrew pulls in Leptonica and the rest of the chain. If you don't have Homebrew, install it from brew.sh first.

2. Download and extract

Downloading with curl is the smoothest path: Gatekeeper's quarantine flag is applied by the downloading application, and browsers set it while curl does not. Do this and you skip the "unverified developer" dance entirely.

cd ~/Downloads
curl -L -o lol_tui.tar.gz \
  https://dist.lab.jykntr.net/releases/download/latest/lol_tui-macos-aarch64.tar.gz
tar -xzf lol_tui.tar.gz

If you download through a browser, still extract from Terminal with tar -xzf. Finder's Archive Utility copies the quarantine flag onto the extracted binary; tar does not.

3. Install it on your PATH

mkdir -p ~/.local/bin
mv lol_tui ~/.local/bin/
chmod +x ~/.local/bin/lol_tui

Add it to your PATH if it isn't already — in ~/.zshrc:

export PATH="$HOME/.local/bin:$PATH"

Prefer a directory you own over /usr/local/bin. The self-updater replaces the binary in place, so a user-owned location means --update never needs sudo.

4. If macOS blocks it anyway

If you downloaded through a browser or extracted with Finder, the first run fails with "lol_tui cannot be opened because the developer cannot be verified". That's expected — the binary is unsigned and unnotarized, not broken. Check for the flag:

xattr -l ~/.local/bin/lol_tui

If you see com.apple.quarantine, remove it:

xattr -d com.apple.quarantine ~/.local/bin/lol_tui

Alternatively run it once, let it be blocked, then open System Settings → Privacy & Security and click Open Anyway. Once cleared, the approval sticks — and it survives a self-update, because --update fetches over the network directly rather than through a browser, so nothing re-applies the flag.

Right-click → Open, the classic workaround, applies to .app bundles and no longer bypasses Gatekeeper on recent macOS. Use xattr or the Privacy & Security panel.

Windows

1. Download and extract

Grab lol_tui-windows-x86_64.zip and extract it — for example to C:\Users\<you>\bin. It holds a single lol_tui.exe and needs no extra runtime libraries; the OCR dependencies are compiled in.

2. Clear the Mark of the Web

Windows tags downloaded files, and SmartScreen blocks unrecognized ones. Since this binary isn't code-signed with a certificate Microsoft recognizes, you'll likely see "Windows protected your PC". Click More info, then Run anyway.

To clear it ahead of time, right-click the zip before extracting → Properties → tick Unblock. Unblocking the zip first means the extracted .exe comes out clean. In PowerShell:

Unblock-File -Path C:\Users\<you>\bin\lol_tui.exe

3. Run it

lol_tui.exe

Use Windows Terminal or PowerShell for correct colors and Unicode. The legacy cmd.exe console renders the UI poorly.

Self-update

lol_tui --update

This checks for a newer release, downloads the asset for your platform, shows a progress bar, and replaces the running executable in place. Restart the app afterwards. If you're already current it says so and downloads nothing. Run it from a normal shell, not while the TUI is open — it prints to stdout and asks for confirmation before replacing the binary.

On launch, lol-tui quietly checks whether a newer release exists and, if so, shows a line in the status bar. The check is network-only and never downloads anything on its own. If it fails — no network, host unreachable — it is silently ignored and the app starts normally.

lol_tui --no-update-check      # skip the check for one run

To turn it off permanently, in your config file:

update_check = false
PlatformConfig file
macOS~/Library/Application Support/lol-tui/config.toml
Windows%APPDATA%\lol-tui\config.toml
Linux~/.config/lol-tui/config.toml

Updating from v1.3.1 or earlier. Those builds fetch updates from the old github.com/jykntr/lol-tui-dist repo. Running --update on one still works and lands you on v1.3.2, which is the first version that updates from here. After that you're on the normal path. Versions before v1.3.0 have no --update flag at all — download from the table above, overwriting the old binary.

Troubleshooting

macOS: dyld: Library not loaded: …libtesseract.5.dylib
Tesseract isn't installed, or Homebrew moved to a newer major version of the library. Run brew install tesseract; if it's already there, brew upgrade tesseract and then update lol-tui so both sides line up.

macOS: zsh: permission denied
The executable bit was lost in extraction. Run chmod +x lol_tui.

Windows: VCRUNTIME140.dll was not found
Install the Microsoft Visual C++ Redistributable.

--update fails with "permission denied"
The binary sits somewhere your user can't write, typically /usr/local/bin or C:\Program Files. Move it somewhere you own and re-run, or re-run elevated.

--update says the release has no asset for this platform
A release was just tagged and its binaries are still building. Wait a few minutes and try again.

--update can't reach the update server
Downloads are self-hosted rather than served by GitHub, so a home-network or power outage takes them offline. Nothing is wrong with your install — the app runs fine without it. Try again later, or download from the table above.

The app sits on "Waiting for game…"
That's the idle state. lol-tui watches the League Live Client API on 127.0.0.1:2999, which only exists while a game is actually in progress — champion select and the client lobby don't count. It picks the game up automatically once loading starts.