NoteSR-Cli is a cross-platform command-line utility designed to process exports from NoteSR.
git clone https://github.com/zHd4/NoteSR-Cli.git
cd NoteSR-Cli
./gradlew build
# After build
cd build/notesr-cli/bin
./notesr-cli --helpNoteSR-CLI allows you to:
- 🔓 Decrypt
.notesr.bakbackups from NoteSR (AES-256 encrypted) - 🧠 Read notes and list files directly from the SQLite database
- 📦 Compile a SQLite backup into a valid
.notesr.bakfile - 📌 Attach and extract files from notes
- 🔍 Inspect and manage your encrypted notes via terminal
./notesr-cli --helpDecrypts a NoteSR .notesr.bak file into a readable SQLite database.
./notesr-cli decrypt /path/to/backup.notesr.bak /path/to/crypto_key.txt -o output.notesr.dbfile_path— path to the encrypted.notesr.bakfilekey_path— path to the AES key file (text format)-o— optional output path (defaults tobak_file_name.notesr.db)
Compiles a SQLite NoteSR backup into an encrypted .notesr.bak file.
./notesr-cli compile notes.notesr.db crypto_key.txt -o backup.notesr.bakdb_path— SQLite database filekey_path— AES key file (text)-o— output.notesr.bakfile
Lists all notes from the decrypted SQLite database.
./notesr-cli list-notes notes.notesr.dbDisplays the full content of a specific note.
./notesr-cli read-note notes.notesr.db NOTE_IDLists all files attached to a specific note.
./notesr-cli list-files notes.notesr.db NOTE_IDExtracts a file attached to a note and saves it to disk.
./notesr-cli get-file notes.notesr.db NOTE_ID FILE_ID -o ./output_dirNOTE_ID— ID of the noteFILE_ID— ID of the file attachment-o— output file or directory path (optional)
Attaches a local file to a specific note.
./notesr-cli put-file notes.notesr.db NOTE_ID /path/to/local/file.jpg./gradlew test- Java 21+
- Gradle (optional — project includes wrapper)
- Language: Java
- CLI Framework: Picocli
- DB Layer: JDBI (SQLite)
- Crypto: AES-256, compatible with NoteSR Android
- Logging: SLF4J + SimpleLogger