[!WARNING] OpenLogi is under active development and not yet stable — features and config may still change. Give the repo a Star ⭐ and Watch 👀 it to get notified the moment a release lands.
<img src="https://assets.openlogi.org/brand/openlogi-icon.png" width="138" alt="OpenLogi"/>
⚡️ A native, local-first alternative to Logitech Options+, written in Rust 🦀
Remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.
<a href="https://twitter.com/AprilNEA" target="_blank">
<img alt="twitter" src="https://img.shields.io/badge/follow-AprilNEA-green?style=social&logo=Twitter"></a>
<a href="https://t.me/+VDtkR5OSAT04NzVh" target="_blank">
<img alt="telegram" src="https://img.shields.io/badge/chat-telegram-blueviolet?style=flat&logo=Telegram"></a>
<a href="https://github.com/AprilNEA/OpenLogi/releases" target="_blank">
<img alt="GitHub downloads" src="https://img.shields.io/github/downloads/AprilNEA/OpenLogi/total.svg?style=flat"></a>
<a href="https://github.com/AprilNEA/OpenLogi/commits" target="_blank">
<img alt="GitHub commit" src="https://img.shields.io/github/commit-activity/m/AprilNEA/OpenLogi?style=flat"></a>
<img alt="Hits" src="https://hits.aprilnea.com/hits?url=https://github.com/aprilnea/openlogi">
<a href="https://trendshift.io/repositories/42303" target="_blank">
<img src="https://trendshift.io/api/badge/trendshift/repositories/42303/daily?language=Rust" alt="AprilNEA%2FOpenLogi | Trendshift" width="250" height="55"/></a>
Options+ ? Try OpenLogi.
Remap buttons, drive DPI and SmartShift, and switch profiles per app — without a Logitech account, telemetry, or the official Options+ install. No cloud, plain TOML config; the only network calls are device-image fetches and an opt-in, off-by-default update check.
OpenLogi talks to Logitech HID++ mice over a Logi Bolt receiver — or a Bluetooth-direct / wired connection — without running Logi Options+. It ships two binaries:
list) plus asset-sync and on-device diagnostic subcommands.Everything is local: bindings live in a plain TOML file, button presses are remapped through the OS event tap, and DPI / SmartShift changes are written straight to the device over HID++.
macOS and Linux are supported. Windows is an early, untested preview — signed builds ship with each release; see Roadmap.
Things OpenLogi does that Options+ won't:
.deb / .rpm packages.| Capability | State |
|---|---|
| Discover Bolt receivers + list paired devices (CLI + GUI) | ✅ |
| Unifying receivers (older protocol, replaced by Bolt) | ✅ |
| Bluetooth-direct / wired devices (no receiver) | ✅ |
| Battery percentage / charge state | ✅ (online devices) |
| Interactive GUI: carousel, mouse diagram, action picker | ✅ macOS + Linux |
| Button remapping via the OS event tap / evdev hook | ✅ macOS + Linux |
| 41-action catalog + custom keyboard shortcuts (TOML-authored) | ✅ macOS + Linux¹ |
DPI control + presets + Cycle / Set-preset actions (HID++ 0x2201) |
✅ |
SmartShift wheel: mode toggle + sensitivity + permanent-ratchet panel (HID++ 0x2111) |
✅ |
| Per-application profile overlays (auto-switch on app focus) | ✅ macOS, 🟡 Linux (X11 only) |
| Settings window: launch-at-login, update check, menu-bar, permissions, language | ✅ macOS + Linux |
| Interface localization (20 languages: da, de, el, en, es, fi, fr, it, ja, ko, nb, nl, pl, pt-BR, pt-PT, ru, sv, zh-CN, zh-HK, zh-TW) | ✅ |
Linux packaging: udev rules, systemd unit, .deb / .rpm |
✅ Linux |
| Gesture-button per-direction bindings | 🟡 configurable; hardware capture pending |
| Middle / mode-shift / thumbwheel button capture | 🟡 configurable; hook owns side buttons only |
| Windows (agent, GUI, event hook) | 🟡 untested preview — signed .exe / .msi ship per release |
¹ Media key actions use D-Bus MPRIS on Linux; a handful of macOS-specific actions (e.g. Launchpad) have no Linux equivalent and are no-ops.
[!IMPORTANT] Quit Logi Options+ first — the two applications fight over HID++ access and only one can own a given receiver at a time.
Download the signed, notarized .dmg from the latest release and drag OpenLogi.app to /Applications.
Or install via Homebrew:
brew install --cask openlogi
The official Homebrew cask is the default installation path. To explicitly
track the latest GitHub release from aprilnea/tap instead:
brew tap aprilnea/tap
brew install --cask aprilnea/tap/openlogi@latest
openlogi@latest is maintained by OpenLogi's release workflow and may update
before the official cask autobump lands. Install either openlogi or
openlogi@latest, not both.
Download the .deb or .rpm from the latest release:
# Debian / Ubuntu
sudo dpkg -i openlogi_*.deb
# Fedora / RHEL
sudo rpm -i openlogi-*.rpm
Packages are published for both x86_64/amd64 and arm64/aarch64.
The package installs udev rules that grant your user access to
/dev/hidraw* and /dev/uinput without sudo. After installation,
enable the background agent for your user:
systemctl --user enable --now openlogi-agent.service
See docs/INSTALL-linux.md for manual / source installs and distros without systemd.
Signed portable .zip archives and per-user .msi installers (x86_64 and
arm64) are attached to each release. Both ship the GUI (OpenLogi.exe)
together with the background agent (openlogi-agent.exe), which owns all
device I/O — keep the two files side by side when using the portable zip, or
the GUI has nothing to connect to.
Windows support works and has been validated end-to-end on Windows 11 with real hardware — a wired keyboard and a Unifying-receiver mouse, including install, in-place upgrade, and uninstall of the MSI. It is newer than the macOS build, so if you hit a rough edge please report it. The agent shows a system-tray icon (Show Main Window / Quit) so the app stays reachable after the main window is closed; disable it with the same "show in menu bar" setting macOS uses.
To build from source, see DEVELOPMENT.md.
See USAGE.md
See CONFIGURATION.md
See DEVELOPMENT.md
Dual-licensed under either of
at your option.
The OpenLogi logo and app icon — the brand assets under design/ —
are © 2026 AprilNEA, all rights reserved, and are not covered by the MIT/Apache
licenses above; see design/LICENSE. Forking the code grants
no right to the OpenLogi name, logo, or icon; please don't use them to represent
your own projects, forks, or distributions without prior written permission.
Not affiliated with Logitech. "Logitech", "MX Master", and "Options+" are trademarks of Logitech International S.A.
$ claude mcp add OpenLogi \
-- python -m otcore.mcp_server <graph>