openlogi 0.6.10

OpenLogi command-line interface β€” a local-first companion for Logitech HID++ peripherals.
openlogi-0.6.10 is not a library.

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

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 β€” 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 β€” 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.

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 and drag OpenLogi.app to /Applications.

Or install via Homebrew:

brew install --cask openlogi

The official Homebrew cask is the default installation path. To explicitly track the latest GitHub release from aprilnea/tap instead:

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:

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

systemctl --user enable --now openlogi-agent.service

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

To build from source, see DEVELOPMENT.md.

Usage (CLI)

See USAGE.md

Configuration

See CONFIGURATION.md

Developing

See DEVELOPMENT.md

Acknowledgments

License

Dual-licensed under either of

at your option.

Logo & brand assets

The OpenLogi logo and app icon β€” the brand assets under design/ β€” are Β© 2026 AprilNEA, all rights reserved, and are not covered by the MIT/Apache licenses above; see 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.