Work / Archi

Archi

Mac app

Mac app · local-first reading library

Visit live site

Local-first macOS app that pulls every Kindle highlight you've ever made into a searchable SQLite library on your Mac, with optional one-click sync to Notion. Free and open source.

Local-first macOS desktop app that pulls every Kindle highlight you've ever made into a searchable SQLite library on your machine, with optional one-click sync to Notion. Free, open source, no telemetry.

What it is

Years of Kindle highlights tend to sit stranded inside Amazon — hard to search, harder to act on. Archi pulls them down into a local SQLite library on your Mac with full-text search, so every passage you have ever flagged is one query away.

The app is local-first by design. Sync runs on your machine without a server in the middle. An optional one-click Notion export provisions Library and Passages databases in your workspace and reuses them on subsequent syncs so highlights flow into the notes/reading systems you already have.

Why local-first

Your highlights stay yours — the canonical store is a SQLite file on your Mac
No server, no account — Archi never talks to an Archi-owned backend
Notion is optional and provider-style — connect it if you want it; it's a destination, not a dependency
Free, open source, no telemetryloschenbd/archi on GitHub

How it works

Two ingestion paths, one canonical store:

Device export — paste in your Kindle My Clippings.txt and the local parser normalizes books and passages into the SQLite schema (works, passages, sync_jobs)
Cloud notebook — opt-in connector that pulls from Amazon's web notebook via a Playwright-managed Chromium profile; auth state persists between runs

Sync runs on a configurable interval (default daily) plus a manual "Sync now" button. Destinations are pluggable; the first one shipped is Notion, with first-run database auto-provisioning so you don't have to scaffold tables by hand.

Tech stack

Electron desktop shell, hardened-runtime + entitlements, notarized for distribution
Vite + React renderer; TypeScript strict across the monorepo
SQLite via better-sqlite3 as the canonical local store
Playwright (Chromium) for the cloud notebook connector with persistent profile + storage-state snapshot
pnpm workspaces monorepo: apps/desktop, packages/core (schema + dedupe + sync state), packages/source-device-export, packages/source-cloud-notebook, packages/destination-notion, packages/ui

Privacy posture

Highlights live in a local SQLite file you own
Notion token is pasted once in-app, then migrated into encrypted local credential storage
No telemetry; no Archi-owned servers in the data path
Cloud-notebook auth state (profile dir + storage-state file) stays under your home directory

Repo

github.com/loschenbd/archi — MIT-licensed.