Skip to main content

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 .note files 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

# Generate configuration
supernote-server config init > config.yaml

# Generate users (outputs YAML, append to users.yaml)
supernote-server user add alice >> users.yaml

# Start server
supernote-server serve

Run with Docker

# Build image
docker build -t supernote-server .

# Generate initial configuration
mkdir config
docker run --rm supernote-server supernote-server config init > config/config.yaml
docker run --rm -it supernote-server supernote-server user add alice >> config/users.yaml

# 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:

  1. Server operators - Self-hosting Supernote Private Cloud
  2. Developers - Integrating Supernote into applications
  3. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

supernote-0.7.0.tar.gz (56.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

supernote-0.7.0-py3-none-any.whl (68.5 kB view details)

Uploaded Python 3

File details

Details for the file supernote-0.7.0.tar.gz.

File metadata

  • Download URL: supernote-0.7.0.tar.gz
  • Upload date:
  • Size: 56.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for supernote-0.7.0.tar.gz
Algorithm Hash digest
SHA256 ebbbf8bbc1f2520d098ad86cf6d096e54b585d8b38bd46ccaace0dfb9cf96455
MD5 7ca2ecb1120f285c143d6828dacf35d2
BLAKE2b-256 d25cd6f86ba890391c802e6f9358bfe35413b86db92a0545d7def278598cfcf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for supernote-0.7.0.tar.gz:

Publisher: publish.yaml on allenporter/supernote-lite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supernote-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: supernote-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 68.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for supernote-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c3d69e8b9b5f27d6a199faf3c31ff38907fceb5e5e13ee3c385fd638f808489
MD5 e41b63bef4af793a79f65c608ea12631
BLAKE2b-256 fcdcfb32755e6cdd88769dd22029cd9f1920f76b544940d363cc907b1497c553

See more details on using hashes here.

Provenance

The following attestation bundles were made for supernote-0.7.0-py3-none-any.whl:

Publisher: publish.yaml on allenporter/supernote-lite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page