Configuration
All settings are accessible via Settings → Community plugins → Remarkable Synchronizer.
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| Target folder | text | "" | Vault-relative path where output files are saved. Leave empty for vault root. |
| Save images | toggle | true | Save rendered page images |
| Save as PDF | toggle | false | Write one PDF per notebook, beside the page images (imported PDFs: always) |
| Save highlights note | toggle | false | Write a markdown note of text highlighted on the device |
| Save typed text note | toggle | false | Write a markdown note of text typed on the device’s keyboard |
| Image format | dropdown | jpeg | Format for rendered images: JPEG, WebP, or PNG |
| Image quality | slider | 0.85 | Quality for JPEG/WebP (0.1 = smallest, 1.0 = best). Hidden when PNG is selected. |
| Use rmfakecloud | toggle | false | Connect to a self-hosted rmfakecloud server instead of the official cloud |
| Server URL | text | "" | Base URL of your rmfakecloud server (only shown when rmfakecloud is enabled) |
| Automatic sync | toggle | false | Periodically sync all notebooks that need updating in the background |
| Sync interval | slider | 30 | Minutes between automatic syncs, 5–240 (only shown when automatic sync is on) |
Image Formats
- JPEG (default) — lossy compression, small file size, good for handwritten notes
- WebP — lossy compression, smaller than JPEG at equivalent quality
- PNG — lossless, larger files, no quality slider
The quality slider controls the compression level for JPEG and WebP. Lower values produce smaller files, higher values preserve more detail. The slider is hidden when PNG is selected since PNG is always lossless.
Save as PDF writes one PDF per notebook, containing every page that has content. It is independent of Save images, so you can enable either, both, or neither.
The PDF is written beside the folder holding the page images, so both can be produced without colliding:
reMarkable/
Work/
Meeting.pdf <- Save as PDF
Meeting/
Meeting-P001.jpeg <- Save images
Meeting-P002.jpeg
Pages are sized from the rendered image at 226 DPI, which matches the physical size of the reMarkable screen (about 6.2 x 8.3 inches). A page whose content scrolled past the bottom of the device viewport produces a taller PDF page rather than a cropped one.
A PDF cannot store WebP. When the image format is WebP, pages are embedded in the PDF as JPEG at the configured quality, while the loose image files stay WebP.
Annotated PDFs and EPUBs
If the document came from a PDF you imported onto your reMarkable, the plugin always writes the original document through unchanged and adds an annotated copy beside it, whether Save as PDF is on or not. Page images are never assembled into a PDF for such a document. Save images still adds page images if you want them, but they contain your ink only, never the text of the original.
reMarkable/
Papers/
Some paper.pdf <- the original, untouched
Some paper (annotated).pdf <- the same document with your ink drawn on it
The annotated copy keeps the original’s text layer, so it stays selectable and searchable, and every page survives even if you only annotated one. Your handwriting is drawn as vector paths, not flattened into an image, so it stays sharp at any zoom.
Pages you inserted on the device have no counterpart in the original and are left out of the annotated copy.
PDFs from library databases and publishers are often locked to restrict copying and printing. They open without a password, and the plugin annotates them like any other file. A PDF that asks for a password when you open it cannot be annotated (the tablet cannot open it either), and in that case the original is still written to your vault with a notice saying why. The annotated copy of a locked PDF is written without the lock, so it no longer restricts copying or printing; the original is written through unchanged, lock included.
If none of your ink can be matched to a page of the original (for example, you only wrote on pages you inserted), no annotated copy is written and a notice says so. The original is still written to your vault.
Documents synced before a fix to annotation are only re-annotated when they next change on the device. To refresh one now, sync it by hand (its sync button in the panel, or Sync a notebook), which always re-runs.
Very large source documents (over 80 MB) are not annotated: the original, the parsed copy and the output would all be in memory at once, which is a real risk on phones. The original is still written to your vault.
EPUBs are written through unchanged (as .epub) but not annotated, because the device lays them out itself and there are no fixed pages to draw on.
Generated PDFs deliberately carry no creation or modification date. Re-syncing an unchanged notebook produces exactly the same bytes, and the plugin skips the write entirely, so nothing churns if you sync your vault with Obsidian Sync, Git or Dropbox.
Highlights
If you highlight text on the device (selecting words rather than drawing over them with the highlighter pen), those become real PDF highlight annotations in the annotated copy. You can select them, see the text in a reader’s comment pane, and extract them like any other annotation.
Highlights are drawn in the device’s own highlighter colours: a custom colour as recorded, a palette colour (yellow, green, pink, grey) in the lighter shade the device uses for highlights. A highlight is never black, so if a file records black for one (seen on a reMarkable 2, where yellow highlights came out as black bars), the plugin draws it in the default yellow instead.
Enable Save highlights note to also get a markdown note listing them:
Some paper (highlights).md
Each highlight appears as a quote under its page number, with a link back to the annotated PDF. The note is only created for documents that actually have highlights, so enabling it will not scatter empty files through your vault.
The toggle controls the note only. Highlights are embedded in the annotated PDF either way, because that is part of reproducing the document rather than an extra output. The text is exactly what the device recorded, not reconstructed from the shape of your ink.
One quirk worth knowing: the device stores highlighted text with the original line breaks removed, so words from the end and start of consecutive lines can run together. Obvious cases are repaired, but joins like “Backupservers” are left alone, because “Backups ervers” is an equally valid reading and guessing wrong would corrupt the text.
Typed text
Text you type on a keyboard is not ink and is not part of the page image. Enable Save typed text note to have it written into a markdown note as real text, so Obsidian can search it and any [[links]] you typed become real links:
Some notebook (text).md
This works for any document — regular notebooks included, not only imported PDFs. Headings, bullets, checkboxes and numbered lists keep their structure in the note.
Handwriting is not included. It is stored as strokes and stays as ink in the page image. The device’s own “Convert to text” is a share action rather than an edit, so the converted text is not written back into the page and there is nothing in the file to read.
Sorting the panel
The panel’s Sort picker controls the order of notebooks within each folder:
| Option | Order |
|---|---|
| Recently modified | newest first (default) |
| Oldest modified | oldest first |
| Name (A–Z) | alphabetical |
| Name (Z–A) | reverse alphabetical |
Names compare numerically, so “Notebook 2” comes before “Notebook 10” rather than after it. Your choice is remembered between sessions.
Folder order is unaffected: the top-level group stays first, and the rest stay alphabetical.
Automatic sync
When Automatic sync is enabled, the plugin periodically syncs all notebooks that need updating (same rules as the panel’s Sync all button). Runs are skipped while disconnected and when a sync is already in progress.
A notebook that fails to sync in the background is retried less often each time it fails again (every run, then every 2, 4, 8, up to every 16 runs), and you get one notice about it per session after its second failure in a row. It is retried at once when it changes on the device. Syncing it from the panel always tries right away.
What “needs updating” means. A notebook needs updating when your reMarkable has changed it since the last time the plugin synced it, or when the plugin has never synced it. The comparison is made entirely with reMarkable’s own timestamps, so the clock on the device running Obsidian does not affect it.
Note that reMarkable updates a notebook’s timestamp when you merely open it, not only when you write in it. That can cause a notebook to be fetched again even though nothing in it changed. Your vault files are left alone when this happens, because the plugin compares the generated output against what is already on disk and skips writing when they are identical.
Each run also cleans up sync state for notebooks that were deleted on your reMarkable, but only when it was able to read the complete list from the cloud. If the connection fails or part of the list cannot be read, nothing is cleaned up, because an unreachable cloud looks the same as an empty one. Files already saved in your vault are never deleted either way.
Authentication
The authentication section shows your connection status and provides connect/disconnect buttons.
The device token is stored in Obsidian’s secret storage, which is local to each device and never part of the vault. The plugin’s data.json only holds the secret’s name (Device token secret; you can point it at another secret if you stored the token under a different name). The short-lived user token is kept in memory and renewed from the device token when needed.
Upgrading from 2.3 or earlier: the tokens used to be in data.json, which syncs with your vault. Every device moves the device token into its own secret storage on its next start, so you stay connected everywhere without doing anything. The plain-text copy stays in data.json for 60 days so devices you open less often can migrate too, then it is removed. Once all your devices run this version, you can remove it immediately with Remove plain-text copy now.
Paired, but not on this device: if a device starts with no token in its secret storage and no plain-text copy left, the status reads “Paired with reMarkable cloud, but not on this device”. Select Connect once on that device. Your other devices are not affected. Disconnect signs out every device that shares the vault, as before.
If you used an earlier desktop version, your tokens were in ~/.remarkable-sync/token.json. They are imported into secret storage automatically the first time each vault runs this version. The old file is left in place because it is shared by all your vaults — once they have all been updated, remove it with the Legacy token file → Remove button in the settings tab.
rmfakecloud
To use a self-hosted rmfakecloud server:
- Enable “Use rmfakecloud” in the Cloud settings section
- Enter your server URL (e.g.,
https://cloud.example.comorhttp://localhost:3000) - Disconnect and reconnect if you were previously connected to a different cloud
The server URL must be a valid HTTP or HTTPS URL. When enabled, all authentication and sync requests go to your rmfakecloud server instead of the official reMarkable cloud.
Note: Tokens are not transferable between clouds. Switching between official cloud and rmfakecloud requires disconnecting and reconnecting.
About
The about section includes links to follow the developer and support the project.