> [!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.
OpenLogi
โก๏ธ A native, local-first alternative to Logitech Options+, written in Rust ๐ฆ
Remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.
> **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.
---
## What it is
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:
- **[OpenLogi GUI](crates/openlogi-gui)** โ a GPUI desktop app: an interactive mouse diagram with clickable hotspots, a per-button action picker (37 built-in actions plus recorded custom shortcuts), DPI presets, a SmartShift toggle, per-application profile overlays, and a device carousel that switches between paired devices live.
- **[OpenLogi CLI](crates/openlogi-cli)** โ a CLI for headless inventory (`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 is supported today; Linux and Windows are coming soon โ see
[Roadmap](#roadmap).
## Roadmap
| Capability | State |
|---|---|
| Discover Bolt receivers + list paired devices (CLI + GUI) | โ
|
| Bluetooth-direct / wired devices (no receiver) | โ
|
| Battery percentage / charge state | โ
(online devices) |
| Interactive GUI: carousel, mouse diagram, action picker | โ
macOS |
| Button remapping via the OS event tap (side Back / Forward today) | โ
macOS |
| 37-action catalog + recorded custom keyboard shortcuts | โ
macOSยน |
| DPI control + presets + Cycle / Set-preset actions (HID++ `0x2201`) | โ
macOS |
| SmartShift wheel-mode toggle (HID++ `0x2111`) | โ
macOS |
| Per-application profile overlays (auto-switch on app focus) | โ
macOS |
| Launch-at-login + opt-in update check | โ
(TOML only โ no settings UI yet) |
| Gesture-button per-direction bindings | ๐ก configurable; hardware capture pending |
| Middle / mode-shift / thumbwheel button capture | ๐ก configurable; hook owns side buttons only |
| Linux / Windows event hook | โ stub (`Unsupported`) |
| Unifying receivers | โ (not yet in `hidpp 0.2`) |
ยน A few actions (e.g. the media keys) currently log their intended event rather than posting it โ tracked as a follow-up.
## Install
> [!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](https://github.com/AprilNEA/OpenLogi/releases/latest) and drag `OpenLogi.app` to `/Applications`.
Or install via [Homebrew](https://brew.sh):
```sh
brew install --cask aprilnea/tap/openlogi
```
To build from source, see [DEVELOPMENT.md](docs/DEVELOPMENT.md).
## Usage (CLI)
See [USAGE.md](docs/USAGE.md)
## Configuration
See [CONFIGURATION.md](docs/CONFIGURATION.md)
## Developing
See [DEVELOPMENT.md](docs/DEVELOPMENT.md)
## Acknowledgments
- [`hidpp`](https://crates.io/crates/hidpp) by [@lus](https://github.com/lus)
- [Solaar](https://github.com/pwr-Solaar/Solaar)
- [Mouser](https://github.com/TomBadash/Mouser) by Tom Badash
## License
Dual-licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
- MIT license ([LICENSE-MIT](LICENSE-MIT))
at your option.
---
**Not affiliated with Logitech.** "Logitech", "MX Master", and "Options+" are trademarks of Logitech International S.A.