Mouser: remapping Logitech mice without the cloud attached
A lightweight, open-source, fully local alternative to Logitech Options+ for remapping Logitech HID++ mice.
At a glance
- What is it?
- Mouser is a lightweight MIT-licensed Python application serving as a fully local alternative to Logitech Options+ for remapping HID++ mice, with the best experience on the MX Master and MX Anywhere families. It offers per-application button remapping with 40-plus built-in actions, SmartShift control over the HID++ 0x2111 register, DPI presets to 8000, gesture and swipe bindings, and native hooks on Windows, macOS and Linux, with no telemetry, no cloud and no account, at v3.7.3 released July 2026.
- Who is it for?
- Use Mouser when you want your MX Master or MX Anywhere remapped by software that stores a plain JSON file locally, asks for no account and sends nothing anywhere, and when the official Options+ requirement of a cloud login is precisely what you are avoiding. Keep Options+ itself when you need its device firmware updater or its genuinely unsupported peripherals, since both apps cannot run at once over HID++.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 51 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 2, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The anti-Options+, in one sentence
Mouser's identity fits in its own bolded line, no telemetry, no cloud, no Logitech account required, and every other design choice follows from refusing those three. It is a lightweight, open-source, fully local alternative to Logitech Options+ for remapping Logitech HID++ mice, configuration stored as a plain JSON file, all processing on the machine, the application running quietly as a tray or menu-bar icon. The position exists because the official tool grew a mandatory account and cloud plumbing around what is, at the wire, a local device-configuration protocol, and users who wanted the protocol without the platform had nowhere to go. The current best experience is on the MX Master and MX Anywhere families, with detection and fallback UI for additional Logitech models, and the honest scoping, best rather than universal, is the kind that suggests the developer tested what they claim.
Download, extract, double-click
The deployment model is deliberately install-free, download the zip for your platform from the latest release, Windows, macOS Apple Silicon, macOS Intel or Linux, extract it anywhere from Desktop to Applications, and run the executable, Mouser.exe, Mouser.app or ./Mouser. The app opens a settings window on the device-aware Mouse and Profiles page, drops its tray icon, and starts remapping immediately, and closing the window keeps it running in the tray, with a right-click Quit as the real exit. First-run friction is documented per platform honestly, Windows SmartScreen may warn and needs More info then Run anyway, macOS asks for the Accessibility permission so the event tap can intercept mouse events with a dedicated walkthrough file, and Linux needs device node access granted by a bundled helper:
cd /path/to/extracted/Mouser
./install-linux-permissions.shfollowed by reconnecting the mouse. The one hard rule is stated twice, Logitech Options+ must not be running, because both applications fight over HID++ access.
Per-application profiles and 40-plus actions
The remapping surface covers any programmable button, middle click, the gesture button, back, forward, mode shift, the DPI switch on MX Vertical, and horizontal scroll, and buttons can be remapped mouse-to-mouse, one acting as left, right, middle, back or forward. Per-application profiles auto-switch mappings when the foreground application changes, the documented example being Chrome versus VS Code, so the gesture button can mean one thing in a browser and another in an editor. Custom keyboard shortcuts are recorded directly in the UI as key combinations like Ctrl+Shift+P, and a catalog of more than forty built-in actions spans navigation, browser, editing, media, scroll-mode and DPI shortcuts that adapt per platform. The combination, any button to any action with per-application switching, is the feature set remapping tools are judged on, and the count of actions is stated with the caveat that they adapt, acknowledging platform differences rather than papering over them.
SmartShift, DPI and the gesture button
Device control goes beyond button mapping into the hardware features that define the MX line. The DPI and pointer speed control is a slider from 200 up to the device maximum, 8000 on the MX Master, with quick presets and a Cycle DPI Presets action that can be bound to a button for on-the-fly switching. SmartShift, the ratchet to free-spin scroll mode transition, is toggled through the HID++ 0x2111 register with a configurable sensitivity threshold and a mappable Toggle SmartShift action, plus a bindable scroll-mode flip that changes ratchet and free-spin without opening the UI, defaulting to the mode-shift button. The gesture button supports tap plus four swipes, one action for the tap and one each for up, down, left and right, and scroll direction inversion offers independent vertical and horizontal toggles. Naming the register in the feature list is the fingerprint of an implementation written against the protocol documentation rather than reverse-engineered from traffic.
Native hooks on three platforms
The cross-platform claim is backed by named mechanisms per platform, the low-level Windows mouse hook WH_MOUSE_LL, the macOS CGEventTap behind the Accessibility permission, and evdev with uinput on Linux, the canonical trio for input interception. macOS ships separate native builds for Intel and Apple Silicon, and the menu-bar application runs as an LSUIElement, no Dock icon, matching what a background utility should be. Start-at-login is implemented three ways, a Windows registry key, a macOS LaunchAgent and a Linux XDG autostart file, with an independent Start minimized option booting straight to the tray, and one platform-specific grace period that shows the care, Linux autostart deliberately waits about fifteen seconds after login so Bluetooth and HID devices are usually ready before settings are restored. A single-instance guard brings the existing window forward on a second launch instead of spawning a duplicate, and the UI is resizable from its 1060 by 700 default down to a 920 by 620 minimum with the mouse diagram reflowing.
Reconnection that actually replays settings
Connectivity handling distinguishes a tool people run daily from one they tolerate. Both Bluetooth and Logi Bolt transports are supported on all three platforms, and the UI labels the live connection honestly, showing Logi Bolt only when the receiver PID is positively identified rather than guessing. Mouser watches for power-off and power-on cycles and rebinds the HID++ session and the OS mouse hook without a restart, and critically, SmartShift settings are replayed on every reconnect including wake from sleep, closing the gap where a mouse wakes up in its default mode and the user must toggle something to restore their configuration. A live Connected / Not Connected badge with model name and active layout sits in the UI, and the device-aware interface renders interactive MX Master and MX Anywhere diagrams with clickable hotspots, a generic fallback card for other models, and an experimental layout-override picker for the gaps.
A Python tool with a memory-leak plan on file
The implementation is Python, and the requirements read as a practical stack, PySide6 for the Qt interface, hidapi for the HID++ transport, Pillow for image work, PyInstaller for the no-install packages, pyobjc Quartz and Cocoa bindings on macOS and evdev on Linux, each pinned per platform. The repository's file list includes two artifacts that say much about the engineering posture, a MEMORY_LEAK_PLAN.md, a committed plan for hunting a class of bug that plagues long-running tray applications, and a CONTRIBUTING_DEVICES.md, guidance for adding device support, the two directions a hardware tool actually grows. Releases are frequent and recent, v3.7.1, v3.7.2 and v3.7.3 across the last week of July 2026, with the last push on 2026-08-13, and the interface ships in English, Simplified Chinese and Traditional Chinese with instant switching persisted to the config file, a bilingual polish consistent with the project's attention to the parts users touch.
Editorial conclusion
Use Mouser when you want your MX Master or MX Anywhere remapped by software that stores a plain JSON file locally, asks for no account and sends nothing anywhere, and when the official Options+ requirement of a cloud login is precisely what you are avoiding. Keep Options+ itself when you need its device firmware updater or its genuinely unsupported peripherals, since both apps cannot run at once over HID++. Verify first that your model is in the dedicated-layout tier or accept the generic fallback card, grant the platform permission the first launch requests, Accessibility on macOS or the device-node access on Linux, and quit Options+ before starting.
Frequently asked questions
What is Mouser, the mouse remapper?
Mouser is a lightweight MIT-licensed, fully local alternative to Logitech Options+ for remapping Logitech HID++ mice, best on the MX Master and MX Anywhere families. It runs as a tray application on Windows, macOS and Linux, stores a plain JSON config locally, and requires no account, cloud or telemetry.
How do you install Mouser?
There is no installer, download the zip for your platform from the latest GitHub release, extract it anywhere and run the executable. First-run steps vary, dismiss the Windows SmartScreen warning, grant Accessibility permission on macOS, and on Linux run the bundled install-linux-permissions.sh once, then reconnect the mouse.
Can Mouser run alongside Logitech Options+?
No, the README states Options+ must not be running, because both applications fight over HID++ access. Quit Options+ before launching Mouser.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/tombadash-mouser)