Skip to main content
Mains Desktop is for macOS on Apple Silicon and Intel. Mains Server runs on macOS or Linux and provides a browser interface. The iPhone companion controls a backend; Android has not shipped.
No. Claude and Codex support Work and Chat without a repository. Code uses projects and workspaces. Atlas Page conversations use Work.
Their runtimes are bundled with Mains. Sign in during onboarding or through provider settings. Codex and Cursor need their own installed CLIs. See Install.
Enable it in Settings → General → Active agents, then open its provider Settings section. Check runtime status and account authentication. For installed CLIs, use codex login or agent login as appropriate. Copilot, GitHub Connections, and GitHub CLI authentication are separate.
No. New installs start with worktrees off. Turn them on in Settings → Git, or create another worktree from the project. Chats sharing one workspace share its files.
Read the Git error. Check whether the branch is already checked out in another worktree, whether the path already exists, and whether uncommitted files conflict. Inspect git worktree list before changing worktree records.
Restoring the workspace record does not recreate a directory removed by an archive script or another tool. Restore the checkout separately, then verify its path. Archive itself does not automatically delete a worktree.
Check the conversation and menu bar for a pending approval or question. Use Stop if you need to cancel. Stopping leaves file changes for you to review; it does not Undo them.
Overlapping edits can mark it as shared, and later changes can prevent the reverse patch from applying. Inspect turn changes and the current diff. Separate worktrees reduce overlapping file edits.
Stop, failure, archive, disconnection, or a backend change pauses delivery. Resume the queue explicitly. Unsaved queue state disappears on reload or app close.
Check the selected provider and run mode, installation scope, enabled state, and connection authentication. Refresh capabilities or start a new session. Claude settings do not configure every other provider.
Check Codex’s account and CLI status and whether the Image Gen skill is available and enabled. Use the image workspace’s refresh action after setup.
Only an explicit Save to Atlas makes a permanent file copy. Items shown under Generated or Uploads remain run-owned until saved. Native Pages already have their own library lifecycle.
Check the GitHub connection, token permissions, and selected repositories. Sync for issue freshness. The PR inbox fetches live GitHub data separately. Creating a PR through Git actions also needs authenticated gh.
Check that the backend is running and awake and that the phone can reach its advertised address. Production mobile builds need a secure endpoint such as Tailscale HTTPS. A revoked token needs fresh pairing; a version mismatch needs an update.
They use the same data directory by default. Quit one backend before starting the other, or choose an isolated server directory with —data-dir. Do not remove the ownership lock while a backend is running.
Mains uses this entry to encrypt and read connection credentials. Allow access when you want those connections to work. Denying it can prevent stored credentials from being read.
Stop the backend and preserve its whole data directory, including attachments, collection sources, and Atlas files alongside the database. Your repositories and provider credentials may need separate backups.
Bridge copies encrypted Atlas and chat data between independent backends, so synced work is there even when the other device is off. Mains Connect points a client at one running backend. Synced chats are read-only on other devices; use remote control to act on one.
Bridge is a closed beta. Sign in with the exact email address Mains invited. With GitHub, that email must be verified on your GitHub account, and plus aliases or dots count as different addresses. Without an invitation, the browser page says access is unavailable. If the page says Email is paused for today, continue with GitHub or try again tomorrow. See Get started.
The new device needs two checks. On an approved device, open Bridge, find Device setup, type the code shown on the new device, and choose Approve device. Then enter the join code that Device setup now shows on the new device. If no approved device is available, use your recovery code. See Add another device.
Read only means new uploads are paused because storage is full or beta access ended. You can still read, download, and delete synced data, and your changes queue on the device. Sync paused means something needs attention; your local data is kept. Choose Refresh access status under Beta access, then check Storage and access.N changes need attention under Account lists changes Mains could not upload yet. Everything else keeps syncing, and Mains retries them. Choose Retry now to try again at once. Upload limit reached; resuming at a time is not an error: Mains pauses uploads for about a minute. See When a change cannot sync.
On a signed-in device, choose New recovery code on the Bridge page. The previous code stops working. If you lost every approved device and the code, nobody can unlock your encrypted Bridge data, including Mains. See Privacy and security.
If you need help, email team@mains.dev or open an issue on GitHub. Include the Mains version, provider, and relevant error text.