He plays, the cobra sways -- an old agreement between them, older than the pyramids on the horizon.

Snakecharmer

Configure Razer mice on Windows without Synapse: DPI, polling rate, button binds and lighting. Open source, copyleft, based on OpenRazer.

Download snakecharmer.exe

Windows 10 / 11 · latest release · GPL-2.0 · source on GitHub

Compared to Synapse

Razer SynapseSnakecharmer
Processes6, including an embedded Chromium browser1
Kernel drivers2, still registered after uninstallingnone
Idle RAM~558 MB17 MB
On disk~500 MB0.6 MB
Installeryesnone (single exe)
Telemetryyesnone

RAM figures are measured. Synapse's disk size is Razer's published minimum.

Features

DPI
Set and lock DPI. Tray presets are based on the mouse's supported range.
Polling rate
Up to 8000 Hz on mice that support it. Only rates the mouse supports are offered.
Button binds
Map buttons to keystrokes, including the DeathAdder Elite's two DPI buttons, which Windows doesn't receive on its own. On the DeathAdder V3, binds can be stored on the mouse, so they work when Snakecharmer isn't running, in games that block injected input, and on other PCs.
Lighting
Static, breathing, spectrum or off, set per zone. Effects run on the mouse, so nothing animates in the background.

Settings are applied at startup, and DPI is re-checked every 60 seconds. Use the tray menu for quick changes and the settings window for everything else.

Supported mice

MouseMax DPIPollingLightingAdded by
DeathAdder Elite16,0001,000 Hzscroll wheel, logo@asavs
DeathAdder V3 (wired)30,0008,000 Hz—@asavs · #3
DeathAdder V4 Pro45,0008,000 Hz—@YUZHEthefool · #14

All verified on real hardware. Snakecharmer only opens mice on this list and ignores every other device. To add a mouse, see Add your mouse.

Install

  1. Download snakecharmer.exe and save it anywhere. There's no installer.
  2. Run it. Windows SmartScreen may show "Windows protected your PC" because the exe isn't code-signed. Click More info, then Run anyway. Releases are built from the public source by GitHub Actions.
  3. Left-click the tray icon to open settings. Right-click it for DPI and lighting presets. Snakecharmer starts with Windows by default; turn this off with Start with Windows in the right-click menu.
  4. Optional: uninstall Synapse. First reset your buttons to default in Synapse, because some mice keep Synapse's binds in on-board memory. The Synapse removal guide covers what Synapse's uninstaller leaves behind.

Safety

Add your mouse

OpenRazer documents the protocol for 108 more Razer mice: DeathAdder (22), Viper (12), Basilisk (17), Naga (18), Cobra (3), Mamba (8), Lancehead (5), Orochi (5), Abyssus (6), Pro Click (7), Atheris (1), Diamondback (1), Imperator (1), Ouroboros (1), and Taipan (1). Adding one mostly needs someone who owns it to test it on real hardware.

Request a mouse

Open a request with your mouse's name. Someone else can write the code, and you can test it.

Add it yourself

  1. Find your mouse in the wishlist.
  2. Open an issue to claim it.
  3. Follow the cracking guide, or give your AI of choice the AI prompt.
  4. Open a pull request. It's usually one new file. See CONTRIBUTING for the checklist.

Without a Razer mouse

You can draw a button map for a supported mouse or report a bug.

I am so grateful for any and all contributions!

Alternatives

Snakecharmer supports a few settings on a few mice, on Windows. These tools cover other needs. The full comparison has more detail.

ToolPlatformGood for
OpenRazer + PolychromaticLinuxFull Razer support, with a GUI. Snakecharmer is based on OpenRazer.
libratbag + PiperLinuxRazer and Logitech mice in one tool
OpenRGBWindows, Linux, MacLighting across many brands, free
secbirdWindowsMice, keyboards and more, with per-game profiles, macros and button remapping
SignalRGBWindowsLighting synced to games and other devices
X-Mouse Button ControlWindowsPer-app button profiles; can run alongside Snakecharmer
AutoHotkeyWindowsMacros and scripted remaps
razer-macosMacRazer lighting and DPI
usemiceBrowserQuick changes without installing anything
dawctl, open-razerkitCommand lineSetting a value from a script