AprilNEA/OpenLogiPublic

⚡️A native, local-first alternative to Logitech Options+, written in Rust 🦀 — remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.

AI summary: Open-source, cross-platform configuration utility for Logitech peripherals.

Stars
8.2K
+39 today
Forks
215
Watchers
34
Open issues
107
Open PRs
43
Contributors
~26
Commits
629
Branches
5

RustApache-2.0Created May 24, 2026Last push 4d agoLatest release v0.6.22+369 stars this week+473 this month

Star history

since May 24, 2026
02.5K5K7.5KMay 2026Jun 2026Jul 2026Aug 2026
8.2K stars as of Aug 6, 2026, tracked back to May 24, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 6 commits2026-05-25: 18 commits2026-05-26: 21 commits2026-05-27: 0 commits2026-05-28: 14 commits2026-05-29: 12 commits2026-05-30: 45 commits2026-05-31: 31 commits2026-06-01: 19 commits2026-06-02: 18 commits2026-06-03: 19 commits2026-06-04: 20 commits2026-06-05: 45 commits2026-06-06: 19 commits2026-06-07: 16 commits2026-06-08: 28 commits2026-06-09: 21 commits2026-06-10: 13 commits2026-06-11: 34 commits2026-06-12: 19 commits2026-06-13: 17 commits2026-06-14: 3 commits2026-06-15: 8 commits2026-06-16: 1 commit2026-06-17: 1 commit2026-06-18: 1 commit2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 19 commits2026-06-22: 17 commits2026-06-23: 0 commits2026-06-24: 2 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 29 commits2026-06-28: 0 commits2026-06-29: 4 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 9 commits2026-07-04: 0 commits2026-07-05: 6 commits2026-07-06: 1 commit2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 19 commits2026-07-14: 2 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 1 commit2026-07-18: 41 commits2026-07-19: 8 commits2026-07-20: 1 commit2026-07-21: 15 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
623 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Breakout launch

    8,234 stars in 75 days

  • Very active

    623 commits in 52 weeks

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

What OpenLogi does

OpenLogi is a lightweight, telemetry-free alternative to Logitech Options+ written in Rust. It configures mice and keyboards on macOS, Linux, and Windows via direct HID++ communication, keeping all settings in a single plain-text TOML file. It implements a background agent that hooks into the OS input layer to remap buttons and intercept gestures, alongside a GPUI-based graphical interface for interactive configuration and device management.

Developers and power users who want lightweight, scriptable, cross-platform control over their Logitech mice and keyboards without bloatware.

  • Native Linux support: Fully supports Linux via evdev/uinput hooks and udev rules, unlike official Logitech software.
  • Plain-text configuration: Stores all settings in a diffable, version-controllable TOML file for easy sync between machines.
  • Direct HID++ control: Manipulates DPI, SmartShift wheels, and RGB lighting directly on the hardware.
  • Advanced gesture remapping: Allows assigning the gesture modifier to any physical button, not just the dedicated thumb button.
  • Lightweight architecture: Uses a Rust background daemon and a native GPUI frontend, avoiding heavy Electron processes.
  • CLI diagnostics: Includes a command-line tool for device inventory and low-level HID++ capability dumps.

Where teams use it

Cross-platform peripheral sync

Developers share a single OpenLogi TOML file to keep their mouse bindings identical across their Windows gaming PC and Linux laptop.

Linux peripheral management

Linux users configure their MX Master's SmartShift wheel and DPI settings natively without relying on unmaintained scripts.

Custom gesture mapping

Power users remap the middle mouse button to trigger multi-directional workspace gestures instead of relying on the default thumb button.

Headless device diagnostics

Sysadmins use the OpenLogi CLI to dump the battery status and HID++ feature set of paired devices over SSH.

Getting started: brew install --cask openlogi

README

master branch

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.

OpenLogi

OpenLogi

⚡️ A native, local-first alternative to Logitech Options+, written in Rust 🦀
Remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.

AprilNEA%2FOpenLogi | Trendshift

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. By default, device-image fetches are the only automatic network calls; update checks and downloads run only when you request or opt into them.


What it is

OpenLogi talks to Logitech HID++ peripherals over Logi Bolt and Unifying receivers, Bluetooth-direct connections, or USB cables — without running Logi Options+. It consists of three components:

  • OpenLogi GUI — a GPUI desktop app: an interactive mouse diagram with clickable hotspots, a per-button action picker (built-in actions plus custom keyboard shortcuts authored in the TOML config), DPI presets, SmartShift, per-device scroll inversion, RGB keyboard lighting, per-application profiles, a live device carousel, and a Settings window localized into 20 languages.
  • OpenLogi agent — the background service that owns the input hook and all device I/O. The GUI is a pure IPC client and starts the agent when needed.
  • OpenLogi CLI — a CLI for headless inventory (list) plus asset-sync and on-device diagnostic subcommands.

Everything stays local: bindings live in a plain TOML file, the agent remaps button presses through the OS input hook, and writes DPI, SmartShift, scroll, and lighting changes straight to the device over HID++.

macOS, Linux, and Windows are supported. Windows is the newest port: it has been validated end-to-end on Windows 11 hardware, but may still have more rough edges than the macOS and Linux builds; 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 / .pkg.tar.zst packages.
  • Move the Gesture Button. Pick which physical button owns the gesture role — the dedicated Gesture Button, middle, back, or forward — with per-direction swipe bindings, or turn gestures off entirely. Options+ pins the gesture role to the dedicated Gesture Button.
  • 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/control dumps, DPI / SmartShift round-trips, and keyboard lighting checks).
  • 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 + Windows
Button remapping via the OS input hook ✅ macOS + Linux + Windows
Built-in action catalog + custom keyboard shortcuts (TOML-authored) ✅ macOS + Linux + Windows¹
DPI control + presets + Cycle / Set-preset actions (HID++ 0x2201)
SmartShift wheel: mode toggle + sensitivity + permanent-ratchet panel (HID++ 0x2111)
Per-device native scroll inversion (HID++ 0x2121) ✅ (supported devices)
Static RGB keyboard lighting (HID++ 0x8070 / 0x8080) ✅ (supported devices)
Per-application profile overlays (auto-switch on app focus) ✅ macOS + Windows, 🟡 Linux (X11 / XWayland only)
Settings window: launch-at-login, updates, permissions, language, appearance ✅ macOS + Linux + Windows
Agent status icon ✅ macOS menu bar + Windows tray; not applicable on 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 / .pkg.tar.zst ✅ Linux
Gesture-button per-direction bindings + live capture ✅ (device capability dependent)
Middle / mode-shift / thumbwheel button capture ✅ middle on all platforms; mode-shift / thumbwheel device dependent
Windows (agent, GUI, event hook, installer) ✅ Windows 11 hardware validated; newer port with ongoing compatibility polish

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

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 package for your distribution from the latest release:

# Debian / Ubuntu
sudo dpkg -i openlogi_*.deb

# Fedora / RHEL
sudo rpm -i openlogi-*.rpm

# Arch Linux
sudo pacman -U openlogi-*.pkg.tar.zst

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

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 works and 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.

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.

Repo activity

Repobeats analytics image

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 18

Releases and announcements

38 total
  1. v0.6.22v0.6.22Jul 21, 20266.8K downloads

    ## What's Changed * fix(gui): keep the post-sync asset repaint until the inventory is Ready by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/427 * feat(hidpp): add level-gated wire tracing for HID++ requests by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/439 * refactor(gui): introduce a design-token layer and unify chrome by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/440 * fix(hid): probe Bolt slots concurrently so slow devices finish enumerating by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/438 * refactor(gui): introduce a HIG-based typography scale by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/441 * chore: release v0.6.22 by @aprilnea[bot] in https://github.com/AprilNEA/OpenLogi/pull/425 **Full Changelog**: https://github.com/AprilNEA/OpenLogi/compare/v0.6.21...v0.6.22

  2. v0.6.21v0.6.21Jul 19, 20261.9K downloads

    ## What's Changed * feat(packaging): add Arch Linux release packages by @cserby in https://github.com/AprilNEA/OpenLogi/pull/265 * fix: hotplug-driven inventory and phantom device-card suppression by @davidbudnick in https://github.com/AprilNEA/OpenLogi/pull/346 * I18n(gui): Update pl localize by @mariuszkrzaczkowski in https://github.com/AprilNEA/OpenLogi/pull/372 * fix(hid): bound the Bolt per-slot probe so one hung device can't drop the whole receiver (#218) by @buliwyf42 in https://github.com/AprilNEA/OpenLogi/pull/251 * fix(hid): persist wheel resolution across reconnects by @yuki-yano in https://github.com/AprilNEA/OpenLogi/pull/416 * fix: make one-shot enumerate() retry transport-agnostic so Unifying partial drains recover by @mvanhorn in https://github.com/AprilNEA/OpenLogi/pull/287 * test(core): add hires_wheel to the inventory equality test helper by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/417 * fix(unifying): enable wireless notifications so paired devices enumerate by @laofun in https://github.com/AprilNEA/OpenLogi/pull/309 * fix(gui): draw a client-side titlebar on Linux for window controls by @stefan-siebert in https://github.com/AprilNEA/OpenLogi/pull/

  3. v0.6.20v0.6.20Jul 18, 2026691 downloads

    ## What's Changed * fix(smartshift): stop runaway free-spin scroll and SmartShift control snap-back by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/333 * docs: add agent guides (AGENTS.md, CLAUDE.md, path-scoped rules) by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/379 * fix(gui): avoid RefCell panic when applying theme on OS appearance change by @stefan-siebert in https://github.com/AprilNEA/OpenLogi/pull/337 * docs: fold completed FIXDRY audit into a decision log by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/352 * ci: add cargo-deny (advisories, licenses, bans, sources) by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/353 * fix(gui): bump gpui/gpui-component pins past the Wayland startup activation rework by @kesleyfort in https://github.com/AprilNEA/OpenLogi/pull/400 * fix: embed and sign the openlogi CLI in the macOS app bundle by @mvanhorn in https://github.com/AprilNEA/OpenLogi/pull/362 * chore: raise MSRV to 1.96, drop fs4, consolidate workspace deps by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/407 * test: characterize the hidpp v20 matcher and cover the CLI by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/406 *

  4. v0.6.19v0.6.19Jul 5, 20268.9K downloads

    ## What's Changed * feat(windows): bundle the background agent and add a tray icon (#347) by @davidbudnick in https://github.com/AprilNEA/OpenLogi/pull/350 * chore: release v0.6.19 by @aprilnea[bot] in https://github.com/AprilNEA/OpenLogi/pull/332 **Full Changelog**: https://github.com/AprilNEA/OpenLogi/compare/v0.6.18...v0.6.19

  5. v0.6.18v0.6.18Jun 29, 20261.8K downloads

    ## What's Changed * fix: set app_id on GUI windows so GNOME Wayland matches the .desktop icon and decorations by @mvanhorn in https://github.com/AprilNEA/OpenLogi/pull/320 * Clarify MX Master 4 gesture control semantics by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/325 * Complete typed HID++ feature wrappers by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/326 * fix(hidpp): correct UnifiedBattery (0x1004) charging status codes by @PeronGH in https://github.com/AprilNEA/OpenLogi/pull/330 * feat(gui): consolidate Settings and add theme switching by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/331 * chore: release v0.6.18 by @aprilnea[bot] in https://github.com/AprilNEA/OpenLogi/pull/324 ## New Contributors * @PeronGH made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/330 **Full Changelog**: https://github.com/AprilNEA/OpenLogi/compare/v0.6.17...v0.6.18

Commits per week

last 52 weeks
1710Week of 2025-08-03: 0 commitsWeek of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 116 commitsWeek of 2026-05-31: 171 commitsWeek of 2026-06-07: 148 commitsWeek of 2026-06-14: 14 commitsWeek of 2026-06-21: 67 commitsWeek of 2026-06-28: 13 commitsWeek of 2026-07-05: 7 commitsWeek of 2026-07-12: 63 commitsWeek of 2026-07-19: 24 commitsWeek of 2026-07-26: 0 commitsAug 3, 2025Jul 26, 2026
623 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 6 commitsSun 2:00 — 2 commitsSun 3:00 — 1 commitsSun 4:00 — 0 commitsSun 5:00 — 2 commitsSun 6:00 — 4 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 1 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 1 commitsSun 14:00 — 3 commitsSun 15:00 — 16 commitsSun 16:00 — 13 commitsSun 17:00 — 8 commitsSun 18:00 — 13 commitsSun 19:00 — 4 commitsSun 20:00 — 5 commitsSun 21:00 — 4 commitsSun 22:00 — 5 commitsSun 23:00 — 2 commitsMon 0:00 — 12 commitsMon 1:00 — 2 commitsMon 2:00 — 0 commitsMon 3:00 — 1 commitsMon 4:00 — 1 commitsMon 5:00 — 2 commitsMon 6:00 — 1 commitsMon 7:00 — 3 commitsMon 8:00 — 0 commitsMon 9:00 — 6 commitsMon 10:00 — 9 commitsMon 11:00 — 9 commitsMon 12:00 — 3 commitsMon 13:00 — 1 commitsMon 14:00 — 9 commitsMon 15:00 — 6 commitsMon 16:00 — 14 commitsMon 17:00 — 4 commitsMon 18:00 — 4 commitsMon 19:00 — 4 commitsMon 20:00 — 6 commitsMon 21:00 — 8 commitsMon 22:00 — 9 commitsMon 23:00 — 2 commitsTue 0:00 — 4 commitsTue 1:00 — 3 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 1 commitsTue 10:00 — 3 commitsTue 11:00 — 1 commitsTue 12:00 — 1 commitsTue 13:00 — 1 commitsTue 14:00 — 4 commitsTue 15:00 — 10 commitsTue 16:00 — 5 commitsTue 17:00 — 10 commitsTue 18:00 — 4 commitsTue 19:00 — 9 commitsTue 20:00 — 9 commitsTue 21:00 — 5 commitsTue 22:00 — 0 commitsTue 23:00 — 8 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 2 commitsWed 6:00 — 1 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 3 commitsWed 11:00 — 1 commitsWed 12:00 — 1 commitsWed 13:00 — 1 commitsWed 14:00 — 0 commitsWed 15:00 — 0 commitsWed 16:00 — 0 commitsWed 17:00 — 0 commitsWed 18:00 — 0 commitsWed 19:00 — 4 commitsWed 20:00 — 1 commitsWed 21:00 — 9 commitsWed 22:00 — 5 commitsWed 23:00 — 7 commitsThu 0:00 — 5 commitsThu 1:00 — 5 commitsThu 2:00 — 4 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 0 commitsThu 10:00 — 1 commitsThu 11:00 — 4 commitsThu 12:00 — 3 commitsThu 13:00 — 14 commitsThu 14:00 — 6 commitsThu 15:00 — 2 commitsThu 16:00 — 10 commitsThu 17:00 — 1 commitsThu 18:00 — 3 commitsThu 19:00 — 2 commitsThu 20:00 — 3 commitsThu 21:00 — 6 commitsThu 22:00 — 0 commitsThu 23:00 — 0 commitsFri 0:00 — 1 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 1 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 1 commitsFri 7:00 — 0 commitsFri 8:00 — 1 commitsFri 9:00 — 1 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 4 commitsFri 13:00 — 2 commitsFri 14:00 — 7 commitsFri 15:00 — 8 commitsFri 16:00 — 3 commitsFri 17:00 — 5 commitsFri 18:00 — 16 commitsFri 19:00 — 7 commitsFri 20:00 — 7 commitsFri 21:00 — 13 commitsFri 22:00 — 3 commitsFri 23:00 — 6 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 2 commitsSat 4:00 — 0 commitsSat 5:00 — 1 commitsSat 6:00 — 1 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 1 commitsSat 10:00 — 3 commitsSat 11:00 — 1 commitsSat 12:00 — 9 commitsSat 13:00 — 15 commitsSat 14:00 — 14 commitsSat 15:00 — 10 commitsSat 16:00 — 13 commitsSat 17:00 — 16 commitsSat 18:00 — 12 commitsSat 19:00 — 12 commitsSat 20:00 — 9 commitsSat 21:00 — 19 commitsSat 22:00 — 11 commitsSat 23:00 — 2 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits509 (81%)
Community commits120 (19%)

629 commits in total over the last year.

DateListRankStars gained
Jun 1, 2026daily#17+40
May 31, 2026daily#12+78
  • awesome-selfhosted/awesome-selfhosted

    A list of Free Software network services and web applications which can be hosted on your own servers

    311.2K stars

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    125.4K stars · Rust

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.2K stars · Rust