OpenLogi is a native, local-first Logitech Options+ replacement written in Rust.
GitHub RepoImpressions2.2k
View on GitHub
@githubprojectsPost Author

OpenLogi: A Native, Local-First Logitech Options+ Replacement Built in Rust

If you've ever used a Logitech mouse or keyboard on Linux, you know the pain. The official Logitech Options+ app works okay on Windows and macOS, but on Linux? It's a ghost town. And even on other platforms, it's a bloated Electron app that phones home to Logitech servers for... reasons.

Enter OpenLogi — a native, local-first replacement for Logitech Options+ written entirely in Rust. No Electron, no cloud dependencies, no nonsense. Just a lean, fast tool that talks directly to your hardware.


What It Does

OpenLogi lets you configure Logitech devices (like the MX Master series, G-series mice, and keyboards) without the official software. It supports:

  • Button remapping
  • DPI adjustments
  • Scrolling behavior changes (smooth vs. ratcheting)
  • Per-application profiles
  • System-level shortcuts and gestures

All of this runs locally, no internet required. It reads and writes device settings via the USB HID protocol, so it works with most modern Logitech peripherals.


Why It’s Cool

Local-first. No accounts. No telemetry. No "please update" popups. OpenLogi stores all configuration in a local YAML or TOML file. You can version control your mouse setup if you're that kind of developer.

Rust. Not just a buzzword. The project uses rusb for USB communication and avoids unsafe code where possible. The result is a binary that starts instantly and uses a fraction of the RAM of Electron-based tools.

Cross-platform flexibility. While the focus is Linux, the codebase is designed to work on macOS and Windows too. It uses platform-agnostic HID libraries, so adding support is just a compile away.

Open source. The entire codebase is on GitHub. You can audit it, fork it, or contribute features. No more reverse-engineering Logitech's proprietary protocols alone — the community figures it out together.


How to Try It

  1. Clone the repo:
git clone https://github.com/AprilNEA/OpenLogi.git
cd OpenLogi
  1. Build and run:
cargo build --release
./target/release/openlogi

Check the config.example.yml file in the repo for a starting configuration. You'll need to figure out your device's vendor and product IDs (usually 046d for Logitech) — but that's a one-time lookup.

Alternatively, if you just want to see what it looks like, the README has screenshots and command examples.


Final Thoughts

OpenLogi is the kind of project that makes you wonder why Logitech doesn't provide this themselves. It's small, focused, and does one thing well. If you're running Linux and tired of managing your MX Master through an Android app or some hacky solaar script, give this a shot.

Even if you're on macOS or Windows and just want to avoid Electron overhead, it's worth a look. The config file approach is refreshing — no hidden registry keys, no mysterious "cloud sync" conflicts.

Just you, your mouse, and some Rust.


Found this tool interesting? Follow @githubprojects for more open source discoveries.

Back to Projects
Last updated: May 31, 2026 at 04:19 AM