MCPcopy Index your code
hub / github.com/chopikus/rm-exporter

github.com/chopikus/rm-exporter @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
70 symbols 166 edges 15 files 10 documented · 14% updated 6mo agov0.3.0 · 2026-01-07★ 442 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

rm-exporter

https://github.com/user-attachments/assets/0996b7c3-85a7-45ea-90d7-cfabd989c5dc

As you might know, reMarkable supports exporting notes locally through the USB connection.

Unfortunately, the default local export has a few flaws: * Large notes (10MB+) often can't be exported, the UI doesn't wait for long enough for a note to download; * Downloading a folder is not possible; only notes one-by-one.

This tool aims to fix those problems.

Features

  • Supports exporting as many folders & notes as you want;
  • Can download both .pdf and .rmdoc;
  • Retries the download from the last failed note;
  • Waits for large notes long enough;
  • Doesn't require reMarkable account or internet connection;
  • Works with out of the box reMarkable software;
  • Has a nice GUI.

Usage

Releases for Windows/MacOS/Linux are available on the 'Releases' tab of the repository.

The tool is built with wailsv2. The UI is implemented in Typescript/Svelte, file downloading itself is done in Golang.

Supported rM software version

Around 3.10+, around that version the local server requests got updated.

Tested on Version 3.16.2.3 on reMarkable 2.

Steps before running the rm-exporter

  • Enable USB connection in the Storage settings. Without the permission the app can't find the tablet;
  • For long exports with large number of files, turn off Sleep Mode in the Battery settings. For some reason the local export doesn't prevent the tablet from going to sleep.

Building steps

  1. Install wails v2.
  2. Clone the project
  3. wails build

Core symbols most depended-on inside this repo

Select
called by 18
backend/file_selection.go
normalize
called by 4
backend/paths.go
GetCheckedItems
called by 3
backend/file_selection.go
getTabletPath
called by 2
backend/rm_reader.go
IsIpValid
called by 2
backend/ip_validation.go
initPaths
called by 2
backend/paths.go
getFilePathUnique
called by 2
backend/paths.go
getFilePath
called by 2
backend/paths.go

Shape

Method 37
Function 24
Struct 9

Languages

Go100%

Modules by API surface

app.go17 symbols
backend/rm_reader.go12 symbols
backend/file_selection_test.go11 symbols
backend/file_selection.go11 symbols
backend/rm_export.go8 symbols
backend/paths.go5 symbols
backend/paths_test.go4 symbols
main.go1 symbols
backend/ip_validation.go1 symbols

For agents

$ claude mcp add rm-exporter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page