Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Remarkable Puzzles

Simon Tatham's Portable Puzzle Collection for the reMarkable tablet.


Builds are done in docker by default.

# Build the docker toolchain
make docker_build

# Debug build
make debug

# Release build
make release

Help files

Help files are based on the those from the original puzzle collection, found in vendor/puzzles/html/. For expediency and simplicity, the help dialog only shows plain text, so these must be converted and edited. Fortunately these help files only use a simple subset of html, so most of this can be automated:

# Generate text-only help files in help/

Most help files should be hand-edited since the controls are a little different (e.g. there is no middle click, and right click is simulated by a long press).


In the spirit of the original puzzle collection, icons are generated from in-progress games. The canonical save files for these icons can be found in vendor/puzzles/icons/. There is a separate puzzle-icons build that is used to generate all icons at once, based on these save files.



Assuming remarkable as an alias in ~/.ssh/config, as per

host remarkable
  User root

Stop xochitl

ssh remarkable -t systemctl stop xochitl

Make /opt/etc/puzzles directory structure

ssh remarkable -t mkdir -p /opt/etc/puzzles/save
scp -r config/ remarkable:/opt/etc/puzzles/
scp -r help/ remarkable:/opt/etc/puzzles/
scp -r icons/ remarkable:/opt/etc/puzzles/

Copy the executable and run it

scp build/debug/puzzles remarkable:/opt/bin/
ssh -t remarkable /opt/bin/rm2fb-client /opt/bin/puzzles

Restart xochitl

ssh remarkable -t systemctl start xochitl