File Sync API for reMarkable Tablet
TLDR; I got a new pricy gadget and I wrote some software for it.
I got a new toy: the reMarkable ePaper Tablet.
When I first saw the kickstarter campaign, I immediately wanted it, but I was unsure if they would ever deliver so I didn't back it. I figured when they're successful I can just regularly buy it. It's a decision I regret. Because the reMarkable now retails for 629 EUR while the early preorders started at $379. So expensive! So I tiptoed around the decision to buy one for weeks. In the end I bought one on eBay for about 500 EUR.
The video above gives you a pretty good overview on the pros and cons of the tablet. And before you ask:
no, it does not do OCR on your notes1).
So why would I buy a very limited device for a price that would buy me a more powerful Android tablet? Because this is what I always wanted. Ever since I saw the very first e-Paper displays. A device that I can just “print” anything to and then scribble on that. A device that feels like paper, but with easy digital archiving and no media breaks. And in that, the reMarkable absolutely delivers.
So what about the software? As the video mentions, there are some kinks in the software on the tablet it self, but the reMarkable people already fixed a few in the update that came out a couple of weeks ago. But what is really good about this tablet is how open it is. It is running Linux, has a running SSH daemon by default and the root password can be accessed from the menu. People already started to write their own software and sharing tips on how to customize the device in a wiki.
One thing nobody had looked at so far, was how the cloud syncing work. As mentioned in the video, the tablet syncs files between itself and the mobile and desktop apps. It's the easiest way to get PDFs on the device. However those desktop apps are somewhat limited.
So I went ahead and tried to figure out how the syncing actually works. Luckily it turns out to be a relatively simple, HTTP and JSON based API. So over the last few days I documented my findings and created a PHP library to talk to the API.
The repository also includes a command line client that can list, download, upload and delete files on the tablet through the sync API.
Eg. the following would copy a PDF from my home directory into the specified folder on the reMarkable.
./remarkable.php ~/mypdf.pdf /work/Projects
The nice thing about using the sync API is that I don't need to be in proximity to the tablet. Eg. right now it's on my desk at the office but I can still easily push documents to it from home.
It would also be easy to integrate pushing documents to the tablet into existing web apps. How about a DokuWiki button that automatically creates a PDF from the current page and puts it on the reMarkable? Or a service that let's you forward emails to your tablet?
I currently have no concrete plans other than using the command line tool, but I do hope my work inspires and helps others to do more awesome things.