Local recovery · open source

Paper remembers.

EquilBridge is a small, replayable bridge for bringing a discontinued smartpen receiver back into a local workflow. It needs no cloud service or mystery binary, and your notes stay on your machine.

Local EquilBridge notes viewer showing recovered handwritten pages
A local notes viewer, backed by files you control.
Evidence, not vibes

Where the bridge stands

Offline-memory sync and its local viewer path have been live-validated on one paired model-3 receiver. The broader live pen-event suite remains pending.

Software + replay

Tests, fixtures, raw chunks, replay, and SVG export are local and repeatable.

Ready

Model-3 handshake

An actual model-3 handshake was captured. The receiver identity is intentionally anonymized.

Observed

Offline memory + viewer sync

An intentionally empty library imported 13 notes without duplicates from one paired model-3 receiver, producing 13 pages and 39 local artifacts through the viewer.

Live-validated · one receiver

Live pen-event suite

Dot, line, pen-up, page-button, disconnect, and recovery checks still need an awake receiver run.

Pending
A calm path back in

Capture once. Keep the evidence.

Linux and BlueZ are the supported live path. Pair through the operating system, put the receiver in its desktop Others mode, then use an explicit address. Android mode is a separate manual pairing path; no Android application is shipped here.

uv sync --all-groups
uv run equilbridge doctor --json
uv run equilbridge capture --address <RECEIVER_MAC> --output captures/session.jsonl
uv run equilbridge replay captures/session.jsonl
uv run equilbridge export captures/session.jsonl --output notes/

Raw first

Lossless chunks remain authoritative. Malformed input becomes a diagnostic, not a fabricated stroke.

Read-only memory

Offline import uses observed non-destructive requests and writes note, wire, and SVG evidence locally.

Local by default

Optional OCR and Ollama cleanup stay on the machine. No analytics, trackers, hosted fonts, or cloud sync.

A real local sample

One note, kept legible

The recovered offline sample is 912 bytes: 9 strokes and 126 points spelling Test 123. The source SVG and PNG are included as local evidence.

On demand

Run the viewer only when you need it

The default Compose build serves the local viewer on 127.0.0.1:8765. It includes OCR by default; the README also documents a smaller no-OCR build, the opt-in local AI profile, and the one-shot Bluetooth sync profile.

docker compose up --build web

Read the Docker workflow

Read the sources

EquilBridge independently expresses observed interoperability facts. It does not redistribute a historical APK, JAR, plugin source, or decompiled source.

Equil and Smartpen are third-party marks used only to describe compatibility. This project is independent and unaffiliated.