Kiri
KIRI - Keyboard Interception, Remapping, and Injection using Raspberry Pi as an HID Proxy.
Install / Use
/learn @viggofalster/KiriREADME
KIRI - Keyboard Interception, Remapping and Injection using Raspberry Pi as a HID Proxy.
Near limitless abilities for a keyboard warrior.
Features
- Simple remap of any key or key combination to any key or key combination.
- Build keyboard mapping and/or macros using python.
- Completely external and thereby supports any operating system capable of receiving keyboard input via USB.
Hardware Requirements
- A Raspberry Pi with an USB OTG port (e.g. Pi 4 and Zero W) - this is required so the Raspberry Pi may identify itself as a Human Interface Device (HID).
- An additional USB port for keyboard input to the Raspberri Pi. Only if using a bluetooth keyboard the Raspberri Pi Zero W will suffice, otherwise a Raspberri Pi 4 is needed.
OS Requirements
- Testing has only been conducted with Raspberrian OS - other distributions may work also.
- For convenience and later modifications one can enable sshd on the raspberry pi and connect it to e.g. WiFi-LAN.
Software Requirements
- python >= 3.4 with evdev and importlib installed (pip3 install evdev importlib)
Install
Enable USB OTG via the dwc2 module and allow us to register a HID device in non-kernel mode
sudo -i
echo "dtoverlay=dwc2" | tee -a /boot/config.txt
echo "dwc2" | tee -a /etc/modules
echo "libcomposite" | tee -a /etc/modules
Add binary to PATH:
sudo ln -s /root/kiri/kiri_usb /usr/bin
Modify /etc/rc.local to call the script on boot.
nano /etc/rc.local
Insert the following before exit 0.
/usr/bin/kiri_usb
Reboot the device.
reboot
After reboot, verify that /dev/hidg0 exists.
ls /dev/hidg0
The Raspberry Pi is now setup so e.g. a python script can write USB reports to the USB OTG port by simply writing to /dev/hidg0.
Installing KIRI
- Using git, checkout to a folder accessible by a super-user, e.g. /root/kiri. </br>or
- Copy the files of this repository to e.g. /root/kiri
- You should now have a file with the following path: /root/kiri/kiri.py on the raspberry pi.
Set up a service or e.g. crontab to run kiri.py on boot as a super-user (e.g. root).
Example with crontab
sudo -i
crontab -e
Add the following line
@reboot python3 /root/kiri/kiri.py >>/var/log/kiri.log
Related Skills
node-connect
333.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
333.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.0kCommit, push, and open a PR
