Skip to main content
Mains stores your work on the backend you choose: your Mac by default, or your own standalone server. Mains is not in the path of your runs. It uploads your work only if you sign in to the optional Bridge sync service. Agent requests and context go from that backend to the selected provider and connected tools. Local-first storage does not mean that an AI provider never receives your material.

What is stored

On macOS, the default database is ~/Library/Application Support/mains/mains.db. Files such as attachments, collection sources, and Atlas copies also live alongside it. Backing up only the database does not preserve those file bytes. Stop the backend before making a complete data-directory backup.

What reaches providers

A run can send your prompt, conversation history, attached skills and instructions, file context, and tool results to Claude, Codex, Copilot, or Cursor. Connected MCP tools and plugins can send relevant material to their own services. A Lens or browser capture is shared when you send it as context. Provider retention and training policies are governed by those services. Mains records transcripts and tool activity locally for you to inspect.

Credentials

Desktop encrypts connected-service credentials using macOS Keychain-backed storage. Mains Server cannot decrypt those desktop entries. Reauthorizing a connection on Server stores a separate host credential without replacing Desktop’s entry. Protect access to the server data directory. Provider CLI authentication remains on the execution host. Bridge never syncs provider credentials, service-connection tokens, or Git authentication.

Bridge

Bridge is optional and off until you sign in. After you sign in, each device encrypts synced chats, Atlas Pages and files, and related project records before sending them to a hub that Mains operates. See Work across devices for what syncs. The hub stores ciphertext. It cannot read content, file names, or file types. It does see your account email, device names and platforms, when each device was last online, storage use, and the size and timing of encrypted records. Your devices hold the account key. The recovery code is never sent to the hub. If you lose every approved device and the recovery code, nobody can unlock your Bridge data, including Mains. Revoking a device cannot delete data it already downloaded. Turn off Project sync for a Code project to keep its new chats and changes off the hub. See Bridge privacy and security for the full data flow.

Remote access

Mains Connect connects directly to your own backend over LAN, Tailscale, or SSH. It is separate from Bridge and sends no data through the Bridge hub. Each paired phone receives a revocable device token. Pairing codes expire and are single-use. The owner token grants broader backend access; keep it private. Browser login uses a short-lived, one-use link and session cookies instead of putting the owner token in a URL.

Phone sharing and deletion

The phone asks for AI data-sharing consent per backend and provider before sending the first prompt. Review or withdraw it in AI Data Sharing. Forget this computer removes pairing and cached backend data from the phone. Revoke the device on the host to remove its ability to reconnect. Archiving a run retains its attachments. Deleting a run can remove run-owned files. Atlas copies saved explicitly survive source-conversation deletion; Pages and saved files use their own Trash.

Analytics and policy

The Mains apps do not include analytics, advertising, or crash-reporting SDKs. Update checks, provider requests, and services you connect still make network requests. The website’s privacy policy separately describes its cookieless analytics. See the official privacy policy for legal terms and current disclosures.