GP
gpcarlos/zotero-reMarkable-sync
Synchronize all the .pdf files in your Zotero library with your reMarkable device
zotero - reMarkable Synchronization
Synchronize all the .pdf files in your Zotero library with your reMarkable device.
How does it work?
- Fetch files from Zotero
- Fetch files from reMarkable
- Compare with the last sync files stored in
~/.zot_rm_sync/<dir-name> - Pull changes from Zotero (add new files and remove deleted files)
- Push changes to reMarkable (add new files and remove deleted files)
- Pull changes from reMarkable (remove deleted files)
- Push changes to Zotero (remove deleted files)
Note:
- New files are expected to be added to Zotero only. Files added manually to the reMarkable
/<dir-name>directory will be ignored. - reMarkable annotations are not saved in Zotero
Requirements
Tested on Python 3.6
pip install -r requirements.txtAuthorization
reMarkable
Get a Security Code and run authorize_rmapy.py
python authorize_rmapy.py --security-code <security-code>Zotero
Get your Zotero Library ID and Zotero API Key
Use
Initialization
python sync.py --zot-library-id/-l <zot-library-id> --zot-api-key/-k <zot-api-key> --directory/-d <dir-name> --initialize/-iniSynchronization
python sync.py --zot-library-id/-l <zot-library-id> --zot-api-key/-k <zot-api-key> --directory/-d <dir-name> [--quiet/-q]Features
- Download .pdf files from the Zotero Library
- Upload .pdf files to reMarkable
- Maintain directory structure
- Prevent duplicate uploads and downloads
- Delete files from reMarkable if they are deleted in the Zotero library
- Support more file extensions like .epub
- Update files in Zotero Library with reMarkable annotations
Thanks to @urschrei and @subutux for the fantastic APIs
On this page
Languages
Python100.0%
MIT License
Created January 26, 2021
Updated August 25, 2025
