OpenLogiNet LoxSmoke
winget install --id=LoxSmoke.OpenLogiNet -e OpenLogiNet Setup
winget install --id=LoxSmoke.OpenLogiNet -e OpenLogiNet Setup
π₯ Download the latest release β installer or portable build.
A native, local-first alternative to Logitech Options+ for Windows. Remap buttons, set up hold-and-swipe mouse gestures, drive DPI and SmartShift, control RGB lighting, and switch profiles over HID++ β without a Logitech account, telemetry, or the Options+ install.
This is a C# / .NET 10 / Avalonia rewrite of AprilNEA/OpenLogi (originally written in Rust), focused on Windows.
openlogi-net talks to Logitech HID++ devices β mice and keyboards β over a Logi Bolt / Unifying / LIGHTSPEED receiver (including the Powerplay mat's embedded receiver), or a Bluetooth-direct / wired connection, without running Logi Options+. Everything is local: there is no account, no cloud sync, and no telemetry.
It ships two binaries:
> [!NOTE] > openlogi-net is under active development and not yet stable. Features and > configuration may still change between releases.
> [!WARNING] > Dongle (receiver) support may be unreliable. The app has not been tested > with most Bolt / Unifying / LIGHTSPEED dongles and the devices behind them. > A device reached through a dongle can show up as asleep moments after you > used it, and settings or lighting may only apply while it is actively in > use. Bluetooth and wired connections are not affected.
The upstream OpenLogi is a Rust + GPUI application that treats macOS and Linux as first-class platforms and ships Windows only as an early, untested preview. openlogi-net flips that priority:
| Original OpenLogi | openlogi-net | |
|---|---|---|
| Language / UI | Rust + GPUI | C# / .NET 10 + Avalonia |
| Primary platform | macOS + Linux | Windows |
| HID++ transport | macOS/Linux HID stacks | Windows raw HID |
| Mouse gestures | One gesture button per device (MX gesture button, or OS-hook capture) | Any capable button, several at once, all over HID++, with gesture-set presets |
| Distribution | .dmg, Homebrew, .deb/.rpm | Windows installer + portable zip |
This is an independent rewrite, not a fork of the Rust code β the core logic (device model, HID++ feature handling, brand/deep-link vocabulary) has been ported to C#. It is not affiliated with Logitech or with the upstream OpenLogi project.
Grab the latest installer or portable build from the Releases page.
> [!IMPORTANT] > Quit Logi Options+ first β the two applications fight over HID++ access, > and only one can own a given receiver at a time. Leaving Logitech software > running can also silently undo device-side settings this app applies (smooth > scrolling in particular, since the wheel mode is volatile and both apps > rewrite it).
OpenLogi.net--setup.exe from the latest
release and run it. It installs to Program Files, adds Start-menu (and
optional desktop) shortcuts, and registers an uninstaller.OpenLogi.net--win-x64-portable.zip,
extract it anywhere, and run OpenLogi.App.exe. No installation required.Both builds are self-contained β the .NET runtime is bundled, so nothing else needs to be installed.
The CLI is a single executable; run it with a subcommand:
OpenLogi.Cli list # enumerate receivers and paired devices
OpenLogi.Cli diag # dump HID++ feature tables per device
OpenLogi.Cli hosts # list paired hosts on multi-host devices
OpenLogi.Cli kbinfo # keyboard brightness and RGB effect inventory
OpenLogi.Cli light # set device lighting to a solid color
Run with no arguments to default to list. Additional diagnostic subcommands
(profile dump/copy, per-key color, effects) are available β see
src/OpenLogi.Cli/Program.cs.
Licensed under the MIT License.
Not affiliated with Logitech. "Logitech", "MX Master", and "Options+" are trademarks of Logitech International S.A.
net10.0-windows)git clone https://github.com/loxsmoke/openlogi-net.git
cd openlogi-net
# build the whole solution
dotnet build OpenLogi.slnx
# run the desktop app
dotnet run --project src/OpenLogi.App
# run the CLI
dotnet run --project src/OpenLogi.Cli -- list
dotnet test OpenLogi.slnx
Releases are produced by the Release
GitHub Action (manually triggered): it fetches the next version, stamps it into
the projects, publishes a self-contained, trimmed build, and packages both an
Inno Setup installer and a portable zip. To reproduce the release build locally:
dotnet publish src/OpenLogi.App/OpenLogi.App.csproj -c Release -r win-x64 \
--self-contained -p:PublishTrimmed=true -p:TrimMode=partial -o publish
The build is self-contained (the .NET runtime is bundled) and trimmed in partial mode β only the .NET base libraries are trimmed, keeping the package around 20 MB while leaving device I/O, config, and UI code untouched.