Supernote → Obsidian

Personal system · 2026

I write longhand on a Supernote, an e-ink tablet. I built a pipeline that turns those pages into notes in my Obsidian vault, where FfLAPa takes over.

The notebook syncs to a directory. A Python helper walks it and hashes each page by its raw strokes so the same page resolves to the same note wherever it runs. It renders the pages to images and hands them to a transcription step that titles them. Another helper creates sets of pages. Handwriting goes in; digital fleeting notes come out.

Here’s how it works:

Supernote to Obsidian flowchart
  • Write on the Supernote. Google Drive syncs the .note files to a folder on a computer, which is the intake.
  • scan walks the intake. For each page it renders an image, hashes the page from its raw strokes, and compares that hash against the last run to find what is new or changed. It writes manifest.json: every page, with the ones that still need OCR flagged.
  • transcribe is the AI step. A Claude session opens only the page images listed in the manifest. For each page it reads the handwriting, drafts a short title, and notes whether a continuation marker is present; this is an arrow in the top-left of a note used denote a set. It returns ai.json.
  • write reads manifest.json and ai.json together. It groups consecutive pages into single notes, picks each note’s filename and place in the vault, writes the Markdown, and removes any page image no note references.
  • The output lands in the vault as fleeting .md notes: the page image on top, the transcription below it in an obsidian callout/styled block quote.
  • state.json records the page hashes, the groupings, and the timestamps, so the next run skips anything that has not changed.
  • config.yaml holds the paths and the rules for what to ignore, like archived notebooks, scratch folders, and Drive sync conflicts.

Why it is split this way

  • The AI never touches the vault. It sees a folder of images and answers in JSON. Everything written to the vault comes from the deterministic side.
  • write reconciles the AI’s answers against the scan before it writes. If a page that needs OCR has no response, it stops instead of dropping the page or reusing stale text.
  • Re-running is safe and idempotent. Unchanged pages are skipped, and a page you already turned into a note is left alone.
  • It only edits notes still tagged fleeting, which only makes sense in my FfLAPa system. Once you promote a note or edit it by hand, the pipeline treats it as yours and will not overwrite it.