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 and 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 telemetry: loschenbd/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.