{"id":17027107,"url":"https://github.com/lucasrla/remarkable-utils","last_synced_at":"2025-07-22T06:05:32.586Z","repository":{"id":41653347,"uuid":"284343255","full_name":"lucasrla/remarkable-utils","owner":"lucasrla","description":"SSH and rsync for reMarkable tablets","archived":false,"fork":false,"pushed_at":"2022-10-21T02:07:27.000Z","size":31,"stargazers_count":37,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-12T11:57:58.276Z","etag":null,"topics":["cronjob","crontab","remarkable-tablet","rsync","rsync-backup","ssh","ssh-config","ssh-copy-id"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasrla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-01T21:41:21.000Z","updated_at":"2025-02-22T22:39:43.000Z","dependencies_parsed_at":"2023-01-20T01:48:36.870Z","dependency_job_id":null,"html_url":"https://github.com/lucasrla/remarkable-utils","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lucasrla/remarkable-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrla%2Fremarkable-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrla%2Fremarkable-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrla%2Fremarkable-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrla%2Fremarkable-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasrla","download_url":"https://codeload.github.com/lucasrla/remarkable-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrla%2Fremarkable-utils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266437369,"owners_count":23928235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cronjob","crontab","remarkable-tablet","rsync","rsync-backup","ssh","ssh-config","ssh-copy-id"],"created_at":"2024-10-14T07:46:05.819Z","updated_at":"2025-07-22T06:05:32.561Z","avatar_url":"https://github.com/lucasrla.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# reMarkable command-line utils\n\n- [reMarkable command-line utils](#remarkable-command-line-utils)\n  - [Clone this repo](#clone-this-repo)\n  - [SSH setup](#ssh-setup)\n    - [Tweak: auto sleep off](#tweak-auto-sleep-off)\n  - [Install remarkable_entware](#install-remarkable_entware)\n  - [Install rsync via opkg](#install-rsync-via-opkg)\n  - [Use rsync and crontab to run backups automatically](#use-rsync-and-crontab-to-run-backups-automatically)\n  - [Re-enable remarkable_entware after a reMarkable software update](#re-enable-remarkable_entware-after-a-remarkable-software-update)\n- [Credits and Acknowledgements](#credits-and-acknowledgements)\n- [Disclaimers](#disclaimers)\n\n## Clone this repo\n\n```sh\ngit clone --recursive https://github.com/lucasrla/remarkable-utils.git\n# --recursive in order to include the remarkable_entware submodule\n\n# if you need a refresher, see: https://www.vogella.com/tutorials/GitSubmodules/article.html\n```\n\n## SSH setup\n\n1. On your reMarkable tablet, go to `Menu \u003e Settings \u003e Help`, then under `About` tap on `Copyrights and licenses`. In `General information`, right after the section titled \"GPLv3 Compliance\", there will be the username (`root`), password and IP addresses needed for `SSH`.\n\n2. Add the following lines to your `~/.ssh/config`\n\n```conf\nHost remarkable\n  Hostname IP_ADDRESS_YOU_HAVE_JUST_FOUND\n  User root\n  ForwardX11 no\n  ForwardAgent no\n  # reMarkable's SSH is an old version of Dropbear (v2019.78), which seems to use an algorithm considered weak nowadays (Oct 2022)\n  # https://matt.ucc.asn.au/dropbear/dropbear.html\n  PubkeyAcceptedAlgorithms +ssh-rsa\n  HostkeyAlgorithms +ssh-rsa  \n  # h/t: https://stackoverflow.com/questions/69875520/unable-to-negotiate-with-40-74-28-9-port-22-no-matching-host-key-type-found-th\n```\n\n3. Have a public key ready at `~/.ssh/`\n\n4. Run `ssh-copy-id remarkable`\n\n5. Type your device password. You should see an output similar to:\n\n```sh\n/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: \"/Users/$USER/.ssh/id_rsa.pub\"\n...\nThis key is not known by any other names.\nAre you sure you want to continue connecting (yes/no/[fingerprint])? y\nPlease type 'yes', 'no' or the fingerprint: yes\n...\n/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed\n/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys\nroot@192.168.XXX.XXX\\'s password:\n\nNumber of key(s) added:        1.\n\nNow try logging into the machine, with:   \"ssh 'remarkable'\"\nand check to make sure that only the key(s) you wanted were added.\n```\n\nNote: For some reason, `ssh-copy-id` is not working with my reMarkable 2 (`2.15.0.1067`). I had to add my public key to `/home/root/.ssh/authorized_keys` manually.\n\n6. Let's test it out. Type `ssh remarkable`:\n\n```sh\nssh remarkable\n  ｒｅＭａｒｋａｂｌｅ\n  ╺━┓┏━╸┏━┓┏━┓   ┏━╸┏━┓┏━┓╻ ╻╻╺┳╸┏━┓┏━┓\n  ┏━┛┣╸ ┣┳┛┃ ┃   ┃╺┓┣┳┛┣━┫┃┏┛┃ ┃ ┣━┫┗━┓\n  ┗━╸┗━╸╹┗╸┗━┛   ┗━┛╹┗╸╹ ╹┗┛ ╹ ╹ ╹ ╹┗━┛\n  reMarkable: ~/\n```\n\nVoilà! We're in. \n\n(Type `exit` to get out.)\n\n### Tweak: auto sleep off\n\nOn your device, navigate to `Menu \u003e Settings \u003e Battery` and then turn `Auto sleep` off to prevent the device from sleeping unintentedly while we're SSH'ing into it.\n\n## Install remarkable_entware\n\nUse the awesome [reMarkable Entware](https://github.com/Evidlo/remarkable_entware) scripts to install `rsync` and other utilities to your reMarkable device:\n\n```sh\n# On your computer's shell\nscp remarkable_entware/install.sh remarkable:\n\nssh remarkable\n\n./install.sh\n  ...\n  Configuring entware-upgrade.\n  Upgrade operations are not required.\n  Configuring opkg.\n  Configuring zoneinfo-europe.\n  Configuring zoneinfo-asia.\n  Configuring libstdcpp.\n  Configuring entware-release.\n  Configuring findutils.\n  Configuring entware-opt.\n\n  Info: Congratulations! Entware has been installed.\n  ...\n\n# Add /opt/bin \u0026 /opt/sbin to PATH\necho PATH=$PATH:/opt/bin:/opt/sbin \u003e\u003e ~/.bashrc\n\n# Check\ncat ~/.bashrc\n  ...\n  PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/bin:/opt/sbin\n\n# Double check\nsource ~/.bashrc\necho $PATH\n  /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/bin:/opt/sbin\n\n# Feel free to exit now\nexit\n```\n\n## Install rsync via opkg\n\n```sh\n# On your computer\nssh remarkable\n\n# Inside your reMarkable\nopkg install rsync\n  ...\n\nrsync --version\n  rsync  version 3.1.3  protocol version 31\n  Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.\n  Web site: http://rsync.samba.org/\n  Capabilities:\n      64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,\n      no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,\n      append, ACLs, xattrs, iconv, symtimes, prealloc\n\n  rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you\n  are welcome to redistribute it under certain conditions.  See the GNU\n  General Public Licence for details.\n```\n\nHere are the packages that are available via `opkg`: [http://bin.entware.net/armv7sf-k3.2/Packages.html](http://bin.entware.net/armv7sf-k3.2/Packages.html).\n\nFor a collection of community-maintained, reMarkable-specific `opkg` packages, check out [toltec-dev.org/stable](https://toltec-dev.org/stable/) and [github.com/toltec-dev/toltec](https://github.com/toltec-dev/toltec).\n\n## Use rsync and crontab to run backups automatically (from reMarkable device to computer)\n\nFirst, make sure you have `rsync` installed on your computer and that its protocol version is compatible with the one you have just installed in your reMarkable.\n\n```sh\n# On your computer\n\n# Edit rsync-remarkable.TEMPLATE.sh according to your needs\n\n# Save it as rsync-remarkable.sh\n\n# Test it out\n# You might need to `mkdir` and `touch` some dirs and files\nsource rsync-remarkable.sh\n```\n\nThen, add it to your `crontab`:\n\n```conf\n# On your computer\ncrontab -e\n\n# Add a new line, like\n0 9 * * * source /PATH/TO/rsync-remarkable.sh \u003e\u003e /PATH/TO/rsync-remarkable.log 2\u003e\u00261\n\n# If you need a refresher: https://crontab.guru\n```\n\n## Re-enable remarkable_entware after a reMarkable software update\n\n```sh\n# On your computer\nscp remarkable_entware/reenable.sh remarkable:\n\nssh remarkable\n\n./reenable.sh\n  Created symlink /etc/systemd/system/local-fs.target.wants/opt.mount → /etc/systemd/system/opt.mount.\n\n  Info: Entware has been re-enabled.\n\n# Double check if rsync is still there\nrsync --version\n  rsync  version 3.1.3  protocol version 31\n  Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.\n  Web site: http://rsync.samba.org/\n  Capabilities:\n      64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,\n      no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,\n      append, ACLs, xattrs, iconv, symtimes, prealloc\n\n  rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you\n  are welcome to redistribute it under certain conditions.  See the GNU\n  General Public Licence for details.\n```\n\n# Credits and Acknowledgements\n\n- The team who wrote and maintains [Entware](https://github.com/Entware/Entware)\n\n- [Evan Widloski](http://evan.widloski.com) who wrote [reMarkable Entware](https://github.com/Evidlo/remarkable_entware)\n\n- [JBB](https://jbbgameich.github.io) who put together [rsync-static](https://github.com/JBBgameich/rsync-static) and started the [reddit thread about rsync](https://www.reddit.com/r/RemarkableTablet/comments/atkrs7/rsync_on_remarkable/) that got me going\n\nFor more reMarkable resources, check out the great [awesome-reMarkable](https://github.com/reHackable/awesome-reMarkable) and [remarkablewiki.com](https://remarkablewiki.com/).\n\n# Disclaimers\n\nThis is free open source software from hobby project of an enthusiastic reMarkable user.\n\nThere is no warranty whatsoever. Use it at your own risk.\n\n\u003e The author(s) and contributor(s) are not associated with reMarkable AS, Norway. reMarkable is a registered trademark of reMarkable AS in some countries. Please see https://remarkable.com for their products.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasrla%2Fremarkable-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasrla%2Fremarkable-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasrla%2Fremarkable-utils/lists"}