> [!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.

English | ็ฎ€ไฝ“ไธญๆ–‡

OpenLogi

OpenLogi

โšก๏ธ A native, local-first alternative to Logitech Options+, written in Rust ๐Ÿฆ€
Remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.

twitter telegram GitHub downloads GitHub commit Hits
> **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.