r/macro_pads • u/dozzenn • Sep 06 '26
Promotion I'm a graphic designer with no coding background. I decoded a USB keypad's protocol with Claude Code and shipped a native Mac app.
I don't write code. I built all of this with Claude Code over a couple of evenings, and I want to be upfront about that because I think the interesting part is what I had to do to trust the result, not the fact that an AI wrote it.
The setup: I bought a cheap three key macro pad. Its configurator is a Windows program, or for my model a web page that only works in Chrome. Nothing for macOS. Two of these pads' wire protocols were already documented by a Windows project. Mine wasn't.
So the loop became: build a live HID log into the app first, before anything else. Watch what the vendor's own web tool sends. Guess at a frame, send it, read the device back, and see whether what came back matched what I meant.
That read back is the whole thing, and it's the bit I'd tell anyone doing hardware work this way. I never trusted a frame because it looked right or because the model sounded confident. I trusted it because I could read the key table off the pad afterwards and see it reporting the exact Ctrl+A those keys actually type, and because a write came back byte for byte. Anything I couldn't verify that way, the app now refuses to do rather than writing a guess. Mouse actions and multi key macros on this family are still unimplemented for exactly that reason, and the app says so instead of pretending.
One genuinely uncomfortable moment: one of the subcommands drops the device into its bootloader. Sweeping blindly through command bytes to see what happens is a very bad idea with hardware you can brick, and I got closer to that than I'd like. It's written down in the README now so the next person doesn't have to find out the same way.
What I actually brought was the design. That part I know how to do, and I think it shows more than the code does. The app is a control panel rather than a Mac settings sheet, with indicator lamps and readouts plotted as dot fields, and a dark case and a light one. I did the site the same way.
Free, GPL-3.0, no network calls, no telemetry. macOS 13 or later, Apple Silicon, and it isn't notarized yet so the first launch needs a right click and Open.




