⚠️ Breaking change — macOS version requirement
v3 requires macOS 26 (Tahoe) or newer. macOS 15 and below are no longer supported.
The chat.db schema changed in macOS 26 — new columns, revised chat_message_join timing, updated attributedBody layout. v3 targets the macOS 26 schema exclusively; there is no fallback path for older systems.
Users on macOS 15 or below should stay on the 2.x line:
npm install @photon-ai/imessage-kit@^2Highlights
- Layered architecture — clean separation of
domain / application / infra / utils / types, enforced by architecture-boundary tests - Error cause chain — every
IMessageErrorpreserves.causethrough the full stack for root-cause debugging - WAL-based watcher — real-time message observation with directory-watch fallback on WAL rotation
- Plugin dispatch modes —
interrupting(gates),sequential(lifecycle),parallel(observers); mode is picked by hook semantics, not convenience - Dual runtime —
bun:sqliteon Bun,better-sqlite3on Node.js ≥ 20 - ChatId value object — single source of truth for parsing, normalization, and matching across macOS 26+, legacy, and DM address formats
Install
npm install @photon-ai/imessage-kitFull changelog: v2.1.2...v3.0.0