Adopt an existing Messages account
First use can start with the conversations already retained by Messages on the configured Mac. CLI and desktop call one product-owned operation; Most validates a fixed local source, reports every unsupported row, and commits accepted history without sending or changing provider state.
Run it from CLI or desktop#
Use `most-cli adopt-messages`, or open Most Desktop → Accounts and choose Import from Messages. Both call authenticated `POST /v3/accounts/messages-app/import`; `most-cli accounts` and `GET /v3/accounts` read retained account-source metadata after import.
The operation accepts no file path, archive, account selector, credential, or message payload. The macOS worker reads canonical `~/Library/Messages/chat.db`, the same source used by live receive. Full Disk Access is required on that worker; the operation does not open Messages, request provider consent, send, react, edit, unsend, or alter the provider database.
most-cli accounts
most-cli adopt-messages
GET /v3/accounts
POST /v3/accounts/messages-app/importAccepted data and explicit rejections#
Supported plain-text messages retain the Messages chat GUID and message GUID as source identity, plus known handles, participants, timestamps, direction, delivery state, text parts, and supported text decorations. Imported chat participants remain available to the live receive path, so adopting history does not create a second conversation identity.
Most does not silently flatten unsupported records. Attachments, contact cards, reactions, edit/retract history, link previews, and empty message bodies are rejected and counted by reason. Contact-card attachments also contribute to the rejected contact count; the current storage contract does not claim to import them.
Duplicates, conflicts, and retained state#
- A known source GUID with equal normalized content is unchanged. Re-running the same source is idempotent.
- A known source GUID with different content is conflicting. The storage transaction is refused rather than overwriting retained state.
- PostgreSQL commits the account source, chats, and messages atomically. Invalid source access, invalid rows, or conflicts do not leave a partial import. In-memory storage mirrors this behavior only in explicit development compositions and does not survive restart.
- The result reports `applied`, imported, unchanged, conflicting, and rejected counts for chats/messages/contacts, rejection reasons, and the last source position. It never returns credential or message contents.
- A successful accepted import records onboarding completion. Skipping leaves an empty but usable Most; opening Accounts later replays the same reusable operation.
Failure recovery#
- 401 or 403 — configure a valid Most bearer capability; the import never asks for a messaging-account password.
- 501 — the active composition has no configured macOS Messages worker; run the operation on the production or supported macOS composition rather than weakening capability checks.
- Source access failure — grant the service Full Disk Access to the canonical Messages database and retry.
- 409 with conflict counts — inspect the retained source identity and differing GUID data. Most preserves the existing rows and does not partially apply the batch.