Remote Driver for Anki
Control Anki flashcard reviews with a wireless remote, touchpad, or presentation clicker.
Features
- β
Auto-reconnect: Plug/unplug your remote anytime without restarting Anki
- β
Gesture support: Use swipe gestures on touchpad remotes
- β
Button mapping: Configure discrete button presses
- β
Multiple input methods: HID, UDP network, or keyboard
- β
Silent operation: No logging by default, runs completely in the background
- β
Debug mode: Enable detailed logging only when troubleshooting
Supported Devices
- Touchpad presentation remotes (tested with VID 0x0e05, PID 0x0a00)
- USB/Bluetooth HID remotes
- Keyboard-style presentation clickers
- Phone apps that can send UDP packets
Installation
-
Install hidapi Python package:
- Tools β Add-ons β Get Add-ons
- Or manually install the
hidapi package
-
Install this add-on from AnkiWeb or manually:
- https://ankiweb.net/shared/info/306050281?cb=1770654300015
-
macOS users: Grant Input Monitoring permission:
- System Settings β Privacy & Security β Input Monitoring
- Enable Anki
- Restart Anki
Quick Start
First-Time Setup
-
Find your remote's device IDs:
- Tools β Add-ons β Remote Driver β Config
- Set
"hid_scan_mode": true
- Set
"debug": true
- Restart Anki
- Press buttons on your remote
- Check
remote_driver.log in the addon folder for lines like:Trying device #X: vid=0x0e05 pid=0x0a00 path=...
π‘ DATA RECEIVED: [6, 7, 239, 3, 160, 6]
-
Configure your remote:
- Copy the
vendor_id and product_id (in decimal) to the config
- Set
"hid_scan_mode": false
- Set
"debug": false
- Restart Anki
-
Test it:
- Start a flashcard review
- Press buttons or swipe on your remote
- It should control the cards!
Default Controls
For Touchpad Remotes (Gesture Mode)
- Center button press: Flip card (show answer)
- Swipe LEFT: Again (button 1)
- Swipe UP: Hard (button 2)
- Swipe RIGHT: Good (button 3)
- Swipe DOWN: Easy (button 4)
Customization
All controls can be customized via:
Tools β Add-ons β Remote Driver β Config
See config.md for detailed configuration options.
Troubleshooting
Remote not connecting
- Enable debug mode in config:
"debug": true
- Restart Anki
- Check
remote_driver.log in the addon folder
- Look for connection attempt logs
macOS: "open failed" error
Grant Input Monitoring permission:
- System Settings β Privacy & Security β Input Monitoring β Enable Anki
- Restart your Mac (not just Anki)
Buttons not working
- Enable
"hid_scan_mode": true and "debug": true
- Restart Anki
- Press each button multiple times
- Check
remote_driver.log for the HID sequences
- Copy the sequences to your config as
seq_flip, seq_again, etc.
Gestures too sensitive/insensitive
Adjust gesture_threshold in the config:
- Increase (e.g., 500) if accidental triggers occur
- Decrease (e.g., 200) if swipes don't register
Configuration Examples
Example 1: Keyboard-style remote
{
"use_hid": false,
"use_keyboard": true,
"key_actions": {
"Key_Space": "flip",
"Key_1": "again",
"Key_2": "hard",
"Key_3": "good",
"Key_4": "easy"
}
}
Example 2: Phone app via UDP
{
"use_hid": false,
"use_udp": true,
"udp_host": "0.0.0.0",
"udp_port": 50505
}
Configure your phone app to send hex strings like "06 07 ef 03 a0 06" to your computer's IP on port 50505.
Support
- Report issues on the GitHub repository
- Check the
remote_driver.log file (when debug is enabled) for diagnostic info
- Include your Anki version, OS, and remote model when reporting issues
License
MIT License - Free to use and modify
Credits
Created for Anki users who want hands-free flashcard review.
Anki-Remote-Driver