All-in-one toolkit for Supernote devices: parse notebooks, self-host services, access services
Project description
supernote
All-in-one toolkit for Supernote devices: parse notebooks, self host, and access services.
This content is shared between the documentation and github repository at github.com/allenporter/supernote-lite.
Features
- Notebook Parsing: Convert
.notefiles to PDF, PNG, SVG, or text - Private Server: Self-hosted Supernote Private Cloud implementation
- Client: Interact with Supernote service API
Installation
# Install specific components
pip install supernote # Notebook parsing only
pip install supernote[server] # + Private server
pip install supernote[client] # + Client
# Full installation (recommended for server users)
pip install supernote[all]
Local Development
Install in a virtual environment:
uv venv --python=3.14
source .venv/bin/activate
uv pip install -r requirements_dev.txt
uv pip install -e ".[all]"
Quick Start
Parse a Notebook
from supernote.notebook import parse_notebook
notebook = parse_notebook("mynote.note")
notebook.to_pdf("output.pdf")
The notebook parser is a fork and slightly lighter dependency version of supernote-tool that drops svg dependencies not found in some containers. Generally, you should probably prefer to use that original library unless there is a specific reason you're also having a similar dependency limitation. All credit goes to the original authors of supernote-tool for providing an amazing low level utility.
Run Private Server
# Configure users (you will be prompted for a password)
supernote-server user add alice
# Start server
supernote-server serve
Run with Docker
# Build image
docker build -t supernote-server .
# Create user
mkdir config
docker run --rm -it -v $(pwd)/config:/config supernote-server supernote-server user add alice
# Run server
docker run -d -p 8080:8080 \
-v $(pwd)/config:/config \
-v $(pwd)/storage:/data \
supernote-server
See Server Documentation for details.
Access Supernote Services
from supernote.client import SupernoteClient
async with SupernoteClient.from_credentials(email, password) as client:
files = await client.list_files()
CLI Usage
# Notebook operations
supernote convert input.note output.pdf
supernote analyze input.note
# Server operations
supernote-server serve
supernote-server user add alice
# Client operations
supernote client login
supernote client ls
Development
This package is designed for:
- Server operators - Self-hosting Supernote Private Cloud
- Developers - Integrating Supernote into applications
- Reference - Understanding Supernote protocols
See ARCHITECTURE.md for protocol details.
Setup
uv venv --python=3.14
source .venv/bin/activate
uv pip install -r requirements_dev.txt
uv pip install -e ".[all]"
Credits
The supernote library is a fork and slightly lighter dependency version of supernote-tool that drops svg dependencies not found in some containers. Generally, you should probably prefer to use that library unless there is a specific reason you're also having a similar dependency limitation.
Acknowledgments
This project is in support of the amazing Ratta Supernote product and community. This project aims to be a complementary, unofficial offering that is compatible with the Private Cloud feature, helping to support their open ecosystem, helping to reduce load on their servers etc (e.g. for AI powered personal assistant integrations that need to process notebooks, etc)
Comparison with Official Private Cloud
Ratta offers an official Private Cloud solution based on Docker. You should generally prefer that solution, unless you are interested in lower level integrations and are comfortable managing your own security, SSL, etc.
Here is how this project compares:
| Feature | Official Private Cloud | Supernote-Lite (This Project) |
|---|---|---|
| Type | Official Product | Community Project |
| Technology | Docker Container (Java/Spring) | Python Package |
| Source | Closed Source | Open Source |
| Focus | Stability & End-Users | Hackability & Developers |
| Requirements | Docker Environment | Python 3.10+ |
| Extensibility | Low (Black Box) | High (Modular Codebase) |
| Security/SSL | Documented Guides Included | DIY (Bring Your Own Proxy) |
Use the Official Private Cloud if:
- You want a supported, "set-and-forget" solution.
- You prefer using Docker containers.
Use Supernote-Lite if:
- You want to understand how the protocol works.
- You want to run on low-power hardware without Docker overhead.
- You want to integrate Supernote sync into your own Python applications.
- You want to customize the server behavior.
Community Projects
- github.com/jya-dev/supernote-tool - Unofficial python tool for Ratta Supernote for parsing notebook files, which this projects notebook module is based on.
- github.com/philips/supernote-typescript - Supernote file-format support in typescript
- github.com/julianprester/sncloud - Supernote Cloud API for Python
- github.com/fharper/awesome-supernote - A curated list of Supernote resources
- github.com/philips/supernote-obsidian-plugin - Obsidian plugin for Supernote
- github.com/jbchouinard/supernote-sync - Tool to automatically backup files from the Supernote using local WiFi using the Supernote Browse & Access feature
- github.com/theburningbush/snbackup - CLI tool for wireless Supernote backups using the Browse & Access feature
- github.com/dsummersl/sn2md - Supernote to text/image converter (sn2md)
- github.com/calebc42/eink-template-gen - Generates pixel-perfect page templates for e-ink devices.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supernote-0.4.1.tar.gz.
File metadata
- Download URL: supernote-0.4.1.tar.gz
- Upload date:
- Size: 54.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f08e32cc3a364b87fd9e58c3760a48f40d0d1f706b5470f4c688f18fb88ca64
|
|
| MD5 |
73b19069a21ad3a00da2017a4968ec71
|
|
| BLAKE2b-256 |
34d1be2c98b5bbe7673bb97164ede20c1f83909424837d8402a818c2bf2bb7ab
|
Provenance
The following attestation bundles were made for supernote-0.4.1.tar.gz:
Publisher:
publish.yaml on allenporter/supernote-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supernote-0.4.1.tar.gz -
Subject digest:
4f08e32cc3a364b87fd9e58c3760a48f40d0d1f706b5470f4c688f18fb88ca64 - Sigstore transparency entry: 775598826
- Sigstore integration time:
-
Permalink:
allenporter/supernote-lite@87ba4ba2edddbf7a0f86ca54abea6e8151a157f3 -
Branch / Tag:
refs/tags/0.4.1 - Owner: https://github.com/allenporter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@87ba4ba2edddbf7a0f86ca54abea6e8151a157f3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file supernote-0.4.1-py3-none-any.whl.
File metadata
- Download URL: supernote-0.4.1-py3-none-any.whl
- Upload date:
- Size: 66.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d2911e45cf87d94ec6eafca719551f9d207f0d909e12b317eaf93bc7fdc566d
|
|
| MD5 |
004ebbf9b924cb22c37ab1c855f9e5d2
|
|
| BLAKE2b-256 |
0438f89432767a18bcd5ed1b9f2347780bd264c42848fef0ed14783532746b6d
|
Provenance
The following attestation bundles were made for supernote-0.4.1-py3-none-any.whl:
Publisher:
publish.yaml on allenporter/supernote-lite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supernote-0.4.1-py3-none-any.whl -
Subject digest:
4d2911e45cf87d94ec6eafca719551f9d207f0d909e12b317eaf93bc7fdc566d - Sigstore transparency entry: 775598827
- Sigstore integration time:
-
Permalink:
allenporter/supernote-lite@87ba4ba2edddbf7a0f86ca54abea6e8151a157f3 -
Branch / Tag:
refs/tags/0.4.1 - Owner: https://github.com/allenporter
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@87ba4ba2edddbf7a0f86ca54abea6e8151a157f3 -
Trigger Event:
release
-
Statement type: