Your data. Your choices.
Privacy policy
Effective October 13, 2026
msgblast connects the agents you choose. This page explains what stays on your Mac, what goes to those agents, and what you can choose to share with us.
Agent directory submissions
When you submit an agent, we receive its name, description, categories, supported channels, messaging number, website, optional sign-up and announcement links, icon, your relationship to the agent, and your contact email. Cloudflare processes and stores this information privately for review. Turnstile verifies submissions to reduce automated abuse; rate limiting uses the request IP address without storing it in the submission record.
Pending and rejected submissions and their icons are not publicly accessible. An authorized reviewer may edit and approve the agent details and icon for public display. Your contact email, relationship, and review notes are never included in the public listing. Submitting does not verify ownership or guarantee publication.
Unpublished submission records and icons are scheduled for removal after 90 days. Approved listings and their private contact details remain while the listing is maintained. Review audit records retain the submission reference, reviewer, action, and date. To request a correction or removal, contact msg@contains.studio.
Conversations and local storage
msgblast stores app state on your Mac, including drafts, comparison details, send receipts, preferences, staged attachments, and provider session information. Embedded websites keep their sign-in information in local WebKit storage. Optional CLI agents use their own accounts and local configuration.
Messages history access is read-only. The app uses macOS permissions for supported Contacts lookup, Messages access, and automation. Sending or adding contact information follows the actions you choose in the app; analytics does not send messages or write Contacts.
Removing uploaded analytics does not remove local app files, Apple Messages history, or conversations held by an agent provider.
The agents you connect
When you send a message or attachment, it goes to the selected agents through their websites, Messages, configured CLI tools, or the Grok Bot integration. Those services handle your conversations, account information, and any tools you authorize under their own privacy policies. Joining a comparison does not automatically share private one-to-one conversations with its other agents.
Optional comparison reports use configured local adapters and may send the selected conversation material to their model provider. Review the provider and tool configuration before using them. Turning off msgblast analytics does not turn off the network connections needed by these features.
Optional statistics
In builds with sharing controls, the available options start selected. No analytics events are captured or sent until you select Save choices. You can turn off either group, customize individual options, or save with everything off. Sharing is not required to use msgblast.
- Agent usage
- Onboarding screen visits and transitions, and counts of agents added and their known provider or catalog type, including supported Messages agents. Custom names, contact names, phone numbers, email addresses, and account identifiers are excluded.
- Message counts
- Counts of submitted messages and recipients, and whether a submission is shared or private. A message submitted to several agents counts as one user message, with the number of confirmed recipient submissions recorded separately. Delivery is not inferred from submission.
- Activity
- App use and workflow activity linked across days by a random installation ID, so we can measure whether people return. This ID is not your name or an account ID, but it does link selected activity from the same installation over time. It is used only when Activity is enabled.
- App health
- Sanitized operation outcomes and failure categories, plus approximate duration buckets. Raw error text is excluded. Reliability and performance can be controlled separately.
Statistics may also include app version, development or production build channel, OS major version, and event time. Analytics excludes message text, responses, attachments, conversation titles, custom agent names, contact identities, URLs, file paths, and account details. We do not use session replay.
With Activity off, permitted statistics are sent without a persistent installation ID for cross-day tracking. A random event identifier is used to avoid counting retried uploads twice.
Where statistics go
Selected statistics pass through a Cloudflare endpoint that validates the allowed fields, then go to msgblast’s private PostHog analytics project. We use them to understand onboarding, agent adoption, message activity, return use, reliability, and performance. They are not published as individual activity records.
Our analytics handler does not store your client IP address or forward it to PostHog. Cloudflare and other network providers still process connection metadata to deliver and protect their services. Removing identifying fields from an event does not make linked Activity data completely anonymous.
See Cloudflare’s privacy policy and PostHog’s privacy policy for their handling of service data.
Changing choices and deleting data
You can change sharing choices in Settings. Turning off an option stops its future collection and clears its unsent events; requests already received by the service may have been processed. Turning sharing off does not delete previously uploaded data.
Contact the maintainer to request deletion of previously uploaded linked statistics or a feedback report. An installation ID or feedback receipt, when available, helps locate the relevant records. We cannot reliably attribute unlinked aggregate statistics to a specific installation.
This policy does not promise automatic deletion after a fixed period. PostHog’s retention and query settings depend on the project’s plan, and a query retention window is not itself a deletion guarantee. Feedback reports remain in private storage until removed.
Feedback you choose to send
Sending feedback is a separate, explicit action. Your note, optional reply email address, and diagnostics you choose to include are stored in a private Cloudflare R2 bucket for support. Diagnostics use a limited schema of app and system status, counts, and categorized errors. Feedback does not enable ongoing analytics.
The intake returns a receipt and does not automatically publish a GitHub issue or send an email. Include only information you want the maintainer to receive.
Website, downloads, and updates
Cloudflare hosts this website and processes requests for its pages and files. Hosting, security, and website analytics services may process request metadata such as IP addresses, browser information, requested paths, and timing. Website measurements are separate from the app’s sharing choices.
Downloads and update checks contact the update host for feeds and app archives. Those network requests provide the host with connection metadata; app analytics choices do not disable update or download requests.
Source builds and scope
msgblast’s source code is available for inspection. Default builds from source, development builds, Demo builds, and tests do not send production analytics. A fork maintainer must explicitly configure their own collection service and explain it to their users.
This policy covers the native msgblast app, this public website, optional app analytics, and feedback intake. A separately configured sync pilot or other service is outside this policy’s scope.
Questions and requests
Contact the maintainer for privacy questions or to arrange a private deletion request. Do not post installation IDs, feedback contents, contact details, or other private information in public GitHub issues or public posts.
Changes to this policy will appear on this page with an updated effective date. Changes that expand app collection should be reflected in the app’s sharing controls before that collection begins.