Warning: If you installed rmapi before (October 1, 2018), you will need to install the latest version, otherwise rmapi will fail to authenticate after the changes in the server API that were introduced in September 28, 2018.
rMAPI is a Go app that allows you to access the ReMarkable Cloud API programmatically.
You can interact with the different API end-points through a shell. However, you can also run commands non-interactively. This may come in handy to script certian workflows such as taking automatic backups or uploading documents programmatically.
Experimental: Apart from the interactive shell, there's some work happing to access the documents through a FUSE system. You can read further at the bottom of this file.
Tutorial on how to directly print to your reMarkable on Mac with rMAPI
Install and build the project:
go get -u github.com/juruen/rmapi
You can download an already built version for either Linux or OSX from releases.
- list files and directories
- move around directories
- download a specific file
- download a directory and all its files and subdiretores recursively
- create a directory
- delete a file or a directory
- move/rename a file or a directory
- upload a specific file
- live syncs
- autocomplete
- globbing
- upload a directory and all its files and subdirectories recursively
Start the shell by running rmapi
Use ls
to list the contents of the current directory. Entries are listed with [d]
if they
are directories, and [f]
if they are files.
Use cd
to change the current directory to any other directory in the hiearchy.
Use put path_to_local_file
to upload a file to the current dirctory.
You can also specify the destination directory:
put book.pdf /books
Use mput path_to_dir
to recursively upload all the local files to that directory.
E.g: upload all the files
mput /Papers
Use get path_to_file
to download a file from the cloud to your local computer.
Use mget path_to_dir
to recursively download all the files in that directory.
E.g: download all the files
mget .
Use mkdir path_to_new_dir
to create a new directory
Use rm directory_or_file
to remove. If it's directory, it needs to be empty in order to be deleted.
You can remove multiple entries at the same time.
Use mv source destination
to move or rename a file or directory.
Use stat entry
to dump its metadata as reported by the Cloud API.
Add the commands you want to execute to the arguments of the binary.
E.g: simple script to download all files from the cloud to your local machine
$ rmapi mget .
rMAPI will set the exit code to 0
if the command succeedes, or 1
if it fails.
We have started to add support to access your rM documents through a FUSE file system.
This support is very alpha and only a few operations are supported by now:
- Mount/umount
- Lookup entry
- Rename
- Rmdir
- Unlink
- Read files
- Write files
- Live update
If you want to give it a go, you can run:
rmapi --fuse-mount mount_point