The reMarkable Hacking Ecosystem

This is part 2/3 in a series "Hacking the reMarkable eInk Tablet."

Summary:

  • The reMarkable 2 is an 18.8*24.6cm (7.4*9.6in) eInk Linux tablet that I use as a daily driver for taking notes, reading books, drawing diagrams, doodling, etc.
  • I'd like to extend my use of the hardware by writing custom software for it.
  • In part 1, I covered the device itself, my use cases and motivations, a primer on getting familiar with the software+hardware.
  • In this post, I cover the the existing reMarkable hacking ecosystem as far as I know it.
  • Part 3 covers a hobby project of mine - a WIP framework for building custom reMarkable apps, with F#

Please visit the first post to learn about and install Toltec, if you haven't already! Most of the software mentioned in this post is distributed via Toltec, the unofficial rM package manager.

Xochitl I/O and extensions

Xochitl is the default software that comes with a reMarkable, meant for reading, writing, doodling, etc. Much/most of the software ecosystem around the rM is focused on Xochitl. Some of those projects are focused around the cloud sync API, reading/writing to it in various ways. Other projects aim to extend the functionality of the rM app itself with some "hacks."

Multi-Purpose Plug-and-Play Apps

There are several multi-purpose plug-and-play commercial apps available. Much of the rM hacking ecosystem assumes a fair amount of technical knowledge, where these should be plug-and-play:

  • eInkpads seems to be the leader in this space, with a few options
  • https://www.remarkable.app
  • https://github.com/furesoft/Slithin
  • http://www.davisr.me/projects/rcu (paid desktop app that manages lots of rM stuff)

I/O against the reMarkable Cloud API

General Purpose

  • There are browser extensions that you can use to 'send' documents and web pages to your rM for reading without eye strain. There's an official extension (I use it daily) for Chrome, and an unofficial extension for Firefox. I haven't looked much in this space; there may be additional ones out there.
  • rmapi: Go app that allows you to access the reMarkable cloud service programmatically (via CLI or Go SDK)
  • rmuploader: Web UI wrapper around `rmapi`
  • astounding: Java-based GUI around `rmapi`
  • reMarkable-typescript: ... self-explanatory by now?
  • reMarkable-Sink
    simple Node-based solution that allows you to paste .pdfs and such into a folder on your PC, automagically syncing those documents to your rM. Powered by `rmapi`
  • pyrmexplorer
  • remarkable-tablet-api
  • ReMarkableAPI
  • rmapy: Python API to access reMarkable cloud service

Specific Exports

Other

Patches to Xochitl

  • ddvk is king in this space; it adds all sorts of little features: [demo video]
  • https://github.com/Barabazs/rM-signature-patch

Custom Templates

when you create a new document on your reMarkable, you can choose from a set of pre-created "templates" with differnt-patterned backgrounds. It's often useful to have additional templates available. To start, I'd recommend the commercial ones on einkpads.com, as well as all listed in the awesome-remarkable github repo. Beyond that, browse etsy or github for additional ones.

Handling the .lines Format

Other

Other projects

I/O between rM and "host" computer

  • share your rM's screen to your host computer with reStream - I use this all the time when in meetings
  • connect to your rM via VNC with either vnsee or rM-vnc-server
  • use your rM as a keyboard and mouse for your 'host' computer with remarkable_keyboard
    (Note: this seems a bit old and unsupported)

Launchers and "visual task managers"

The reMarkable was only meant to run one UI app - Xochitl - and thus doesn't come with any sort of 'launcher' or window manager. These exist to handle such:

Alternate document readers

Other

  • yaft provides an on-screen terminal
    (yaft = "yet another framebuffer terminal")
  • Naturally, developers have ported some classic games to the rM. See chessMarkable, minesweeper, retris, and recrossable
  • harmony: a low latency sketching app with procedural brushes.
  • remarkable-keywriter
  • Alternate OS: Parabola
  • in-device book store with ReBook
    "The missing book store for remarkable"
  • reMarkable-tools
    semi-organized notes and tools for rM.
    most notably, there's some sort of cross-tablet collaboration enabled by some included "hypercard" software, but I've yet to find details or test this myself

Building Your Own Apps

  • If you like working with C++ and QT, you should check out rmkit
  • If you like working with Rust, check out libremarkable
  • If you like .NET, check out either ReMarkable.NET (C# focus) or reMarkable.fs(F# focus)
  • Regardless of your use case, it's worth studying the basics: event-listening, framebuffer manipulation, linux, etc.

Hardware Hacking

My experience here is minimal! There are two things that I'd like to call out, though:

  • beyond the normal-ish USB-C port that's usually only used for SSH and power, there's also a weirder USB-C port. Check it out here: https://remarkablewiki.com/tech/rm2_otg_pogo
  • expanding storage with microsd: http://www.davisr.me/projects/remarkable-microsd

"Part 3: reMarkable.fs"