https://github.com/aprilnea/openlogi
โก๏ธA native, local-first alternative to Logitech Options+, written in Rust ๐ฆ โ remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.
https://github.com/aprilnea/openlogi
dpi gpui hid hidpp local-first logitech logitech-mouse logitech-options mouse-remapping mx-master privacy rust smartshift
Last synced: about 15 hours ago
JSON representation
โก๏ธA native, local-first alternative to Logitech Options+, written in Rust ๐ฆ โ remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.
- Host: GitHub
- URL: https://github.com/aprilnea/openlogi
- Owner: AprilNEA
- License: apache-2.0
- Created: 2026-05-24T10:10:36.000Z (21 days ago)
- Default Branch: master
- Last Pushed: 2026-06-10T18:12:52.000Z (4 days ago)
- Last Synced: 2026-06-11T02:33:14.532Z (3 days ago)
- Topics: dpi, gpui, hid, hidpp, local-first, logitech, logitech-mouse, logitech-options, mouse-remapping, mx-master, privacy, rust, smartshift
- Language: Rust
- Homepage: https://openlogi.org
- Size: 4.13 MB
- Stars: 4,607
- Watchers: 24
- Forks: 86
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
- Code of conduct: docs/CODE_OF_CONDUCT.md
- Security: docs/SECURITY.md
Awesome Lists containing this project
README
> [!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 | ็ฎไฝไธญๆ | ๆฅๆฌ่ช | Deutsch | Franรงais | ํ๊ตญ์ด
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 (41 built-in actions plus custom keyboard shortcuts authored in the TOML config), DPI presets, a SmartShift panel (wheel mode, sensitivity, permanent ratchet), per-application profile overlays, a device carousel that switches between paired devices live, and a Settings window with a UI localized into 20 languages.
- **[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 and Linux are supported. Windows is an early, untested preview โ signed
builds ship with each release; see [Roadmap](#roadmap).
## Beyond Options+
Things OpenLogi does that Options+ won't:
- **Run on Linux.** Options+ ships for macOS and Windows only. OpenLogi treats
Linux as a first-class platform: evdev/uinput hook, udev rules, a systemd
user unit, and `.deb` / `.rpm` packages.
- **Move the Gesture Button.** Pick which physical button owns the gesture
role โ thumb pad, middle, back, or forward โ with per-direction swipe
bindings, or turn gestures off entirely. Options+ pins the gesture role to
the dedicated thumb pad.
- **Keep config in plain text.** Everything is one TOML file you can read,
diff, version-control, and copy between machines.
- **Script it.** A real CLI: device inventory, asset prefetch, and on-device
HID++ diagnostics (feature dump, DPI / SmartShift round-trips).
- **Stay light.** Native Rust + GPUI binaries โ no Electron suite, no resident
updaters, no account, no telemetry.
## Roadmap
| 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.
## Install
> [!IMPORTANT]
> Quit **Logi Options+** first โ the two applications fight over HID++ access and only one can own a given receiver at a time.
### macOS
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 openlogi
```
The official Homebrew cask is the default installation path. To explicitly
track the latest GitHub release from `aprilnea/tap` instead:
```sh
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.
### Linux
Download the `.deb` or `.rpm` from the [latest release](https://github.com/AprilNEA/OpenLogi/releases/latest):
```sh
# 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:
```sh
systemctl --user enable --now openlogi-agent.service
```
See [docs/INSTALL-linux.md](docs/INSTALL-linux.md) for manual / source installs
and distros without systemd.
### Windows (preview)
Signed `.exe` and per-user `.msi` installers (x86_64 and arm64) are attached to
each release. Windows support is an early preview that hasn't been broadly
tested on real hardware yet โ expect rough edges, and please
[report issues](https://github.com/AprilNEA/OpenLogi/issues).
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.
### Logo & brand assets
The OpenLogi logo and app icon โ the brand assets under [`design/`](design/) โ
are ยฉ 2026 AprilNEA, all rights reserved, and are not covered by the MIT/Apache
licenses above; see [`design/LICENSE`](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.