• v0.8.2 7a12f39f49

    LedGrab v0.8.2
    Build Release / create-release (push) Successful in 3s
    Build Android APK / build-android (push) Failing after 11s
    Build Release / build-docker (push) Successful in 3m14s
    Build Release / build-linux (push) Successful in 4m3s
    Build Release / build-windows (push) Successful in 4m25s
    Build Release / publish-release (push) Successful in 1s
    Stable

    alexei.dolgolyov released this 2026-06-08 20:18:46 +03:00 | 22 commits to master since this release

    v0.8.2 (2026-06-08)

    User-facing changes

    Features

    WLED native realtime UDP output
    • New realtime UDP sink speaking WLED's DRGB / DRGBW / DNRGB protocols, with automatic revert to the device's prior state when streaming stops (7728aec)
    Automatic brightness limiting (ABL) / power budget
    • Per-LED power budgeting that caps total draw by scaling brightness to a configurable current/PSU limit, preventing brownouts on long strips (ffee156)
    Scene playlists
    • Scenes can be grouped into playlists with timed auto-cycling, so a target can rotate through looks on a schedule (f71e10e)
    • Playlist + cycling state is included in the aggregated /snapshot response (abc204c)
    Auto edge-calibration + guided first-run setup wizard
    • Backend core for automatic screen-edge calibration (0409cd8), a one-call setup scaffold with an onboarding flag (9dcd76d), and a browser-driven calibration UI (9550688)
    • A guided first-run setup wizard ties it together for new installs (81b1808), with all-provider source discovery and a spatial corner picker (dd43f38)
    Region-of-interest (ROI) screen capture
    • Screen sampling can now be cropped to a region of interest instead of the whole display (ca59546)
    Built-in "look" presets
    • One-click looks: Cinematic / Vivid / Cozy / Soft / Cool (e18d56c)
    Weekday + timezone scheduling
    • The time-of-day automation rule now supports weekday selection and explicit timezones (1ada5ac)
    Value sources
    • New sandboxed-Jinja template combinator for composing value sources (6de61b9) and optional normalization for magnitude sources (669ae20)
    Visual graph editor
    • The editor is now a full wiring control surface (2e51f46), and you can duplicate a selected subgraph server-side (15cfb82)
    Android on-device capture
    • System audio playback capture (fd62db1), OS notification capture via NotificationListenerService (0be3f83), webcam capture via Camera2 (4bf3fe6), and a foreground-app automation condition (1c1bbe2)

    Bug Fixes

    • Security: removed an active weak default API key from the shipped config — fresh installs no longer ship with a guessable key. Set your own key on first run (5686ae5)
    • Removed a broken legacy /system/mqtt/settings route (fdc9201)
    • Scene brightness value-source changes now sync to the live processor immediately (02e2ea3)
    • Wizard hardening: scaffolded targets are registered with the ProcessorManager and the final review step is more robust (6cd5e05)
    • Installer opens the WebUI only once after "Launch LedGrab" (05cf121)

    Development / Internal

    Backend / Storage

    • clone() is now gated behind an opt-in allowlist, with expanded duplicate-handling tests (498854f)

    Frontend

    • In-progress dashboard customization groundwork (6180569)

    Docs

    • Actualized README + API reference with embedded screenshots (12b40e6), graph-editor wiring-control roadmap (d505388), Android audio-capture design notes (4b2e8fc); removed stale ANDROID-REVIEW planning docs (9960f15)

    Tests

    • Large new suites for calibration solver/session (incl. adversarial), setup & scene-playlist routes, playlist engine, and ROI capture. Full suite: 2149 passing, 2 skipped

    All Commits (31)
    Hash Message Author
    dd43f38 fix(calibration-wizard): all-provider discovery + spatial corner picker alexei.dolgolyov
    6cd5e05 fix(setup): register scaffolded target with ProcessorManager + final-review hardening alexei.dolgolyov
    81b1808 feat(onboarding): guided first-run setup wizard (phase 4, final) alexei.dolgolyov
    abc204c feat(snapshot): include scene playlists + cycling state in snapshot alexei.dolgolyov
    9550688 feat(calibration): browser-driven auto edge-calibration UI (phase 3) alexei.dolgolyov
    9dcd76d feat(setup): one-call setup scaffold + onboarding flag (phase 2) alexei.dolgolyov
    0409cd8 feat(calibration): auto edge-calibration backend core (phase 1) alexei.dolgolyov
    6180569 wip(dashboard): in-progress dashboard customization changes alexei.dolgolyov
    f71e10e feat(scenes): scene playlists with timed auto-cycling alexei.dolgolyov
    ca59546 feat(capture): region-of-interest (ROI) crop for screen sampling alexei.dolgolyov
    1ada5ac feat(automations): weekday + timezone scheduling for time-of-day rule alexei.dolgolyov
    e18d56c feat(processing): built-in 'look' presets (Cinematic/Vivid/Cozy/Soft/Cool) alexei.dolgolyov
    7728aec feat(wled): native realtime UDP output (DRGB/DRGBW/DNRGB) with auto-revert alexei.dolgolyov
    ffee156 feat(targets): automatic brightness limiting (ABL) / per-LED power budget alexei.dolgolyov
    02e2ea3 fix(scenes): sync brightness value-source change to live processor alexei.dolgolyov
    fdc9201 fix(api): remove broken legacy /system/mqtt/settings route alexei.dolgolyov
    5686ae5 fix(security): remove active weak default API key from shipped config alexei.dolgolyov
    9960f15 docs(android): remove ANDROID-REVIEW planning/review docs alexei.dolgolyov
    1c1bbe2 feat(android): foreground-app automation condition alexei.dolgolyov
    4bf3fe6 feat(android): on-device webcam capture via Camera2 (AndroidCameraEngine) alexei.dolgolyov
    0be3f83 feat(android): on-device OS notification capture (NotificationListenerService) alexei.dolgolyov
    4b2e8fc docs(android): add audio-capture design + missing-functionality review alexei.dolgolyov
    fd62db1 feat(audio): Android on-device system playback capture alexei.dolgolyov
    669ae20 feat(value-sources): optional normalization for magnitude sources alexei.dolgolyov
    6de61b9 feat(value-sources): add sandboxed-Jinja template combinator alexei.dolgolyov
    12b40e6 docs: actualize README and API reference, embed screenshots alexei.dolgolyov
    498854f refactor(storage): gate clone() behind an opt-in allowlist; expand duplicate tests alexei.dolgolyov
    15cfb82 feat(graph): duplicate a selected subgraph server-side alexei.dolgolyov
    2e51f46 feat(graph): make the visual editor a full wiring control surface alexei.dolgolyov
    05cf121 fix(installer): open WebUI once after "Launch LedGrab" alexei.dolgolyov

    Downloads

    Platform File Description
    Windows (installer) LedGrab-v0.8.2-setup.exe Install with Start Menu shortcut, optional autostart, uninstaller
    Windows (portable) LedGrab-v0.8.2-win-x64.zip Unzip anywhere, run LedGrab.bat
    Linux LedGrab-v0.8.2-linux-x64.tar.gz Extract, run ./run.sh
    Android LedGrab-v0.8.2-android-release.apk Sideload on Android 7.0+ (API 24+) — TV boxes, Fire TV, phones, tablets. arm64-v8a / x86_64 / x86
    Docker See below docker pull + docker run

    After starting, open http://localhost:8080 in your browser.

    Docker

    docker pull git.dolgolyov-family.by/alexei.dolgolyov/ledgrab:v0.8.2
    docker run -d --name ledgrab -p 8080:8080 -v ledgrab-data:/app/data git.dolgolyov-family.by/alexei.dolgolyov/ledgrab:v0.8.2
    

    First-time setup

    1. Change the default API key in .
    2. Open http://localhost:8080 and add your LED devices.
    3. See for detailed configuration.
    Downloads