Configure your Razer peripherals without Synapse. No account, no service, no cloud.
DPI · polling rate · lighting · battery · onboard profiles — a single portable executable that speaks the device's own HID protocol directly.
Note
Replace the GIF placeholder below before launch. A 12-second split screen — Synapse's login and load time and RAM on the left, OpenMaw's instant DPI change and battery-in-tray on the right — is the single most valuable asset this project has. It goes here, above everything.
Synapse 3 stopped receiving support on 3 February 2026. Synapse 4 requires a Razer account to change the DPI on a mouse you already own. It runs several background services, keeps a process resident, and talks to the network to do it.
None of that is necessary. Everything a mouse or keyboard needs to be configured is in the device, reachable over a HID feature report. OpenMaw talks to it directly:
- No account. Nothing to sign into.
- No service. A single user-space process, or no resident process at all if you use the CLI.
- No driver. Nothing installed into the kernel, nothing to sign, no elevation prompt.
- Onboard by default. Settings are written to the device's own memory. Configure it, close OpenMaw, uninstall it — the device keeps the setting.
Measured, not adjectives. See how these are measured.
| OpenMaw | Razer Synapse 4 | |
|---|---|---|
| Account required | No | Yes |
| Windows services | 0 | Several |
| Portable single-file build | Yes | No |
| Works offline | Yes | Sign-in needs the network |
| Onboard-memory profiles | Yes | Yes |
| Kernel driver | No | Yes |
| Source available | Yes, GPL-2.0 | No |
Important
Releases are not published yet — this repository is in active early development. When they are, this is what you will find here.
OpenMaw-portable.exe— one file, no installation. Copy it anywhere, including a USB stick, and run it.OpenMaw-Setup.exe— an installer with an optional "start with Windows" checkbox.- winget —
winget install OpenMaw(planned) - Scoop —
scoop install openmaw(planned)
Prefer the terminal? openmaw.exe is a standalone CLI — see below.
The binaries are not code-signed yet, so Windows SmartScreen will show a warning on first run. This is expected for an unsigned application, not a sign of anything wrong. Every release publishes a SHA-256 hash you can check against your download, and CI builds are public and reproducible. Signing is on the roadmap if the project gains traction.
| Capability | Devices |
|---|---|
| DPI, fixed and staged | mice |
| Polling rate, up to 8000 Hz on HyperPolling devices | mice, keyboards |
| Battery level and charging state, shown in the tray icon | wireless |
| Lighting: static, off, brightness | anything with LEDs |
| Effects: spectrum, breathing, wave, reactive, starlight | matrix devices |
| Idle / sleep timeout | wireless |
| Onboard-memory storage | devices that support it |
| Firmware and serial | all |
So the launch does not drown in misaligned expectations:
- Macros and key remapping. Needs a keyboard hook, which invites antivirus false positives.
- Chroma Studio and synchronised animated effects.
- Game integrations (Chroma SDK).
- Razer Blade fan curves and power control.
- Linux and macOS. OpenRazer already covers Linux well, and OpenMaw does not compete with an ally.
266 devices are in the database, generated from OpenRazer's sources. Most are marked untested — that does not mean broken. The protocol is shared across the whole catalogue, so untested devices are expected to work; it means nobody has confirmed one yet.
Confirming your device is the single most useful thing you can contribute. Run
openmaw dump --record trace.json, open an issue, attach the file. See
the full matrix and docs/ADDING-A-DEVICE.md.
The command line tool ships first and is the fastest way to debug a device. It is also the one piece that makes genuinely zero network connections — no WebView involved.
openmaw list # what's connected
openmaw info <device> # firmware, serial, probed capabilities
openmaw dpi <device> --set 1600
openmaw dpi <device> --stages 800,1600,3200 --active 2
openmaw poll <device> --set 1000
openmaw battery <device>
openmaw led <device> --static "#FF0000" --zone logo
openmaw led <device> --effect spectrum --brightness 70
openmaw idle <device> --minutes 15
openmaw dump <device> --record trace.json # a pasteable bug report
openmaw raw <device> --class 0x00 --id 0x81 # the escape hatch
openmaw hid-scan --all --probe # every HID collection; needs no Razer hardwareEvery read command takes --json. Every setting command takes --store onboard|volatile.
<device> is optional when only one is connected, otherwise it is a product id, a serial, a
name fragment, or a device path.
Honesty over marketing:
- Services created: 0 — by design. There is no service to create. Verify with
Get-Service | Where-Object DisplayName -like '*OpenMaw*'. - Network connections from OpenMaw's code: 0. The CLI opens no sockets at all. The GUI is built on Tauri, which uses the Windows WebView2 runtime to draw its window; WebView2 makes its own background connections to Microsoft (SmartScreen, component updates) that are outside OpenMaw's control. So the honest claim is: OpenMaw never phones home, and the CLI proves it by making no connections whatsoever. If you need an airtight zero, use the CLI.
- RAM is measured in Task Manager with the window closed to the tray, on a release build. Debug builds and the WebView process tree are larger; the figures in the table above are from release builds and will be filled in from CI once releases are cut.
The point of this section is that you can check every number yourself.
You need a Rust toolchain and, for the GUI, the WebView2 runtime (already present on Windows 11).
# The library, CLI and tests — no GUI toolchain needed
cargo test --workspace
cargo build --release -p openmaw-cli # target/release/openmaw.exe
# The tray application
cargo build --release -p openmaw # target/release/openmaw-gui.exe
# Regenerate the device database from upstream OpenRazer
cargo run -p gen-devices
# Regenerate the icons
python tools/make-icons.pyThe workspace is three crates plus the app:
openmaw-core— the protocol: framing, transport, typed commands, capability probing. No UI, testable without hardware via a mock transport. This is the reusable part.openmaw-cli— the command line tool.src-tauri— the tray application.tools/gen-devices— generates the device database from OpenRazer's sources.
A Razer control report is 90 bytes. On Windows it travels as a HID feature report over
HidD_SetFeature / HidD_GetFeature, on the vendor-defined collection (HID usage page
0xFF00) — reachable from an ordinary user process, no kernel driver. Settings written to the
device's VARSTORE live in its onboard memory.
The full protocol, including the Windows-specific details that trip up home-grown implementations, is documented in docs/PROTOCOL.md.
- Cut the first public release (portable exe, installer, hashes)
- winget and Scoop manifests
- ARM64 builds — Surface and ARM laptops have no Synapse alternative at all
- Recorded-trace test corpus, so confirmed devices stay confirmed in CI
- Reconsider code signing if adoption warrants it
- After 1.0: the core is a generic "talk HID to a peripheral" engine; SteelSeries, Corsair and HyperX are the same problem shape
Reports of working (or broken) devices are the most valuable contribution, and the easiest. See CONTRIBUTING.md and docs/ADDING-A-DEVICE.md. Good first issues are tagged as such.
OpenMaw is GPL-2.0-or-later. It has to be: its understanding of the protocol derives directly from OpenRazer, which is GPL-2.0-or-later, and OpenMaw would not exist without a decade of its work. The device database is generated from OpenRazer's sources. Full attribution is in NOTICE.
OpenMaw is not affiliated with Razer Inc. "Razer" and "Synapse" are trademarks of their respective owners. This project ships no Razer logo, icon, or artwork.