OpenSynapse is a local-first, open-source Windows control center for supported Razer hardware and system policies. Its goal is to replace opaque background software with explicit capabilities, inspectable state changes, and reliable rollback.
Warning
OpenSynapse is experimental, distributed as source only, and has no stable release. The current DeathAdder implementation still requires verification on target hardware. Keep Razer Synapse closed while testing device control.
- Local-first: no account, cloud service, telemetry, or runtime network access.
- Explicit: every supported capability has a known identity, protocol, and safety boundary.
- Reversible: system state is captured before OpenSynapse changes it and retained until confirmed restoration.
- Capability-gated: unknown devices and unsupported commands are not treated as compatible.
- Small: Windows and .NET facilities are preferred over resident services and dependency-heavy frameworks.
OpenSynapse currently implements the M0–M3 development slice. Implementation does not mean hardware verification; see the roadmap for the gates between experimental and supported status.
| Area | Current capability | Maturity |
|---|---|---|
| Windows policies | Auto, Performance, and Quiet selection; power plans; refresh rate; Advanced Color/HDR; internal brightness; display scaling | Implemented, target-Windows validation pending |
| State restoration | Atomic captured state and verified power-plan rollback | Implemented, target-Windows validation pending |
| Desktop control | Non-elevated WPF panel and tray UI connected to a per-user elevated agent | Implemented, target-Windows validation pending |
| Razer mouse | Discovery, status, DPI, and standard-receiver polling control | Experimental |
| Device | VID:PID | Connection | Implemented | Verified |
|---|---|---|---|---|
| Razer DeathAdder V3 Pro | 1532:00B6 |
Wired | Status, DPI, 125/500/1000 Hz | Pending |
| Razer DeathAdder V3 Pro | 1532:00B7 |
Wireless receiver | Status, DPI, 125/500/1000 Hz | Pending |
| Razer DeathAdder V3 Pro (alternate IDs) | 1532:00C2, 1532:00C3 |
Wired / wireless | Status, DPI, 125/500/1000 Hz | Pending |
| Razer HyperPolling Wireless Dongle | — | Wireless | Not implemented | — |
“Pending” means the protocol path exists and is tested at the packet level, but the project does not yet claim hardware support. Firmware updates, fan curves, CPU/GPU power limits, MUX control, and undocumented EC writes are outside the current scope.
OpenSynapse separates the ordinary desktop UI from privileged Windows operations:
OpenSynapse.App ── current-user named pipe ──> OpenSynapse.Agent
│ │
└──────── shared request models ──────────────┤
├─ Windows policy APIs / powercfg
└─ capability-gated Razer HID
The agent owns mode selection, captured state, rollback, and hardware writes. The UI never writes privileged system or HID state directly. See Architecture and the shared domain language.
Requirements:
- Windows 11
- .NET 10 SDK, matching
global.json - An elevated PowerShell terminal only for system-policy and hardware smoke tests
dotnet restore OpenSynapse.sln
dotnet build OpenSynapse.sln --no-restore
dotnet test tests/OpenSynapse.Core.Tests/OpenSynapse.Core.Tests.csproj --no-buildStart the elevated agent, then launch the UI from a normal terminal:
dotnet run --project src/OpenSynapse.Agent -- serve
dotnet run --project src/OpenSynapse.AppOn a disposable or fully understood Windows configuration, run the reversible elevated smoke test:
powershell -ExecutionPolicy Bypass -File scripts\Test-Milestones.ps1
# Optional: re-write the mouse's currently reported values to verify HID transport.
powershell -ExecutionPolicy Bypass -File scripts\Test-Milestones.ps1 -TestMouseWritesThe script verifies Performance/Quiet application, named-pipe lifecycle, agent shutdown, power-plan rollback, and captured-state cleanup. The mouse option requires a readable DeathAdder V3 Pro and does not intentionally select new values.
- Razer writes require an exact supported VID/PID and Consumer HID usage page.
- DPI and polling inputs are validated before packet construction.
- Responses must match the request transaction, command class, command ID, and checksum.
- Privileged IPC is restricted to the current Windows user.
- Captured system state is stored atomically under
%LOCALAPPDATA%\OpenSynapse. - The current implementation contains no telemetry, analytics, updater, account system, or runtime network client.
Please report security issues through the private process in SECURITY.md, not a public issue.
Start with CONTRIBUTING.md, the roadmap, and the Code of Conduct. Hardware contributions must include reproducible identity and verification evidence; a matching product name alone is not enough to mark a device supported.
OpenSynapse began as a migration from the PowerPilot 2.0.0 prototype. Development-only prototype and protocol references belong under the ignored ref/ directory and are never required to build the project.
OpenSynapse is licensed under GNU GPL v2 only (GPL-2.0-only). Third-party provenance is recorded in THIRD_PARTY_NOTICES.md.
OpenSynapse is an independent community project and is not affiliated with, endorsed by, or sponsored by Razer Inc. Razer, Razer Synapse, and related product names are trademarks of their respective owners.