The primary goal of this project is to create a CLI tool to wirelessly backup files (in particular notes) from a Supernote device to a local computer. It doesn't require a user account, mobile app, or storing notes with third-party cloud providers. Its purpose is to archive device files for storage and safekeeping and doesn't attempt to export or convert notes to another format.
This tool will probably work on any of the Supernote devices running the most up-to-date software. It works by using the builtin Browse & Access feature available on the Supernote device. If Ratta changes how the Browse & Access feature works in future software updates, it is possible this application will break.
Versioned releases are on PyPi but the most up-to-date info is found on Github: snbackup
-
Install Python 3.10 or newer along with pip
-
Setup your Python virtual environment and install with
pip install snbackup
. My preference is to install withpipx
which makes the tool globally available. -
Create a folder somewhere on your computer to store your Supernote backups.
-
IMPORTANT: Create a file called
config.json
or edit and use the one provided with this project. This file is required to determine where to save your backups and where to access the device on the network. For example, I place my config file in the same directory as my backups.
{
"save_dir": "/Users/devin/Documents/Supernote",
"device_url": "http://192.168.1.105:8089/"
}
-
Make sure the Supernote device is connected to WiFi with the Browse & Access feature turned on
-
There are three main ways to run the
snbackup
tool from your terminal or command line:-
This will look for the required config.json from step 4 in your current working directory:
snbackup
-
This optionally specifies the location of the required config.json file
snbackup -c /the/path/to/config.json
-
You can also set the environment variable
SNBACKUP_CONF
which points to the location of the config.json.
export SNBACKUP_CONF="/path/to/config.json"
-
The snbackup
tool will attempt to connect to your device and download all files it finds to the save_dir
directory specified in your config.json. The first run may take a few minutes or more as it will attempt to download everything; subsequent runs only download new or modified files.
The tool will make a new directory within your save_dir
folder for today and save all files as they are found on the device. For example, if a note titled Ideas
is stored within your Stuff
folder, it will be backed up locally as /your/chosen/directory/<YYYY-MM-DD>/Note/Stuff/Ideas.note
. This example would translate to C:\your\chosen\directory\<YYYY-MM-DD>\Note\Stuff\Ideas.note
on a Windows computer.
Everything snbackup
does will be printed out to your terminal as well as logged to the snbackup.log
file also stored in your save_dir
directory.
By default, the device will attempt to backup everything on device. This includes files found in the Document folder, EXPORT folder, SCREENSHOT folder, etc. If you prefer to only download your notes which are found within the device's Note folder, use the command snbackup --notes
.
You can also upload files from your local computer with the -u
flag to any of the following folders found on the Supernote device: Note, Document, EXPORT, MyStyle, SCREENSHOT, INBOX.
For example, snbackup -u Report.pdf
will upload the Report.pdf file to the Document folder by default. The command snbackup -u /path/to/picture.jpg -d MyStyle
will upload the picture.jpg file to the destination folder MyStyle.
Additionally, you can specify multiple files at once separated by a space:
snbackup -u file1 file2 file3
If no destination is specified after the -d
flag the device Document folder is used.
The accepted file formats for the upload are .note, .pdf, epub, .docx, .doc, .txt, .png, .jpg, .jpeg, .bmp, .webp, .cbz, .fb2, .xps, .mobi
-
Show all available command line options:
snbackup -h
-
Inspect new files to be downloaded from device and but do not download:
snbackup -i
-
The full backup flag will ignore previously saved backups and force the tool to download new copies of all files from device:
snbackup -f
-
Remove all but the specified number of backups from your local backup directory. This example will keep only the 5 most recent backups and delete any older ones:
snbackup --cleanup 5
-
Print program version:
snbackup -v
There are additional configuration options that can be set in the config.json file.
{
"save_dir": "/Users/devin/Documents/Supernote",
"device_url": "http://192.168.1.105:8089/"
"num_backups": 7,
"cleanup": true,
"truncate_log": 500
}
In addition to the two required save_dir
and device_url
keys, this example config keeps only the 7 most recent backups and also prevents the program's log file from exceeding 500 lines. With num_backups
and cleanup
both set, the cleanup process will happen automatically each time the tool runs, and the --cleanup
flag no longer needs to be specified.
-
If your Supernote device's IP address changes often on your local network, consider assigning it a static IP address. This can typically be done by logging into your router and configuring it there. Consult your router's documentation.
-
Windows systems use the backslash character
\
as a separator for file paths. This is tricky for JSON files. Luckily, you can still use forward slashes/
as show in the example config.json even on Windows. However, you can also escape the backslashes if you prefer. For example yoursave_dir
might look something like this"C:\\Users\\devin\\My Documents\\Supernote"
on a Windows computer.