Based on repository activity, growth velocity and community engagement.
72
Growth30/30
Activity9/25
Popularity24/25
Trust9/20
16,464
Stars
High
Sentiment
Is this actually an AI agent?
16,464
README.md
[!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 when a new release lands.
<h4 align="right"><strong>English</strong> | <a href="docs/README.zh-CN.md">简体中文</a> | <a href="docs/README.ja.md">日本語</a> | <a href="docs/README.de.md">Deutsch</a> | <a href="docs/README.fr.md">Français</a> | <a href="docs/README.ko.md">한국어</a> | <a href="docs/README.ru.md">Русский</a> | <a href="docs/README.es.md">Español</a> | <a href="docs/README.pt-BR.md">Português</a> | <a href="docs/README.tr.md">Türkçe</a></h4>
<p align="center">
<img src="https://assets.openlogi.org/brand/openlogi-icon.png" width="138" alt="OpenLogi"/>
</p>
<h1 align="center">OpenLogi</h1>
<p align="center"><strong>⚡️ A native, local-first alternative to Logitech Options+, written in Rust 🦀<br/>Unlock the full capabilities of Logitech mice, keyboards, and webcams over HID++ and UVC</strong></p>
<div align="center">
<a href="https://twitter.com/AprilNEA" target="_blank">
<img alt="twitter" src="https://img.shields.io/badge/follow-AprilNEA-green?style=social&logo=Twitter"></a>
<a href="https://t.me/+VDtkR5OSAT04NzVh" target="_blank">
<img alt="telegram" src="https://img.shields.io/badge/chat-telegram-blueviolet?style=flat&logo=Telegram"></a>
<a href="https://github.com/AprilNEA/OpenLogi/releases" target="_blank">
<img alt="GitHub downloads" src="https://img.shields.io/github/downloads/AprilNEA/OpenLogi/total.svg?style=flat"></a>
<a href="https://github.com/AprilNEA/OpenLogi/commits" target="_blank">
<img alt="GitHub commit" src="https://img.shields.io/github/commit-activity/m/AprilNEA/OpenLogi?style=flat"></a>
<img alt="Hits" src="https://hits.aprilnea.com/hits?url=https://github.com/aprilnea/openlogi">
</div>
<p align="center">
<a href="https://trendshift.io/repositories/42303" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/42303" alt="AprilNEA%2FOpenLogi | Trendshift" width="250" height="55"/></a>
<a href="https://www.producthunt.com/products/openlogi?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-openlogi" target="_blank" rel="noopener noreferrer">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=openlogi&theme=dark&period=daily">
<source media="(prefers-color-scheme: light)" srcset="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=openlogi&theme=light&period=daily">
<img alt="OpenLogi - A local-first alternative to Logitech Options+ | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=openlogi&theme=light&period=daily">
</picture></a>
</p>
Fed up with Options+? Try OpenLogi.
Runs on macOS, Linux, and Windows.
Beyond Options+
Things OpenLogi does that Options+ won't:
Stay light. Native Rust + GPUI.
Run on Linux. Linux is a first-class platform in OpenLogi.
Gestures on supported buttons. Assign gesture actions to supported controls — or turn gestures off entirely.
Plain-text config. Everything is one TOML file you can sync between machines however you like.
Script it. A real CLI alongside the GUI, with hardware diagnostics for DPI, pointer scaling, and SmartShift.
Features
Devices connected over Logi Bolt receivers, Unifying receivers, Bluetooth, or a wired connection, with battery percentage and charge state
Easy-Switch channels: the name, OS, and connection of the computer paired on each channel, with a rename on devices that allow it (0x1815, supported devices)
Button remapping via the OS input hook: a built-in action catalog plus custom keyboard shortcuts authored in the TOML config, including independent short/long-press actions and hold-until-release chords for push-to-talk¹
Per-application profile overlays that auto-switch on app focus (macOS + Windows; Linux on X11 / XWayland only)
Litra lights: power, brightness, and color temperature, with optional auto power that follows camera activity
Mouse
Capture and remap the middle, mode-shift, and thumbwheel buttons (middle everywhere, the rest where the device exposes them)
Per-direction gesture bindings with live capture on supported buttons: Middle Click, Back/Forward, DPI/ModeShift, the dedicated gesture button, and the haptic panel
DPI/ModeShift gestures require device-reported diversion and raw-XY support.
Primary clicks and wheel rotation/tilt cannot be newly assigned gestures.
Actions Ring: a cursor-centred, eight-slot overlay of actions (ShowActionsRing), with per-application layouts
DPI control with presets and Cycle / Set-preset actions (0x2201)
SmartShift wheel: mode toggle, sensitivity, and a permanent-ratchet panel (0x2111)
Any Logitech UVC webcam (Brio, StreamCam, the C920 series, …), plug and play
Live preview that opens the camera only while you watch — leaving it releases the camera entirely and the LED goes off
Image controls written straight to the UVC hardware — zoom, pan, tilt, focus, exposure, brightness, contrast, saturation, sharpness, gain, backlight compensation, white balance, tint, anti-flicker, and low-light compensation, with auto-mode toggles for focus / exposure / white balance — so changes apply in Meet / Zoom / OBS and every other app using the camera
One-click profiles: built-in Default / Streaming / Video call plus custom snapshots; settings persist per camera and are written back to the hardware on the next view
¹ Media key actions use D-Bus MPRIS on Linux; a handful of macOS-specific actions have no universal Linux equivalent and are no-ops. Windows maps platform actions to native equivalents where available.
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
Requires macOS 13 or later.
Download the signed, notarized .dmg from the latest release and drag OpenLogi.app to /Applications.
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 installer over HTTPS, inspect it, then run it. Do not pipe it into
a shell:
The script detects apt, dnf, yum, zypper, rpm, or pacman; selects the exact
.deb, .rpm, or .pkg.tar.zst for the machine; authenticates its detached
signature with OpenLogi's embedded minisign public key; and verifies its entry
in the release SHA256SUMS before invoking the package manager with sudo.
Install minisign through your distribution first. Run the script as your
normal user, not with sudo. It installs the latest release by default. Use
--version, --package-manager, --no-start, or --dry-run when needed.
Packages are published for both x86_64/amd64 and arm64/aarch64.
Pre-built packages require GLIBC 2.35 or newer (Ubuntu 22.04 baseline).
Each release also carries a Flatpak bundle, for amd64 and arm64:
flatpak install --user ./openlogi-*.flatpak
It is a one-time install: there is no remote behind it, so flatpak update has
nothing to check and a new version means downloading the next bundle.
A Flatpak cannot write to /etc, so its udev rules go on the host separately.
They ship inside the application, so this needs no extra download:
flatpak run --command=cat org.openlogi.OpenLogi /app/share/openlogi/udev/70-openlogi.rules | sudo tee /etc/udev/rules.d/70-openlogi.rules >/dev/null && sudo udevadm control --reload-rules && sudo udevadm trigger
Until that runs, no devices are detected at all. Nothing extra is needed for
/dev/uinput: the rules create its node at boot with static_node=uinput, and
opening it loads the module. The agent is launched by the application itself, so
unlike the packages below there is no user service to enable.
NixOS users can instead import the repository's module, which installs the
package and udev rules and starts the agent with the graphical session:
All Linux packages install udev rules that grant your user access to
/dev/hidraw*, /dev/uinput and your Logitech mouse's /dev/input/event*
node without sudo. The installer and NixOS module start the agent
automatically; after a manual package installation, enable it for your user:
See docs/INSTALL-linux.md for fixed-version installs,
complete NixOS options, source installs, and distros without systemd.
Windows
Signed portable .zip archives and per-user .msi installers (x86_64 and
arm64) are attached to each release. Both ship the GUI (OpenLogi.exe)
together with the background agent (openlogi-agent.exe), which owns all
device I/O. Keep the two files side by side when using the portable zip, or
the GUI has nothing to connect to.
Windows support has been validated end-to-end on Windows 11 with real
hardware (a wired keyboard and a Unifying-receiver mouse), including
install, in-place upgrade, and uninstall of the MSI. It is newer than the
macOS build, so if you hit a rough edge please
report it. The agent shows a
system-tray icon (Show Main Window / Quit) so the app stays reachable after
the main window is closed. To disable it on Windows, set
show_in_menu_bar = false in the TOML [app_settings] block and restart the
agent; the GUI toggle is currently macOS-only.