imsgcrawl is a local-first CLI tool for reading, archiving, and searching Apple iMessage data. It operates by taking a read-only snapshot of the macOS Messages SQLite database (`chat.db`), extracting handles, chats, messages, and deletion events, then merging them into a local SQLite archive. The tool provides bounded commands for metadata, status, sync, chats, messages, full-text search, and phone-only contact export. It outputs both human-readable text (with terminal control escape protection) and stable JSON for automation. The architecture is cleanly separated into packages for archive management, message extraction (including attributed body decoding and edit/unsend reconstruction), and portable SQLite snapshotting with macOS copy-on-write support. The codebase demonstrates strong engineering practices: thorough test coverage including fuzzing, explicit privacy boundaries, identity validation for source databases, and careful handling of edge cases like malformed UTF‑16, hardlinked sidecars, and concurrent sync locking.