Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
S

SpeedyNote

> 编程语言
Open source

A simple note app with good performance and PDF import support

1.5K stars0 likes0 views
WebsiteGitHub

About

A simple note app with good performance and PDF import support

SpeedyNote


Why SpeedyNote?

The Problem SpeedyNote's Solution
OneNote doesn't support PDF annotation Full PDF support with fast rendering
Xournal++ is painfully slow on large PDFs 360Hz input on a Celeron N4000 (1.1GHz)
GoodNotes/Notability cost $10+ and require iPad Free & open source, runs on $50 tablets
Most note apps are mobile-only or desktop-only Same experience on Windows, Linux, macOS, Android & iPadOS

Features

Performance First

  • 360Hz stylus polling on low-end hardware (tested: Celeron N4000 @ 1.1GHz)
  • Instant PDF loading - large documents open in seconds, not minutes
  • Small memory footprint - native C++ with no Electron bloat
  • ARM64 native builds - optimized for Snapdragon laptops and Rockchip Chromebooks

Professional Drawing Tools

  • Pressure-sensitive inking with Pen, Marker, and Highlighter tools
  • Vector-based strokes - always sharp at non-extreme zoom levels
  • Multi-layer editing (SAI2-style) - add, delete, reorder, merge layers
  • Stroke eraser with full undo/redo support
  • Touch gestures - two-finger pan, pinch-to-zoom, palm rejection

Document Modes

  • Paged Notebooks - traditional page-by-page notes (`.snb)
  • Edgeless Canvas - infinite whiteboard with lazy-loading tiles (`.snb)
  • PDF Backgrounds - annotate PDFs with clickable internal links
  • Sharing - .snbx note bundles allows easy cross-platform note sharing.

Tablet-First UX

  • Action bars - context-sensitive buttons appear when you need them
  • Subtoolbars - quick access to tool settings without menu diving
  • Page panel - thumbnail navigation with drag-to-reorder
  • PDF outline - click TOC entries to jump to sections

Advanced Features

  • Handwriting OCR - recognize handwritten notes on-device for text search and selection (macOS & Linux); supports Latin scripts, Chinese, Japanese, and Korean
  • Link objects - create clickable links to markdown notes, URLs, or positions
  • Markdown notes - attach rich text notes to any page or position
  • Multi-tab editing - work on multiple documents simultaneously

Screenshots

PDF Annotation Layer Panel Page Thumbnails
Edgeless Canvas Action Bar Subtoolbar
Link Objects Markdown Support Android

Getting Started

System Requirements

Platform Minimum Recommended
Windows Windows 7 SP1 Windows 11
macOS macOS 12 macOS 15+
Linux Ubuntu 22.04 / Fedora 38 Any with Qt 6.4+
Android Android 9 (API 28) Android 13+
iPadOS iPadOS 16.0 iPadOS 17+

Hardware: Any x86_64 or ARM64 CPU. Tested on Intel Core i5 470UM (2010), Celeron N4000, Snapdragon 7c Gen 2, Rockchip RK3399, Apple M4

Installation

Windows / macOS / Linux

Download the latest release from GitHub Releases or the official website.

Platform Package
Windows .exe installer
macOS .dmg disk image
Arch Linux yay -S speedynote
Android .apk package

iPadOS

Option 1: Sileo (jailbroken iPads) - Add the SpeedyNote APT repository and install via Sileo
Option 2: TrollStore - Download the .ipa from GitHub Releases and install via TrollStore
Option 3: Build from source - See iPadOS Build Guide

iPadOS builds require a jailbroken device or TrollStore. App Store distribution is not available at this time.


Building From Source

Prerequisites

Platform Requirements
All CMake 3.16+, C++17 compiler
Windows MSYS2 with clang64/clangarm64 toolchain
macOS Xcode Command Line Tools, Homebrew
Linux Qt 6.4+ dev packages, MuPDF (handwriting OCR optional, see Linux guide)
Android Docker (see Android Build Guide)
iPadOS macOS, Xcode 15+, Qt 6.9.3 for iOS (see iPadOS Build Guide)

Quick Build

bash
# Clone the repository
git clone https://github.com/alpha-liu-01/SpeedyNote.git
cd SpeedyNote

# Windows clean build (packaging-ready)
./compile.ps1

# Windows incremental development build
./compile.ps1 -dirty

# macOS
./compile-mac.sh

# Linux
./compile.sh
# Or build packages: ./build-package.sh

Detailed Build Guides

  • Windows Build Guide
  • macOS Build Guide
  • Android Build Guide
  • iPadOS Build Guide

File Formats

Format Description Use Case
.snb Bundle folder with tiles Edgeless canvas, large projects
.snbx Compressed bundle (ZIP) Sharing, backup

Note: The legacy .spn format from v0.x is not supported.


Command Line Interface (Desktop)

SpeedyNote includes a powerful CLI for batch operations on Windows and Linux. Perfect for scripting, automation, and syncing notes between devices.

Quick Start

bash
# Export all notebooks to PDF
speedynote export-pdf ~/Notes/ -o ~/PDFs/

# Backup notebooks to .snbx packages
speedynote export-snbx ~/Notes/ -o ~/Backup/

# Import .snbx packages
speedynote import ~/Downloads/*.snbx -d ~/Notes/

Commands

Command Description
export-pdf Export notebooks to PDF format
export-snbx Export notebooks to .snbx packages
import Import .snbx packages as notebooks

Export to PDF

bash
speedynote export-pdf [OPTIONS] <input>... -o <output>
Option Description
-o, --output Output file (single) or directory (batch)
--dpi <N> Export resolution (default: 150)
--pages <RANGE> Page range, e.g., "1-10,15,20-25"
--no-metadata Don't preserve PDF metadata
--no-outline Don't preserve PDF bookmarks
--annotations-only Export strokes only (blank background)
--overwrite Overwrite existing files
--recursive Search directories recursively
--dry-run Preview without creating files

Examples:

bash
# Single notebook to PDF
speedynote export-pdf ~/Notes/Lecture.snb -o ~/Desktop/lecture.pdf

# All notebooks at 300 DPI
speedynote export-pdf ~/Notes/ -o ~/PDFs/ --dpi 300

# Export only annotations (no background)
speedynote export-pdf ~/Notes/*.snb -o ~/PDFs/ --annotations-only

# Preview what would be exported
speedynote export-pdf ~/Notes/ -o ~/PDFs/ --dry-run

Export to SNBX

bash
speedynote export-snbx [OPTIONS] <input>... -o <output>
Option Description
-o, --output Output file (single) or directory (batch)
--no-pdf Don't embed source PDF (smaller files)
--overwrite Overwrite existing files
--recursive Search directories recursively
--dry-run Preview without creating files

Examples:

bash
# Backup with embedded PDFs
speedynote export-snbx ~/Notes/ -o ~/Backup/

# Backup without PDFs (smaller)
speedynote export-snbx ~/Notes/ -o ~/Backup/ --no-pdf

# Single notebook
speedynote export-snbx ~/Notes/Project.snb -o ~/Desktop/project.snbx

Import SNBX Packages

bash
speedynote import [OPTIONS] <input>... -d <dest>
Option Description
-d, --dest Destination directory for notebooks
--add-to-library Add imported notebooks to the launcher timeline
--overwrite Overwrite existing notebooks
--recursive Search directories recursively
--dry-run Preview without importing

Examples:

bash
# Import packages
speedynote import ~/Downloads/*.snbx -d ~/Notes/

# Import and add to library (shows in launcher)
speedynote import ~/Downloads/*.snbx -d ~/Notes/ --add-to-library

# Import from a directory
speedynote import ~/Backup/ -d ~/Notes/ --recursive --add-to-library

Note: On Android, imported notebooks are automatically added to the library. On desktop, use --add-to-library to make them appear in the launcher timeline.

Common Options

These options work with all commands:

Option Description
--verbose Show detailed progress
--json Output results as JSON (for scripting)
--fail-fast Stop on first error
-h, --help Show help for command
-v, --version Show version

Exit Codes

Code Meaning
0 All operations succeeded
1 Some files failed or were skipped
2 All files failed
3 Invalid arguments
5 Cancelled (Ctrl+C)

Scripting Example

bash
#!/bin/bash
# Sync notes from tablet to PC via SSH

TABLET="user@tablet:/storage/emulated/0/Notes"
LOCAL="$HOME/Notes"
BACKUP="$HOME/Backup"

# Pull new .snbx files from tablet
rsync -av "$TABLET/*.snbx" "$BACKUP/incoming/"

# Import to local library
speedynote import "$BACKUP/incoming/" -d "$LOCAL" --json | \
  jq '.status == "success"' && rm "$BACKUP/incoming/"*.snbx

# Export updated notes as PDF for reference
speedynote export-pdf "$LOCAL" -o "$HOME/PDFs/" --dpi 150

Supported Languages

SpeedyNote

Issues· 12 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言