Skip to content
 
 

Repository files navigation

OpenMaw

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.

CI License: GPL v2 Platform: Windows Devices

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.

[ 12-second demo GIF goes here ]

Why

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.

OpenMaw vs Synapse

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

Download

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.
  • wingetwinget install OpenMaw (planned)
  • Scoopscoop install openmaw (planned)

Prefer the terminal? openmaw.exe is a standalone CLI — see below.

About the SmartScreen warning

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.

What it does

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

Deliberately out of scope for 1.0

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.

Compatibility

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 CLI

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 hardware

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

How the numbers are measured

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.

Build from source

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

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

How it works

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.

Roadmap

  • 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

Contributing

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.

Licence and credits

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.

About

Configure Razer peripherals without Synapse. No account, no service, no cloud. A native Windows HID controller for DPI, polling, lighting and battery.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages