HIDMaestro
Product information | October 26, 2026

HIDMaestro is a free, open-source SDK for creating virtual game controllers, keyboards and mice on Windows. Applications use its C# API and JSON device profiles to define device identity, submit input, and receive output such as rumble and force feedback. PadForge uses HIDMaestro for virtual controller output. HIDMaestro is available under the MIT license, including for commercial use.

Website: https://hidmaestro.org/
Press resources: https://hidmaestro.org/press/
Current release: v2.1.0, October 26, 2026
Release notes and downloads: https://github.com/hifihedgehog/HIDMaestro/releases/tag/v2.1.0
Performance, release over release: https://hidmaestro.org/performance.html
Platforms: Windows 10 and 11 on x64. Windows 11 on ARM64.
SDK: C# / .NET 10. The driver and device profiles are embedded in HIDMaestro.Core.dll.
Price: Free.
License: MIT. Commercial use is permitted subject to the license terms.
License text: https://github.com/hifihedgehog/HIDMaestro/blob/v2.1.0/LICENSE

Architecture
Applications submit input through the C# SDK. JSON profiles describe device
identity and reports. The core HID/XUSB paths use Windows UMDF2. Composite USB
profiles use a signed usbip-win2 transport for USB HID, audio and vendor interfaces.
Output events return to the application, which handles physical-device routing.
Input API support depends on the selected profile.
Version 2.0.0 moves device behavior out of code and into the profiles.
Programs built on HIDMaestro 1.x must move to 2.0.0.
Version 2.0.1 removes HIDMaestro from a computer, with HIDMaestroUninstall.exe
from the release ZIP or one call from a program, and installs usbip-win2's
host controller without usbip-win2's installer or its root-hub filter.
Version 2.0.2 gives the Steam Deck and Steam Controller personas the motion,
report timing, unit serials, pad pressure and trigger bits that SDL and Steam
read from the real controllers.
Version 2.0.3 makes a removal that includes usbip-win2 take usbip-win2's
root-hub filter too, which an SDK through 2.0.0 installed.
Version 2.1.0 fixes frames that arrived late, out of order or twice, keeps the
Xbox 360 profiles' HID devices alive across a system sleep, and cuts the work
the SDK, the driver and the USB/IP transport do for each frame.

Setup and validation
Device creation and driver installation require administrator rights.
For 2.1.0, the 101-scenario regression battery passed on the development
laptop, a 16-core Lenovo Legion Pro 7 on Windows 11. On a 4-core Celeron
J4125 Windows 10 mini PC, 97 scenarios passed and 4 skipped, leaving out the
checks that need a Steam client, a desktop session or Windows Sandbox.
ARM64 binaries were built and signed, but the regression battery has not
been run on ARM64 hardware.
Installation: https://hidmaestro.org/docs/start/installation/
Platform support: https://hidmaestro.org/docs/start/platform-support/
Quickstart: https://hidmaestro.org/docs/start/quickstart/
Testing: https://hidmaestro.org/docs/reference/testing-and-verification/

Performance
Each release's notes compare it with the release before it, both builds
measured in one session on the development laptop. Chained from those
comparisons, 2.1.0 takes 76% of 1.12.0's time from process start to the first
DualShock 4 controller, 43% of its time to create an Xbox 360 controller, 77%
of its time from SubmitState to a game's ReadFile on a DualShock 4, and 24% of
its time for a SubmitState call on an Xbox 360 pad. Every tracked path, slower
steps included: https://hidmaestro.org/performance.html

Adoption
PadForge is built on HIDMaestro end to end. Other public projects that use,
ship or build on it include foundation-sunshine, Vibepollo, Sunshine Control
Panel, Kitsune Input, HandHeld Legend's HHL Gamepad WLAN and
JoystickGremlinEx, 45 projects in all: https://hidmaestro.org/specs.html#adopters

References
Specifications: https://hidmaestro.org/specs.html
Architecture: https://hidmaestro.org/docs/reference/architecture-overview/
Input APIs: https://hidmaestro.org/docs/reference/cross-api-coverage/
Profiles: https://hidmaestro.org/docs/profiles/profile-system/
Source: https://github.com/hifihedgehog/HIDMaestro

Press assets
architecture.svg: Architecture overview, 1600 x 960 SVG.
performance.svg: Release-over-release performance charts, 1600 x 960 SVG.
hidmaestro-dark-mark.png: Dark conductor mark for light backgrounds, 1024 x 1024 PNG.
hidmaestro-light-mark.png: Light conductor mark for dark backgrounds, 1024 x 1024 PNG.

Credits
Nefarius pioneered the UMDF2 controller-driver approach in DsHidMini:
https://github.com/nefarius/DsHidMini
The DualShock 3 profile's report descriptor is DsHidMini's, under its BSD 3-Clause license.
Composite USB profiles use usbip-win2 by Vadym Hrynchyshyn:
https://github.com/vadimgrn/usbip-win2
Third-party notices: https://github.com/hifihedgehog/HIDMaestro/blob/v2.0.3/sdk/HIDMaestro.Core/THIRD-PARTY-NOTICES.txt
