Kobo Wi-Fi Remote is a remote control/page turner for Kobo e-readers. It installs a server on your device that can record and replay touchscreen inputs via a web interface. It is not safe to use on public Wi-Fi networks.
It should work on any Kobo e-reader released between 2011 and July 2024, but is only actively tested on a Glo and Sage with recent firmware.
If the latest version doesn't work on your device, try version 0.1.1. That's more generic in how it functions, but is slower and has fewer features.
- Turn pages from a web browser with a simple interface designed for smartphones and users with limited dexterity.
- Keyboard shortcuts for use with a computer.
- Compatible with the KoboPageTurner Android app (supports some Bluetooth devices or the volume keys).
- Custom actions (e.g. adjust the brightness).
- A NickelMenu entry and KOReader plugin for toggling the server.
- Take screenshots using a web browser or NickelMenu.
- Trigger actions with a GET request -- use with a DIY hardware remote or your smart watch
- Turn pages automatically at a set interval.
There are some screenshots of the web interface in the thread on MobileRead.
- Perform input anywhere on the e-reader's screen by using a phone as a trackpad or with a mouse & keyboard (see below).
- Trigger actions with voice commands. This only works on desktop and perhaps rooted Android devices and requires a Chromium-based browser. See this comment and the feature's page for details.
wifiremote.mp4
- Download the latest release and extract the
.zip
file. - Connect your e-reader to your computer with a USB cable and browse its storage.
- Set your computer to show hidden files.
- Copy the
KoboRoot.tgz
file into the hidden.kobo
directory on your e-reader. - Safely eject your e-reader then disconnect the USB cable. Don't touch the power button.
- Wait for your e-reader to automatically install the package and reboot itself.
- Connect your e-reader to your Wi-Fi network. If using a smartphone as the remote, you can use the phone's hotspot.
- Once connected, the e-reader's IP address will be displayed on screen (also in
More > Settings > Device Information
). - Enter the IP address in a web browser and go through the initial setup.
Warning: installing this will enable Kobo's ForceWifiOn setting, which drains the battery quicker. You can still manually disable Wi-Fi when not using the remote if this is a concern, and ForceWifiOn can be disabled in the web interface (under Developer Settings).
- Extract the
Uninstaller.zip
file included with the release. - Follow steps 2-6 of the installation process.
If you have shell access you can also just run /opt/wifiremote/bin/wifiremote uninstall
(use --dry-run
to check what will be removed).
Scroll to the bottom of the homepage (at your e-reader's IP address) and press Troubleshooting. There you'll find instructions for generating a log file and reporting issues.
There are two config files that live in .adds/wifiremote/
by default. The user-config.toml
can be edited via the Edit Config
button on the home screen. This method is recommended as it will validate any changes. You can modify the colors of the buttons, change settings for some features, and disable or re-order the buttons on the home screen. Enabling the prompt_fullscreen
option helps to prevent accidentally navigating away from the page, but it probably won't work on iPhones due to browser limitations. Most settings in app-config.toml
should not be changed by users, and must be edited manually with a text editor. Of note are allow_remote_restart
(default: true
) and allow_remote_exit
(default: false
) for enabling the /exit
and /restart
endpoints.
This experimental feature allows you to perform input anywhere on the e-reader with a mouse and keyboard or by using a phone's touchscreen as a trackpad. It's intended for when the e-reader is mounted somewhere a user is unable to easily reach, so they can still e.g. use the dictionary. You can enable it for the page turner and remote control in their respective sections of the user config file. Then it can be started by long-pressing anywhere on the screen, or with a keyboard (default: KeyE
). It can also be started more efficiently by swiping in the direction you want the cursor to move, but this is disabled by default since it might not work nicely on all browsers. If starting with a swipe, you'll probably want to enable prompt_fullscreen
, and, depending on the browser, swipe_prevent_default
.
It works by drawing a cursor on the e-reader's screen using FBInk. You can change how often the cursor updates with the cursor_min_refresh
, move_send_wait
and final_move_send_delay
millisecond values. The defaults are fairly conservative for broad compatibility. On some devices you could reduce them for a more responsive cursor (at the cost of higher CPU usage). Disabling reload_background_after_input
might also improve responsiveness, but can cause visual artifacts on the screen.
This feature might not work properly on all devices or in all rotations. If input is triggered in a different place to the cursor, the right combination of the override
settings might make it work properly for a specific rotation.
Requires cargo, cross and coreutils
Create a KoboRoot.tgz
:
./build.sh
Skip the KoboRoot.tgz
, transfer the built files to a Kobo via rsync/ssh, and restart the server:
KOBO_HOST=192.168.1.10 ./build.sh deploy
Create a KoboRoot.tgz
, copy it with scp, and reboot the device:
KOBO_HOST=192.168.1.10 ./build.sh install