An open API service indexing awesome lists of open source software.

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: 1 day 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.

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

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 (39 built-in actions plus recorded custom shortcuts), 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 six 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 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 |
| 39-action catalog + recorded custom keyboard shortcuts | โœ… macOSยน |
| DPI control + presets + Cycle / Set-preset actions (HID++ `0x2201`) | โœ… macOS |
| SmartShift wheel: mode toggle + sensitivity + permanent-ratchet panel (HID++ `0x2111`) | โœ… macOS |
| Per-application profile overlays (auto-switch on app focus) | โœ… macOS |
| Settings window: launch-at-login, update check, menu-bar, permissions, language | โœ… macOS |
| Interface localization (6 languages: en, ja, ru, zh-CN, zh-HK, zh-TW) | โœ… macOS |
| 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 supported) |

ยน 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 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.

To build from source, see [DEVELOPMENT.md](docs/DEVELOPMENT.md).

### Linux device permissions (preview)

The CLI/device layer builds and runs on Linux today (`cargo build -p openlogi`;
needs `libudev-dev` + `pkg-config`). By default every `hidraw` node is
`root:root 0600`, so without a udev rule the tools fail with
`PermissionDenied (os error 13)`.

Install the bundled rule, which covers both transports โ€” Bolt receiver (USB) and
Bluetooth-direct (which hangs off `uhid` and exposes no USB `idVendor`, so it is
matched by its HID id `0005:046D:*`):

```sh
sudo cp udev/70-openlogi.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
# then power-cycle the device (or replug the receiver) so the ACL is applied
```

It uses systemd `uaccess` (group-free, works under X11 and Wayland/GNOME). After
applying it, `openlogi list` runs without `sudo`.

## 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.