Standalone desktop peripheral-management application · Actively developed and explicitly not yet stable

AprilNEA/OpenLogi

Dual-licensed Rust desktop application, background agent, and CLI that provide local-first configuration and control for Logitech mice, keyboards, webcams, receivers, and Litra lights across macOS, Linux, and Windows; it is a standalone peripheral utility, not a Claude Code extension.

developer-toolsdesktop-utilitieshardware-controlhuman-interface-devicesinput-remappingprivacysystem-automationwebcam-control
Routing score
80.0
Readiness
Pre-stable releases are documented for end-user installation, with platform and hardware coverage varying by feature.
License
Apache-2.0
Maintenance
active
Components
20
Revision
0

Selection

Select when

  • You need a local-first Logitech peripheral manager on macOS, Linux, or Windows.
  • You want Linux support for Logitech HID++ devices.
  • You want mouse-button remapping, gestures, DPI, or SmartShift control.
  • You want application-specific profiles on a supported desktop backend.
  • You want direct UVC controls and reusable profiles for Logitech webcams.
  • You want plain-text TOML configuration that can be synchronized separately.
  • You want both a graphical interface and a documented command-line surface.
  • You need diagnostics for exposed HID++ features and reprogrammable controls.
  • You want an account-free alternative described by the repository as having no telemetry.

Boundaries

Avoid when

  • You are looking for a Claude Code extension or coding-agent capability.
  • You require a stable configuration format or stable feature set.
  • You must run Logitech Options+ concurrently against the same receiver.
  • You need guaranteed support for every Logitech model or every HID++ feature.
  • You need complete platform parity for remapping and application profiles.
  • You use Linux environments outside the documented display, service, or device-access assumptions.
  • You cannot grant a background utility access to HID, input, or camera devices.
  • You require independently audited security, privacy, or hardware-compatibility claims.
  • You need licensed rights to reuse the OpenLogi name, logo, or application icon.

Strengths

Capabilities

Discovers Logitech devices connected through Bolt, Unifying, Bluetooth, or wired connections.Shows battery percentage and charging state for supported devices.Remaps supported mouse buttons through an operating-system input hook.Supports built-in actions, TOML-authored shortcuts, short and long presses, and hold-until-release chords.Switches per-application profiles on focus where the documented platform backend supports it.Assigns directional gestures to any capable physical button.Provides a cursor-centered eight-slot Actions Ring with per-application layouts.Controls supported mouse DPI presets, SmartShift, and native scroll inversion.Remaps keyboard F-keys to text, key combinations, and multi-step workflows on macOS and Windows.Sets static RGB lighting on supported keyboards through documented HID++ features.Controls power, brightness, color temperature, and optional camera-linked behavior for Litra lights.Previews Logitech UVC webcams only while the preview is open.Writes webcam zoom, focus, exposure, color, and related image settings directly to UVC hardware.Stores built-in and custom per-camera profiles and restores settings to hardware.Provides a GUI, background device-I/O agent, overlay helper, and scriptable CLI.Provides CLI diagnostics for HID++ features, controls, DPI, SmartShift, and keyboard lighting.Uses a typed HID++ layer for discovery, receiver routing, pairing, wheel, lighting, and remapping operations.Supports plain-text TOML configuration that users can synchronize independently.Packages documented releases for macOS, Linux, Windows, and NixOS-related deployment.Provides a GNOME Shell bridge that exposes only focused-window WM_CLASS over D-Bus for Wayland profile switching.

Risk profile

Risks and limitations

  • Uncertainty: only selected first-party files were supplied, so the GUI, agent, input hooks, UVC implementation, CLI implementation, configuration schema, tests, workflows, and release artifacts were not directly inspected.
  • Uncertainty: supplied repository metadata and first-party provenance dates are in 2026 relative to this analysis context, so activity, adoption, and release recency cannot be independently reconciled.
  • The README explicitly says the project is not yet stable and that features and configuration may change.
  • Hardware support depends on each device exposing the relevant HID++, UVC, button, wheel, or lighting capability.
  • Per-application switching is documented for macOS and Windows, but Linux coverage varies across X11, XWayland, and the separate GNOME Wayland bridge.
  • Global keyboard F-key remapping and multi-step keyboard workflows are documented only for macOS and Windows.
  • Some macOS-specific actions are no-ops on Linux, while Windows maps actions only where native equivalents exist.
  • OpenLogi and Logitech Options+ contend for HID++ access, so only one can own a receiver at a time.
  • Linux packages grant the user access to hidraw, uinput, and relevant input-event devices, increasing the importance of package and process trust.
  • The GNOME extension documents compatibility with GNOME 45–50, while newer releases may require metadata changes.
  • Prebuilt Linux packages require GLIBC 2.35 or newer according to the README.
  • Windows validation is repository-reported on a limited real-hardware set and the Windows port is described as newer than macOS.
  • No supplied independent security audit, privacy audit, comprehensive device matrix, or cross-platform test report validates the repository's claims.
  • Asset synchronization contacts project or third-party mirrors unless a different origin is configured, so local-first operation is not necessarily network-silent.
  • Code is dual-licensed under MIT or Apache-2.0, but brand assets are all-rights-reserved and excluded from those licenses.

The application owns peripheral I/O and uses operating-system input hooks, so compromise or misconfiguration could affect input behavior and device settings. Linux packaging installs udev rules granting user access to hidraw, uinput, and relevant input-event nodes. The GNOME extension exposes focused-window WM_CLASS over the user D-Bus and states that it reads no titles, contents, input, or UI. The macOS packaging documentation separates development and production bundle identities to avoid inheriting production TCC grants and describes signing controls; the README describes signed/notarized macOS packages and signed Windows packages. Uncertainty: implementations and audits were not supplied.

Component inventory

20 documented components

standalone GUI application

OpenLogi desktop application

Local-first GUI for configuring supported Logitech mice, keyboards, webcams, and Litra lights over HID++ and UVC.

README.md
CLI command

openlogi list

Lists paired devices with slot, codename, kind, online state, and battery information; it is the default command.

docs/USAGE.md
CLI command

openlogi assets sync

Pre-fetches device renders from the fastest valid asset mirror or a specified base URL.

docs/USAGE.md
diagnostic CLI command

openlogi diag features

Dumps every HID++ feature reported by the active device.

docs/USAGE.md
diagnostic CLI command

openlogi diag controls

Dumps reprogrammable controls and their capability flags.

docs/USAGE.md
diagnostic CLI command

openlogi diag dpi

Performs a DPI read, write, read-back, and restore smoke test.

docs/USAGE.md
diagnostic CLI command

openlogi diag smartshift

Toggles SmartShift and restores its previous state as a smoke test.

docs/USAGE.md
diagnostic CLI command

openlogi diag lighting

Sets a solid hexadecimal color on a supported wired RGB keyboard.

docs/USAGE.md
background service

OpenLogi background agent

Owns device I/O and serves the desktop application; Linux packages provide a systemd user service and Windows provides a tray process.

README.md
application helper

OpenLogi overlay helper

Bundled helper used for OpenLogi overlays, including the desktop bundle's overlay component.

xtask/README.md
GUI action overlay

Actions Ring

Cursor-centered eight-slot action overlay with per-application layouts.

README.md
configuration surface

OpenLogi TOML configuration

Plain-text configuration for device mappings, custom shortcuts, profiles, workflows, and application settings.

README.md
GNOME Shell extension

OpenLogi Frontmost Window

Exports focused-window WM_CLASS changes over D-Bus so OpenLogi can switch per-app profiles on GNOME Wayland.

crates/openlogi-hook/gnome-shell-extension/README.md
Rust library module

openlogi-hid

OpenLogi-oriented HID layer for discovery, receiver routing, pairing, typed device operations, and diagnostics.

crates/openlogi-hid/README.md
Rust protocol library

openlogi-hidpp

Vendored HID++ implementation with typed wrappers for device, power, host, pointer, wheel, remapping, keyboard, lighting, audio, and other features.

crates/openlogi-hidpp/README.md
installation script

Linux source install workflow

Installs four OpenLogi executables, udev rules, a systemd user unit, desktop launcher, and icons from release build output.

packaging/linux/install.sh
NixOS module

OpenLogi NixOS module

Installs OpenLogi, configures udev access, and starts the agent with the graphical session.

README.md
development command

xtask ci

Reproduces host-compatible jobs from ci.yml, with listing and dry-run support.

xtask/README.md
development workflow

xtask macOS packaging workflow

Builds icons, development or production app bundles, DMGs, and complete macOS packages.

xtask/README.md
release workflow

xtask release workflow

Generates changelog and updater metadata, checks publishability, and locates the version-bump commit.

xtask/README.md

Technical profile

Requirements and configuration

Language
Rust is the primary repository language, with a GPUI desktop interface.
Architecture
A desktop GUI connects to a background agent that owns device I/O, with separate CLI and overlay executables.
Protocols
Uses Logitech HID++ for supported peripherals and UVC for webcams.
Configuration
Stores settings in a single TOML file according to the README.
Device Layer
openlogi-hid adds enumeration, receiver routing, transport setup, fallbacks, and typed operations over async-hid and the vendored openlogi-hidpp crate.
Protocol Fork
openlogi-hidpp is a vendored 0BSD fork of hidpp with typed HID++ 2.0 feature wrappers.
Desktop Focus
Uses platform focus backends; the supplied GNOME extension exports focused-window WM_CLASS over D-Bus.
Distribution
Documents DMG and Homebrew for macOS, deb/rpm/Arch packages and NixOS for Linux, and ZIP/MSI for Windows.
Linux Permissions
Packages install udev rules for hidraw, uinput, and relevant input event access.
Development Tooling
A Rust xtask coordinates CI reproduction, macOS bundles and DMGs, Linux packages, and release metadata.
Licensing
Code is offered under MIT or Apache-2.0, the vendored protocol fork is 0BSD, and brand assets are separately restricted.
Claude Integration
No Claude Code plugin, skill, hook, MCP surface, or first-party integration is documented.

Classification

How it enters the stack

Standalone ApplicationDesktop GuiExternal Cli Library

Evidence: OpenLogi installs as its own GUI, background agent, overlay, and CLI and operates independently of Claude Code. Evidence: platform packages require ordinary application installation plus device permissions or agent setup on some systems. No Claude-specific extension mechanism is documented.

Standalone · medium setup effort · high confidence · automated

Evidence and risk

Primary sources

first_party_fileREADME.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/README.md
first_party_filextask/README.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/xtask/README.md
first_party_filedocs/README.de.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/docs/README.de.md
first_party_filedocs/README.fr.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/docs/README.fr.md
first_party_filedocs/README.ja.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/docs/README.ja.md
first_party_filedocs/README.ko.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/docs/README.ko.md
first_party_filedocs/README.zh-CN.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/docs/README.zh-CN.md
first_party_filedocs/USAGE.mdhttps://github.com/AprilNEA/OpenLogi/blob/master/docs/USAGE.md

Routing context

Conflicts, complements, and synergies

No catalog relationships have been documented yet.