reMarkable provides a web interface that needs to be turned on to access.
The service can be turned on from the settings page:
As of OS version 126.96.36.199 the device disables the Web Interface setting at every device boot. To many users this may be an obnoxious implementation/flaw as a vast number of community reMarkable scripts rely on the web interface. As the web interface is handled by the xochitl binary, the only way as of now to “fix” this issue is to patch the function in the xochitl binary responsible for setting the web interface.
The webui_invincibility patcher will patch the xochitl binary to prevent the web interface from disabling at boot, although at cost of no longer being able to disable it from the settings menu, but only by setting the
WebInterfaceEnabled property in
false. The patcher also offers an option to undo the patches.
If you don't want to use the app for syncing files to your reMarkable, you can upload and download files via the USB web interface.
If you have curl available (or wget or similar), you can upload and download files via the command line.
chronos@localhost ~/Downloads $ curl 'http://10.11.99.1/upload' -H 'Origin: http://10.11.99.1' -H 'Accept: */*' -H 'Referer: http://10.11.99.1/' -H 'Connection: keep-alive' -F "file=@Get_started_with_reMarkable.pdf;filename=Get_started_with_reMarkable.pdf;type=application/pdf" Upload successfull chronos@localhost ~/Downloads $
To download is a little more complex as you need to find the internal UUID (long hyphenated string of letters and numbers) that the reMarkable internally uses to refer to the file you want. You can see this UUID when you browse the Web UI if you select a file and then hover over the download icon and look at the URL it links to (something like http://10.11.99.1/download/0c50f392-8a96-43ef-b58b-df4f049fb703/placeholder). The other way to get the UUIDs is to look in the filesystem on the device if you have access.
Once you have the UUID, you can get the filename associated using:
chronos@localhost ~/Downloads $ curl -I http://10.11.99.1/download/fd2c4b2c-3849-46c3-bf2d-9c80994cc985/placeholder HTTP/1.1 200 OK Content-Disposition: attachment; filename='Get_started_with_reMarkable.pdf' Content-Length: 4444023 Content-Type: application/pdf Transfer-Encoding: chunked
Unfortunately, the built in webservice is not smart, and so getting the HEAD data like this takes just as long as getting the whole file. I believe this is because it has to allow for those files where it has to render the lines into the file to get the final file size (Content-Length).
You can download the file using:
chronos@localhost ~/Downloads $ curl -o 'Get_started_with_reMarkable.pdf' http://10.11.99.1/download/fd2c4b2c-3849-46c3-bf2d-9c80994cc985/pdf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4339k 100 4339k 0 0 57914 0 0:01:16 0:01:16 --:--:-- 924k