How to make a custom template for the Remarkable 2
Recently I decided I wanted to make a custom template to use on my reMarkable 2. I eventually figured out how to do this, but whilst I found some useful guides online, all of them were slightly misleading or unhelpful in different ways – probably due to changes over time. This guide is for anyone else wanting to give it a shot in 2025.
The tl;dr
The reMarkables are built on Linux, and the templates are SVG files in a specific directory. Adding your own template is probably easier than you expected:
- create an SVG file for your template
- connect to your reMarkable using SSH
- copy your template to the
templatesdirectory - update the
templates.jsonfile so your template appears in the listing - reboot the reMarkable
I haven't tried it on Windows, but apparently Windows has an SSH terminal and also scp so you should be able to follow this same process whether you have a computer running Linux, MacOS, any other Unix-based system, or Microsoft Windows.
You will need a computer, software for creating SVG graphics, and a little confidence.
Caveats
It's possible you could brick your reMarkable if you mess this up really badly. Always make sure you have backed up your files before doing anything in reMarkable's file system.
I haven't been using custom templates for long enough to know for sure, but others have suggested that when your reMarkable software is next updated, any custom templates may be deleted. Make sure you have backups of your templates as well!
Finally, this is what worked for me on a reMarkable 2 running the latest operating software in July 2025. Future system updates may change the way this works.
Step 1 - create your template
Older guides for making custom templates, like this one were helpful for me to understand the basics of templates, but it seems that in the past templates were .png files, whereas recently they changed to SVG.
To create a template you will need something to create SVG graphics. I use Affinity Designer, but you could try Inkscape, Adobe Illustrator, or Canva. The reMarkable 2 screen size is 1872px x 1404px so although SVGs will scale proportionally, for best results make your file match that size.
Remember that your reMarkable 2 will only display in black, white, and grey. If your design doesn't quite work the first time, you can play around with it and reload it, so you can experiment a little until you get the design that suits your needs.
Once you're finished, save the template somewhere you can find it easily on your computer, as a .svg file.
Step 2 - connect to your reMarkable via SSH
To access the operating system for your reMarkable, you will need to connect using Secure Shell (SSH). For this, you need two pieces of information about your reMarkable: the IP address, and the password. From the main menu (the hamburger icon at top left) navigate to Settings - Help - Copyrights and licenses. At the bottom of the first page in this section you will find your password in bold type, and a series of IP addresses. The second (IPv4) address is the one you are looking for. This will be a private IP address starting with 10. If your reMarkable is connected to WiFi, you can use SSH over the same WiFi network. Otherwise, connect via your reMarkable's USB power/data cable. Either way, ensure that your reMarkable remains awake whilst you are connected, otherwise your session may hang.
Open a terminal on your computer (Terminal on Mac and Linux desktop, CMD.exe or PowerShell on Windows). You will be logging in as the user called root. This is a superuser on Linux machines so take care - with great power comes great responsibility. You should be able to log in using this command (where xxx.xxx.xxx.xxx is your IP address):
ssh root@xxx.xxx.xxx.xxx
Your terminal will then ask for a password, which you should type in, and then press Enter - the quotation marks are not part of the password. If all goes well, you should see something like this:
reMarkable
╺━┓┏━╸┏━┓┏━┓ ┏━┓╻ ╻┏━╸┏━┓┏━┓
┏━┛┣╸ ┣┳┛┃ ┃ ┗━┓┃ ┃┃╺┓┣━┫┣┳┛
┗━╸┗━╸╹┗╸┗━┛ ┗━┛┗━┛┗━┛╹ ╹╹┗╸
reMarkable: ~/
~ hacker voice ~ You're in 😎.
Step 3 - copy your template to the reMarkable
At this point you should pause to ensure that you know the filepath to the template path on your computer. If you saved it to your desktop (not a great place for long term storage, but convenient for quick operations like this) it will be something like ~/Desktop/my_custom_template.svg. We are now going to create a special subdirectory for your custom template/s, and copy your file across.
In your terminal session you should still be logged in to the reMarkable. The templates are all stored in the /usr/share/remarkable/templates directory. To create a new subdirectory, we use the mkdir command, like this:
mkdir /usr/share/remarkable/templates/my_templates
Now we can copy our template over. Open a new terminal window. We will use the secure copy protocol to copy the file over SSH from your computer to your reMarkable:
scp ~/Desktop/my_custom_template.svg /usr/share/remarkable/templates/my_templates/
Back in your first terminal session – which should still be connected to the reMarkable – you can check whether the file transferred across using the ls command:
ls /usr/share/remarkable/templates/my_templates
This should display my_custom_template.svg.
Step 4 - update the templates.json file
Now for the trickiest part. You will need to update a file in the templates directory called templates.json. This provides information about where each template is stored, what it should be called, and which icon to use in the templates menu. If you make an error here, your templates may no longer work properly (I know this from my own mistake!) - so whilst it is reasonably straightforward, you do need to pay attention.
Many tutorials about editing files on the Linux command line tell you to use vi or vim. These are the default text editors on Linux, but they are also obtuse and confusing for newcomers. We are going to instead use the nano program that is also standard on most Linux distributions, but a little easier to understand. To edit the templates JSON file, open it in nano:
nano /usr/share/remarkable/templates/templates.json
You should now see a screen showing the beginning of a long string of JSON. We want to add a new entry down the bottom of the file, so we will navigate down to line 500 using the keyboard shortcut Ctrl + / + 500 + Enter. From there you can use your cursor/arrow keys to navigate down to the last entry in the file. We want to add a new entry, like this:
{
"name": "Hexagon small",
"filename": "P Hexagon small",
"iconCode": "\ue98c",
"categories": ["Grids"]
},
{
"name": "My Daily Schedule",
"filename": "my_templates/my_custom_template.svg",
"iconCode": "\ue9ab",
"categories": ["Planners"]
}
]
}
Make sure you do not overwrite or delete the square and curly brackets at the end of the file, that you do put a comma after the second-last entry and your new one, and do not leave a trailing comma after your new entry.
Note that the filename is relative to the templates directory, so we need to include the new subdirectory. The iconCode uses a "private use" unicode value that matches one of reMarkable's standard images – it is not possible to create your own icon so you will need to re-use one of the existing ones.
Once you confirm everything is correct, enter Ctrl + x to exit, and y + Enter to confirm you want to save changes using the original filename.
Step 5 - reboot
Now for the most terrifying moment: rebooting your reMarkable!
Back on your command line, type reboot and then press Enter.
This step is simple but it will be a little nerve-wracking because your reMarkable will reboot, then pause for a moment before letting you log back in. If everything has gone according to plan you should now be able to find your new template by name in the template directory, and start using it!
Optional bonus step 7 - SSH keys
Logging in with a password is ok, but it can get a bit tedious. An easier way is to use SSH keys.
You can set up an SSH "key pair" on Linux and MacOS and also now natively on Windows.
Once you have created your keys, you can use ssh-copy-id to copy your public key to your reMarkable, allowing you to log in without a password! We use the ssh-copy-id command, with the i flag followed by the path to our ssh key:
ssh-copy-id -i ~/.ssh/id_rsa root@xxx.xxx.xxx.xxx
If you only have one ssh key, you can just enter:
ssh-copy-id root@xxx.xxx.xxx.xxx
At the prompt, enter your password and press Enter. You should see a number of lines of output, ending in:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@xxx.xxx.xxx.xxx'"
and check to make sure that only the key(s) you wanted were added.
You should now be able to log in to your reMarkable to update templates at you leisure without a password.
Happy note taking!
Addendum
Update 8 Nov 2025
Step 8 - recover your templates after a reMarkable software update
Something I neglected to appreciate when I first wrote this post is that when reMarkable releases a software update, they overwrite all the templates and the template JSON file. This is, needless to say, annoying.
Fixing this is reasonably simple - basically you need to re-do steps 3, 4 and 5. I keep a file with the changes to the JSON file and a reminder of the exact command I need to use to copy my files across. Then whenever my reMarkable software is updated I can ssh into the reMarkable, paste my changes in to the JSON file (checking all the commas are in the right place!), and copy across the template files.
With the last update I also experienced a problem with the SSH key on the reMarkable changing. If this happens to you, the fix is to delete the listing for the old key in the trusted keys file on your computer, then try connecting via SSH again. Your SSH program should point you in the right direction with a helpful error message.
