Skip to content
gh123manPublic

About

Lightweight configuration software for USB and bluetooth Razer devices on macOS

Topics

Resources

Contributing

Stars

93 stars

Watchers

2 watching

Forks

Repository files navigation

open-snek app icon

OpenSnek

Configure supported Razer mice on macOS without Synapse, Windows, or vendor lock-in.

OpenSnek window and menu bar DPI controls on a macOS desktop

OpenSnek is an open source native macOS app for configuring supported Razer mice over USB or Bluetooth, with early lighting-only support for select Razer keyboards, keypads, and charging accessories.

Highlights

  • Lightweight native macOS app bundle with no unnecessary runtime bloat
  • Very low idle and background overhead, so it stays out of the way when you are not using it
  • Optional menu bar control for quick, on-the-fly DPI adjustments
  • Manage onboard profiles on supported devices
  • Rebind all supported mouse buttons and write to onboard storage

Supported Devices

✅ Supported · 🧪 Mapped, awaiting hardware validation · ❌ Not implemented · - Not supported by hardware

Mice

Device USB / receiver Bluetooth Main limitations
Basilisk V4 HyperSpeed ✅ Receiver ✅ DPI, battery, sleep, brightness and all 12 button/wheel actions on USB/BT; USB polling/effects. Cable pending
Basilisk V3 X HyperSpeed ✅ ✅ Bluetooth lighting: static only
Basilisk V3 🧪 - Awaiting hardware validation
Basilisk V3 Pro ✅ ✅ Bluetooth lighting: static only
Basilisk V3 35K ✅ -
Basilisk V3 Pro 35K Phantom Green Edition 🧪 ✅ No onboard profiles or USB software lighting; Bluetooth: restore-on-connect
Orochi V2 ❌ ✅ Button remapping awaits validation; no RGB hardware
Naga Pro ✅ ✅ No scroll-wheel settings
Naga V2 Pro ✅ ✅ No scroll-wheel settings; top DPI buttons read-only
Naga V3 Pro ✅ ✅ No scroll-wheel settings or onboard profile management
Basilisk (2017) ✅ - No button remapping
Lancehead Tournament Edition ✅ - No button remapping

Lighting-only devices

Device USB Bluetooth
Huntsman Mini ✅ -
Tartarus Pro ✅ -
Mouse Dock ✅ -
Mouse Dock Pro ✅ -

USB includes wired connections or USB wireless receivers, depending on the model. Available features vary by device and connection. Supported connections include both maintainer- and contributor-validated hardware; validation details and contributor credits are in the full feature matrix.

Full feature matrix · Help add device support

Motivation

Razer does not support the Basilisk V3 X HyperSpeed on macOS at all, so this project started by reverse engineering the BLE protocol from Windows traffic between the mouse and Synapse.

The goal is simple: make supported Razer mice configurable on macOS without needing Synapse, Windows, or a second machine just to change settings.

More device support is welcome, whether that comes from new hardware captures or pull requests. For USB protocol reference work, this project also builds on the excellent documentation and reverse-engineering effort from OpenRazer.

Features

  • Change DPI, stage count, and active stage
  • Adjusts supported lighting settings
  • Remaps supported buttons
  • Works over USB and Bluetooth where the device protocol allows it
  • Avoids the need for Synapse or a separate Windows machine

Download and Install

  1. Download the latest DMG from GitHub Releases.
  2. Open the DMG.
  3. Drag OpenSnek.app into Applications.
  4. Launch OpenSnek.

Official builds use the latest Xcode/macOS SDK. Local source builds can use either full Xcode or Command Line Tools. Minimum supported macOS version: macOS 14.

If macOS asks for permissions:

  • For USB control, grant Input Monitoring to OpenSnek in System Settings > Privacy & Security.
  • For Bluetooth control, allow Bluetooth access when prompted.

Build From Source

From the repo root:

./run.sh

With full Xcode, that rebuilds the canonical OpenSnek.app target. On a Command Line Tools-only Mac, it builds with SwiftPM and assembles the same stable .dist app bundle before launching it through OpenSnek/scripts/run_macos_app.sh. If Command Line Tools provides an older Swift than the package requires, install the current toolchain with brew install swift; the script detects it without changing xcode-select or PATH.

If you want to reuse the current app bundle without rebuilding:

./run.sh --no-build

Build

swift build --package-path OpenSnek

Direct SwiftPM commands require Swift 6.2 or newer. After brew install swift, either call /opt/homebrew/opt/swift/bin/swift directly on Apple silicon or prepend the Homebrew Swift directory to PATH.

Test

swift test --package-path OpenSnek

Running tests with the above command as-is still requires a full Xcode installation due to XCTest, but if desired, it is possible to run the test suite on a machine with only Xcode CLT installed, by extracting XCTest from an Xcode .xip for standalone usage and pointing swift test to it, but due to the non-reproducible nature of that procedure, caused by the need to match the Xcode version XCTest is extracted from to the user's installed Xcode CLT version, which differs by macOS version, that process will not be documented in detail here, other than noting it can be achieved.

Xcode

./OpenSnek/scripts/generate_xcodeproj.sh --open

OpenSnek/OpenSnek.xcodeproj is generated from OpenSnek/project.yml on demand and is not checked into git.

Project Docs

License

This repository is licensed under the Apache License 2.0. See LICENSE.

About

Lightweight configuration software for USB and bluetooth Razer devices on macOS

Topics

Resources

Contributing

Stars

93 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages