MCPcopy Index your code
hub / github.com/ddvk/rmfakecloud

github.com/ddvk/rmfakecloud @v0.0.31

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.31 ↗ · + Follow
764 symbols 2,234 edges 118 files 207 documented · 27% updated 43d agov0.0.31 · 2026-05-09★ 1,27222 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

rmfakecloud

This is a replacement of the cloud, in case you want to sync/backup your files and have full control of the hosting environment.

See the project documentation for setup and configuration.

Supported Devices

Device Is Supported
reMarkable 1
reMarkable 2
reMarkable Paper Pro
reMarkable Paper Pro Move

The current release of rmfakecloud supports file synchronization up to reMarkable software 3.27.1. Newer releases have not been tested yet.

See the documentation for how to setup your device to use rmfakecloud.

Feature Parity With Official Cloud

Features Supported Notes
File synchronization (1.0)
File synchronization (1.5, 2, 3, 4)
Send document by email
Handwriting recognition
Handwriting search
Screen sharing
Storage integrations
Integration with Dropbox 🟡 WIP
Integration with Google Drive 🟡 WIP
Integration with OneDrive
Integration with WebDAV Nextcloud, Owncloud, ...
Integration with FTP
Messaging integrations
Messaging integration through webhook
Calendar integration ICS currently supported
Messaging integration to Slack 🟡 Not directly, use a webhook with zapier/make/n8n
Archive document to cloud 🟡 It works but the information is not saved
Passcode (PIN) reset reMarkable 1 / reMarkable 2 only
Document rendering in web interface WIP

Breaking Changes

  • For SW >= 3.15 STORAGE_URL should not be set (or only https://some.ho.st without a port should be used)
  • after v0.0.3 the files in /data will have to be manually moved to the user that will be created
  • with v0.0.5 the new diff sync15 is added as an option, in order to use it modify the user with setuser -u user -s or modify the profile and add sync15:true a full resync will be needed (the tablet will do it), the old files are kept as they were and everything is put in a new directory

Development

run ./dev.sh which should start the UI and backend

Caveats/ WARNING

  • (applies when you don't have security, version <= 0.0.3) connecting to the api will delete all your files, unless you mark them as not synced synced:false prior to syncing (advisable just to disconnect, reconnect the cloud)
  • if you delete files from the users directory on the host, on the next sync those will be deleted from the device
  • if you delete the whole user directory (by mistake) on the host, you should disconnect the cloud from the device and reconnect it
  • after an official update, the proxy and hosts file changes will be removed, the tablet will automatically disconnect from the cloud (by sending an invalid token to the official cloud and getting 403) just reinstall the proxy and reconnect to your cloud

Troubleshooting

  • check the connectivity between the tablet and the host: ping my.remarkable.com (should be localhost) ping local.remarkable.com (should be localhost) ping thehostpc wget -qO- http://host:3000 (or relevant ports, should get Working...) wget -qO- https://local.appspot.com (should get Working...)

  • check that the proxy is running and certs are installed: echo Q | openssl s_client -connect localhost:443 -verify_hostname local.appspot.com -CAfile /etc/ssl/certs/ca-certificates.crt 2>&1 | grep Verify You should see: Verify return code: 0 (ok)

  • if both (host and tablet) are on a wifi make sure "Client Isolation" is not activated on the AP

  • check if the proxy is configured correctly ``` systemctl status proxy

    or

    journalctl -u proxy `` - check whether the CA cert was installed correctly when doingupdate-ca-certificatesthere should have been1 added` check the logs

  • check xochitls's logs, stop the service, start manually with more logging ``` systemctl stop xochitl QT_LOGGING_RULES=rm.network.*=true xochitl | grep -A3 QUrl

    if you see *SSL Handshake failed* then something is wrong with the certs - check sync logs journalctl -u rm-sync ```

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 360
Function 264
Struct 112
Interface 20
Class 4
TypeAlias 4

Languages

Go81%
TypeScript19%

Modules by API surface

internal/app/handlers.go54 symbols
internal/mqtt/broker.go43 symbols
internal/ui/ui.go38 symbols
internal/ui/handlers.go32 symbols
internal/messages/messages.go30 symbols
ui/src/services/api.service.js25 symbols
internal/storage/storage.go24 symbols
internal/screenshare/rooms.go20 symbols
internal/ui/viewmodel/models.go19 symbols
internal/integrations/integrations.go18 symbols
internal/storage/fs/blobstore.go17 symbols
internal/storage/models/hashtree.go16 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page