im-receipts is a local-first messaging receipt toolkit for indexing,
searching, and operating over user-controlled messaging archives.
The current tree includes:
- a TypeScript CLI/service layer for tenants, accounts, sync, search, reporting, local API, and MCP surfaces
- provider adapters for Google Messages, WhatsApp, and SMSGate-style webhook ingestion
- fixture-based tests and smoke checks that avoid real message content
- a WhatsApp runtime adapter implemented in Go
This public repository intentionally excludes private operator runbooks, development notes, local runtime artifacts, and environment-specific service configuration. Do not commit message databases, browser profiles, credentials, service drop-ins, generated reports, or local artifacts.
Requirements:
- Node.js 24 or newer
- pnpm 10
- Go 1.24 or newer for the WhatsApp runtime adapter
Install and check the TypeScript project:
pnpm install
pnpm run typecheck
pnpm run test:query-normalizer
pnpm run test:report-exportBuild the CLI/service bundle:
pnpm run buildBuild the WhatsApp runtime adapter:
pnpm run build:whatsapp-runtimeRuntime state belongs outside the repository. Keep these out of git:
- local product stores such as
~/.im-receipts - provider databases and browser/session profiles
.envfiles and credential files- exported reports, message fixtures from real accounts, screenshots, logs, and profiling artifacts
- systemd user-service drop-ins with machine-specific paths or secrets
Fixtures in this repository should stay synthetic and use reserved example numbers, generic names, and non-sensitive message text.