Claw Keyboard
v1.0.4Control keyboard RGB backlight, custom LEDs, macros, key mapping, and profile settings via USB HID. Use when the user asks to control keyboard lighting, mana...
Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
claw-keyboard
Use claw-keyboard to discover and control USB keyboards that support the vendor HID protocol (UsagePage 0xFF60, Usage 0x61). Tested with LUXSWH R68pro. Supports RGB backlight, custom per-key LEDs, macros, key remapping, profile tuning, KLE layout rendering, and multi-keyboard management.
Quick start
claw-keyboard discover— scan for connected keyboardsclaw-keyboard info— show keyboard details (rows, cols, firmware, mode, RGB state)claw-keyboard rgb color red— set backlight to redclaw-keyboard rgb brightness 128— set brightness (0-255)claw-keyboard rgb effect 1— set lighting effect mode (0-20)claw-keyboard rgb save— persist current settings to flash
Device selection
When multiple keyboards are connected, use --device <path> to target a specific one. Run discover to list available paths.
RGB control
claw-keyboard rgb status— show current brightness, effect, speed, colorclaw-keyboard rgb color <name|hue>— set color by name (red, green, blue, cyan, purple, orange, yellow, white) or hue value (0-255)claw-keyboard rgb brightness <0-255>— set LED brightnessclaw-keyboard rgb effect <0-20>— set lighting effect mode (0 = rainbow, 1 = solid, 2-20 = animations)claw-keyboard rgb speed <0-5>— set animation speed (0 = slowest, 5 = fastest)claw-keyboard rgb save— write current config to flash (avoid frequent calls — flash has limited write cycles)
Custom LED control
claw-keyboard led on <row> <col>— turn on a single LED at row/col positionclaw-keyboard led off <row> <col>— turn off a single LEDclaw-keyboard led clear— turn off all LEDsclaw-keyboard led list— list currently lit LED positionsclaw-keyboard led sync-start— start onboard LED effect sync (keyboard reports LED data to PC)claw-keyboard led sync-stop— stop onboard LED effect sync
Key mapping
claw-keyboard keymap read— dump current key layout (all layers)claw-keyboard keymap layers— show number of supported layersclaw-keyboard keymap get <layer> <row> <col>— read the 2-byte HID key value at a positionclaw-keyboard keymap set <layer> <row> <col> <keyvalue>— set a single key (4-digit hex, e.g.0029= Escape). Requires user confirmation — this changes a physical key binding on the keyboard.claw-keyboard keymap write <file>— write complete keymap from hex file. Requires user confirmation — this overwrites all key bindings.
Macro management
claw-keyboard macro list— show macro count, storage usage, and parsed macrosclaw-keyboard macro clear— erase all macros. Requires user confirmation — this deletes all macros permanently.claw-keyboard macro dump— hex dump of raw macro storage dataclaw-keyboard macro set <actions> [<actions>...]— configure macros from action strings (replaces all existing macros). Requires user confirmation.- Action format:
tap:<keycode>,press:<keycode>,release:<keycode>,delay:<ms>separated by commas - Example:
claw-keyboard macro set "press:0xE0,tap:0x06,release:0xE0"(Ctrl+C)
- Action format:
Profile parameters
claw-keyboard profile get— read profile parameters (debounce, TAP layer, sleep, power-down)claw-keyboard profile set— configure profile parameters (use--debounce,--tap,--sleep,--powerdownflags)
KLE layout tools
claw-keyboard kle info <file.json>— show parsed KLE layout summaryclaw-keyboard kle render <file.json>— render KLE JSON layout to SVG
Other
claw-keyboard reset— factory reset keyboard. Requires explicit user confirmation — this permanently erases all settings, key mappings, and macros from the keyboard, restoring it to factory defaults. Only run when the user explicitly requests a factory reset.
Safety
The following commands modify keyboard hardware state and should only be run with explicit user confirmation. Never run these autonomously:
reset— factory reset (irreversible, erases everything)macro clear/macro set— erases or replaces all macroskeymap set/keymap write— changes key bindingsrgb save— writes to flash (limited write cycles)
Read-only commands (discover, info, rgb status, keymap read, macro list, profile get, kle info) are always safe to run.
Notes
- The tool auto-discovers keyboards by scanning for HID interfaces with UsagePage
0xFF60and Usage0x61, then verifying via a challenge-response handshake. - Not all keyboards expose the vendor HID interface. If
discoverfinds nothing, the keyboard may not support this protocol. - On macOS, you may need to grant HID access permission to the terminal application in System Settings > Privacy & Security > Input Monitoring.
- On Linux, you may need udev rules to access USB HID devices without root. Create
/etc/udev/rules.d/99-claw-keyboard.ruleswithSUBSYSTEM=="hidraw", ATTRS{idVendor}=="1a86", MODE="0666"and runsudo udevadm control --reload-rules. - SHA256 checksums for all binaries are available in the
SHA256SUMSfile on the GitHub Releases page. Verify after downloading:shasum -a 256 -c SHA256SUMS. - Use
--jsonflag for machine-readable output.
Comments
Loading comments...
