Resolve common setup, agent, workspace, library, and remote-access problems
Which platforms are supported?
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.
Do I need a repository for every chat?
No. Claude and Codex support Work and Chat without a repository. Code uses projects and workspaces. Atlas Page conversations use Work.
Do Claude and Copilot need a separate CLI install?
Their runtimes are bundled with Mains. Sign in during onboarding or through provider settings. Codex and Cursor need their own installed CLIs. See Install.
My agent is unavailable or signed out
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.
Does every workspace have an isolated worktree?
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.
A branch switch or worktree creation failed
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.
An archived workspace came back with missing files
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.
A run is waiting or appears stuck
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.
Why can I not Undo a turn?
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.
My queued Codex message stopped sending
Stop, failure, archive, disconnection, or a backend change pauses delivery. Resume the queue explicitly. Unsaved queue state disappears on reload or app close.
A skill, plugin, or MCP tool is missing
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.
Image creation in Atlas is unavailable
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.
Will Atlas keep a generated file if I delete its chat?
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.
GitHub issues or PRs do not appear
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.
The phone cannot connect
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.
Desktop and Server report that the database is already in use
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.
macOS asks for Mains Safe Storage Keychain access
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.
How do I back up local work?
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.
How is Bridge different from Mains Connect?
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.
I cannot join Bridge or activate the beta
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.
A new device is stuck waiting in Bridge
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.
Bridge shows Read only, Sync paused, or changes that need attention
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.
I lost my Bridge recovery code
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.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mains","description":"Code, Work, and Chat with AI agents in Mains, with Atlas and connected task context","colors":{"primary":"#878580","light":"#fff","dark":"#0C0C0C"},"logo":{"light":"https://mintcdn.com/truelaurel/5xCc2j6h7zMlnmQQ/images/docs.png?fit=max\u0026auto=format\u0026n=5xCc2j6h7zMlnmQQ\u0026q=85\u0026s=586a97bae16dc9d71532c86534535906","dark":"https://mintcdn.com/truelaurel/5xCc2j6h7zMlnmQQ/images/docs.png?fit=max\u0026auto=format\u0026n=5xCc2j6h7zMlnmQQ\u0026q=85\u0026s=586a97bae16dc9d71532c86534535906"},"favicon":"https://mintcdn.com/truelaurel/b8FimJWSWgesRQSk/favicon.svg?fit=max\u0026auto=format\u0026n=b8FimJWSWgesRQSk\u0026q=85\u0026s=03d7b53377c5ffeb60b5c440bf3ba4a6","appearance":{"default":"system"},"background":{"color":{"dark":"#0C0C0C"}},"navbar":{"links":[{"href":"https://mains.dev","label":"Website"},{"href":"mailto:team@mains.dev","label":"Support"}],"primary":{"type":"button","label":"Download","href":"https://github.com/mainsdotdev/mains/releases/latest"}},"footer":{"socials":{"github":"https://github.com/mainsdotdev/mains"}},"fonts":{"family":"Geist"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"truelaurel","hasAudioNarration":false,"actualSubdomain":"truelaurel","customDomains":["docs.mains.dev"],"gitSource":{"type":"github","owner":"mainsdotdev","repo":"docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae03dfe87a96311da527476","collectionId":"67508890-d3aa-47a1-b62f-29d92008dcd0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae03dfe87a96311da527476"},"entitlements":{},"buildId":"6ae03dfe87a96311da527476","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Guides","count":46},{"language":"default","tag":"Integrations","count":13},{"language":"default","tag":"Agents","count":11},{"language":"default","tag":"Code workflow","count":10},{"language":"default","tag":"Connections","count":8},{"language":"default","tag":"Core concepts","count":7},{"language":"default","tag":"Working with agents","count":6},{"language":"default","tag":"Mains Connect","count":6},{"language":"default","tag":"Codex","count":5},{"language":"default","tag":"Extend your agents","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"faq","slug":"/faq","pageMetadata":{"title":"FAQ and troubleshooting","description":"Resolve common setup, agent, workspace, library, and remote-access problems","icon":"circle-question","href":"/faq"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Resolve common setup, agent, workspace, library, and remote-access problems\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Accordion,AccordionGroup}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);return _jsxs(_Fragment,{children:[_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Which platforms are supported?`,id:`which-platforms-are-supported`,children:_jsxs(_components.p,{children:[`Mains Desktop is for macOS on Apple Silicon and Intel. `,_jsx(_components.a,{href:`/server`,children:`Mains Server`}),` runs on macOS or Linux and provides a browser interface. The `,_jsx(_components.a,{href:`/mobile`,children:`iPhone companion`}),` controls a backend; Android has not shipped.`]})}),_jsx(Accordion,{title:`Do I need a repository for every chat?`,id:`do-i-need-a-repository-for-every-chat`,children:_jsxs(_components.p,{children:[`No. Claude and Codex support `,_jsx(_components.a,{href:`/modes`,children:`Work and Chat`}),` without a repository. Code uses projects and workspaces. Atlas Page conversations use Work.`]})}),_jsx(Accordion,{title:`Do Claude and Copilot need a separate CLI install?`,id:`do-claude-and-copilot-need-a-separate-cli-install`,children:_jsxs(_components.p,{children:[`Their runtimes are bundled with Mains. Sign in during onboarding or through provider settings. Codex and Cursor need their own installed CLIs. See `,_jsx(_components.a,{href:`/install`,children:`Install`}),`.`]})}),_jsx(Accordion,{title:`My agent is unavailable or signed out`,id:`my-agent-is-unavailable-or-signed-out`,children:_jsxs(_components.p,{children:[`Enable it in `,_jsx(_components.strong,{children:`Settings → General → Active agents`}),`, then open its provider Settings section. Check runtime status and account authentication. For installed CLIs, use `,_jsx(_components.strong,{children:`codex login`}),` or `,_jsx(_components.strong,{children:`agent login`}),` as appropriate. Copilot, GitHub Connections, and GitHub CLI authentication are separate.`]})}),_jsx(Accordion,{title:`Does every workspace have an isolated worktree?`,id:`does-every-workspace-have-an-isolated-worktree`,children:_jsxs(_components.p,{children:[`No. New installs start with worktrees off. Turn them on in `,_jsx(_components.strong,{children:`Settings → Git`}),`, or create another worktree from the project. Chats sharing one workspace share its files.`]})}),_jsx(Accordion,{title:`A branch switch or worktree creation failed`,id:`a-branch-switch-or-worktree-creation-failed`,children:_jsxs(_components.p,{children:[`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 `,_jsx(_components.strong,{children:`git worktree list`}),` before changing worktree records.`]})}),_jsx(Accordion,{title:`An archived workspace came back with missing files`,id:`an-archived-workspace-came-back-with-missing-files`,children:_jsx(_components.p,{children:`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.`})}),_jsx(Accordion,{title:`A run is waiting or appears stuck`,id:`a-run-is-waiting-or-appears-stuck`,children:_jsxs(_components.p,{children:[`Check the conversation and menu bar for a pending `,_jsx(_components.a,{href:`/approvals`,children:`approval or question`}),`. Use Stop if you need to cancel. Stopping leaves file changes for you to review; it does not Undo them.`]})}),_jsx(Accordion,{title:`Why can I not Undo a turn?`,id:`why-can-i-not-undo-a-turn`,children:_jsxs(_components.p,{children:[`Overlapping edits can mark it as shared, and later changes can prevent the reverse patch from applying. Inspect `,_jsx(_components.a,{href:`/turn-changes`,children:`turn changes`}),` and the current diff. Separate worktrees reduce overlapping file edits.`]})}),_jsx(Accordion,{title:`My queued Codex message stopped sending`,id:`my-queued-codex-message-stopped-sending`,children:_jsx(_components.p,{children:`Stop, failure, archive, disconnection, or a backend change pauses delivery. Resume the queue explicitly. Unsaved queue state disappears on reload or app close.`})}),_jsx(Accordion,{title:`A skill, plugin, or MCP tool is missing`,id:`a-skill-plugin-or-mcp-tool-is-missing`,children:_jsx(_components.p,{children:`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.`})}),_jsx(Accordion,{title:`Image creation in Atlas is unavailable`,id:`image-creation-in-atlas-is-unavailable`,children:_jsxs(_components.p,{children:[`Check Codex’s account and CLI status and whether the `,_jsx(_components.strong,{children:`Image Gen`}),` skill is available and enabled. Use the image workspace’s refresh action after setup.`]})}),_jsx(Accordion,{title:`Will Atlas keep a generated file if I delete its chat?`,id:`will-atlas-keep-a-generated-file-if-i-delete-its-chat`,children:_jsxs(_components.p,{children:[`Only an explicit `,_jsx(_components.strong,{children:`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.`]})}),_jsx(Accordion,{title:`GitHub issues or PRs do not appear`,id:`github-issues-or-prs-do-not-appear`,children:_jsxs(_components.p,{children:[`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 `,_jsx(_components.strong,{children:`gh`}),`.`]})}),_jsx(Accordion,{title:`The phone cannot connect`,id:`the-phone-cannot-connect`,children:_jsx(_components.p,{children:`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.`})}),_jsx(Accordion,{title:`Desktop and Server report that the database is already in use`,id:`desktop-and-server-report-that-the-database-is-already-in-use`,children:_jsxs(_components.p,{children:[`They use the same data directory by default. Quit one backend before starting the other, or choose an isolated server directory with `,_jsx(_components.strong,{children:`—data-dir`}),`. Do not remove the ownership lock while a backend is running.`]})}),_jsx(Accordion,{title:`macOS asks for Mains Safe Storage Keychain access`,id:`macos-asks-for-mains-safe-storage-keychain-access`,children:_jsx(_components.p,{children:`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.`})}),_jsx(Accordion,{title:`How do I back up local work?`,id:`how-do-i-back-up-local-work`,children:_jsx(_components.p,{children:`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.`})}),_jsx(Accordion,{title:`How is Bridge different from Mains Connect?`,id:`how-is-bridge-different-from-mains-connect`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/bridge/overview`,children:`Bridge`}),` copies encrypted Atlas and chat data between independent backends, so synced work is there even when the other device is off. `,_jsx(_components.a,{href:`/relay/overview`,children:`Mains Connect`}),` points a client at one running backend. Synced chats are read-only on other devices; use remote control to act on one.`]})}),_jsx(Accordion,{title:`I cannot join Bridge or activate the beta`,id:`i-cannot-join-bridge-or-activate-the-beta`,children:_jsxs(_components.p,{children:[`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 `,_jsx(_components.strong,{children:`Email is paused for today`}),`, continue with GitHub or try again tomorrow. See `,_jsx(_components.a,{href:`/bridge/get-started`,children:`Get started`}),`.`]})}),_jsx(Accordion,{title:`A new device is stuck waiting in Bridge`,id:`a-new-device-is-stuck-waiting-in-bridge`,children:_jsxs(_components.p,{children:[`The new device needs two checks. On an approved device, open `,_jsx(_components.strong,{children:`Bridge`}),`, find `,_jsx(_components.strong,{children:`Device setup`}),`, type the code shown on the new device, and choose `,_jsx(_components.strong,{children:`Approve device`}),`. Then enter the join code that `,_jsx(_components.strong,{children:`Device setup`}),` now shows on the new device. If no approved device is available, use your recovery code. See `,_jsx(_components.a,{href:`/bridge/get-started#add-another-device`,children:`Add another device`}),`.`]})}),_jsxs(Accordion,{title:`Bridge shows Read only, Sync paused, or changes that need attention`,id:`bridge-shows-read-only-sync-paused-or-changes-that-need-attention`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`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. `,_jsx(_components.strong,{children:`Sync paused`}),` means something needs attention; your local data is kept. Choose `,_jsx(_components.strong,{children:`Refresh access status`}),` under `,_jsx(_components.strong,{children:`Beta access`}),`, then check `,_jsx(_components.a,{href:`/bridge/work-across-devices#storage-and-access`,children:`Storage and access`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`N changes need attention`}),` under `,_jsx(_components.strong,{children:`Account`}),` lists changes Mains could not upload yet. Everything else keeps syncing, and Mains retries them. Choose `,_jsx(_components.strong,{children:`Retry now`}),` to try again at once. `,_jsx(_components.strong,{children:`Upload limit reached; resuming at`}),` a time is not an error: Mains pauses uploads for about a minute. See `,_jsx(_components.a,{href:`/bridge/work-across-devices#when-a-change-cannot-sync`,children:`When a change cannot sync`}),`.`]})]}),_jsx(Accordion,{title:`I lost my Bridge recovery code`,id:`i-lost-my-bridge-recovery-code`,children:_jsxs(_components.p,{children:[`On a signed-in device, choose `,_jsx(_components.strong,{children:`New recovery code`}),` on the `,_jsx(_components.strong,{children:`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 `,_jsx(_components.a,{href:`/bridge/security`,children:`Privacy and security`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[`If you need help, email `,_jsx(_components.a,{href:`mailto:team@mains.dev`,children:`team@mains.dev`}),` or open an issue on `,_jsx(_components.a,{href:`https://github.com/mainsdotdev/mains/issues`,children:`GitHub`}),`. Include the Mains version, provider, and relevant error text.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"FAQ and troubleshooting","description":"Resolve common setup, agent, workspace, library, and remote-access problems","icon":"circle-question","href":"/faq"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"truelaurel","siteName":"Mains","title":"FAQ and troubleshooting - Mains","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T06:00:34.752Z","originalFileLocation":"faq.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Resolve common setup, agent, workspace, library, and remote-access problems\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mains\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"FAQ and troubleshooting - Mains\">\u003cmeta data-mint-head property=\"og:description\" content=\"Resolve common setup, agent, workspace, library, and remote-access problems\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mains\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mains.dev/faq\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://truelaurel.mintlify.app/_mintlify/api/og/v2?division=Preferences\u0026amp;title=FAQ+and+troubleshooting\u0026amp;description=Resolve+common+setup%2C+agent%2C+workspace%2C+library%2C+and+remote-access+problems\u0026amp;theme=bc054ea503af9c21eb79f93d\u0026amp;signature=f1d860f8ba7415bfeef45afd71405d12609266eddafd69415d33abaa86be9eaa\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"FAQ and troubleshooting - Mains\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Resolve common setup, agent, workspace, library, and remote-access problems\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://truelaurel.mintlify.app/_mintlify/api/og/v2?division=Preferences\u0026amp;title=FAQ+and+troubleshooting\u0026amp;description=Resolve+common+setup%2C+agent%2C+workspace%2C+library%2C+and+remote-access+problems\u0026amp;theme=bc054ea503af9c21eb79f93d\u0026amp;signature=f1d860f8ba7415bfeef45afd71405d12609266eddafd69415d33abaa86be9eaa\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/truelaurel/NVSVhGTCMe3yQpu6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mains\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#878580\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mains.dev/faq\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/faq.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mains.dev/#organization\",\"name\":\"Mains\",\"url\":\"https://docs.mains.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/truelaurel/5xCc2j6h7zMlnmQQ/images/docs.png?fit=max\u0026auto=format\u0026n=5xCc2j6h7zMlnmQQ\u0026q=85\u0026s=586a97bae16dc9d71532c86534535906\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mains.dev#website\",\"name\":\"Mains\",\"url\":\"https://docs.mains.dev\",\"publisher\":{\"@id\":\"https://docs.mains.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mains.dev/faq#webpage\",\"url\":\"https://docs.mains.dev/faq\",\"name\":\"FAQ and troubleshooting\",\"description\":\"Resolve common setup, agent, workspace, library, and remote-access problems\",\"dateModified\":\"2026-10-27T06:00:34.752Z\",\"isPartOf\":{\"@id\":\"https://docs.mains.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mains.dev/faq#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mains.dev/faq#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Preferences\",\"item\":\"https://docs.mains.dev/settings\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FAQ and troubleshooting\",\"item\":\"https://docs.mains.dev/faq\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mains.dev/faq#article\",\"headline\":\"FAQ and troubleshooting\",\"name\":\"FAQ and troubleshooting\",\"description\":\"Resolve common setup, agent, workspace, library, and remote-access problems\",\"url\":\"https://docs.mains.dev/faq\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mains.dev/faq#webpage\"},\"dateModified\":\"2026-10-27T06:00:34.752Z\",\"publisher\":{\"@id\":\"https://docs.mains.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mains.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mains\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mains","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"Introduction","icon":"house","href":"/introduction"},{"title":"Install Mains","icon":"download","href":"/install"},{"title":"Quickstart","icon":"bolt","href":"/quickstart"}]},{"group":"Core concepts","pages":[{"title":"Spaces","icon":"layer-group","href":"/spaces"},{"title":"Code, Work, and Chat","icon":"sliders","href":"/modes"},{"title":"Projects","icon":"diagram-project","href":"/projects"},{"title":"Workspaces","icon":"folder-open","href":"/workspaces"},{"title":"Collections and sources","icon":"folder-open","href":"/collections"},{"title":"Runs and conversations","icon":"wave-pulse","href":"/runs"},{"title":"Multiple sessions","icon":"comments","href":"/multi-session"}]},{"group":"Atlas","pages":[{"title":"Atlas","icon":"book-open","href":"/atlas"},{"title":"Atlas Pages","icon":"file-lines","href":"/pages"},{"title":"Documents and deliverables","icon":"file","href":"/documents"}]},{"group":"Working with agents","pages":[{"title":"Context and attachments","icon":"paperclip","href":"/context-injection"},{"title":"Approvals and questions","icon":"hand","href":"/approvals"},{"title":"Voice conversations","icon":"microphone","href":"/voice"},{"title":"In-app browser","icon":"globe","href":"/browser"},{"title":"Lens","icon":"camera","href":"/lens"},{"title":"Search","icon":"magnifying-glass","href":"/search"}]},{"group":"Code workflow","pages":[{"title":"Code workflow","icon":"route","href":"/workflow"},{"title":"Files and editor","icon":"folder-tree","href":"/file-explorer"},{"title":"Review changes","icon":"code-compare","href":"/diff-viewer"},{"title":"Turn changes and Undo","icon":"rotate-left","href":"/turn-changes"},{"title":"Git actions","icon":"code-branch","href":"/git-actions"},{"title":"Linked tasks","icon":"link","href":"/linked-tasks"},{"title":"Tasks","icon":"list-check","href":"/tasks"},{"title":"Pull request review","icon":"code-pull-request","href":"/pull-requests"},{"title":"Agent code reviews","icon":"comment-dots","href":"/reviews"},{"title":"Terminal","icon":"terminal","href":"/terminal"}]},{"group":"Scheduling","pages":[{"title":"Pulse","icon":"clock","href":"/pulse"},{"title":"Connection auto sync","icon":"arrows-rotate","href":"/automations"}]},{"group":"Mains Connect","pages":[{"title":"Mains Connect","icon":"tower-broadcast","href":"/relay/overview"},{"title":"Share this machine","icon":"desktop","href":"/relay/share-this-machine"},{"title":"SSH tunnel","icon":"terminal","href":"/relay/ssh-tunnel"},{"title":"Direct connection","icon":"network-wired","href":"/relay/direct-connection"},{"title":"Mains Server","icon":"server","href":"/server"},{"title":"iPhone companion","icon":"mobile-screen","href":"/mobile"}]},{"group":"Bridge","pages":[{"title":"Bridge","icon":"arrows-rotate","href":"/bridge/overview"},{"title":"Get started with Bridge","icon":"right-to-bracket","href":"/bridge/get-started"},{"title":"Work across devices","icon":"laptop","href":"/bridge/work-across-devices"},{"title":"Bridge privacy and security","icon":"lock","href":"/bridge/security"}]},{"group":"Preferences","pages":[{"title":"Settings","icon":"gear","href":"/settings"},{"title":"Keyboard shortcuts","icon":"keyboard","href":"/keyboard-shortcuts"},{"title":"Usage dashboard","icon":"chart-column","href":"/stats"},{"title":"Privacy and data","description":"Understand local storage, provider sharing, credentials, remote access, and deletion","icon":"shield","href":"/privacy"},{"title":"FAQ and troubleshooting","icon":"circle-question","href":"/faq"}]}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/claude/configuration"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/connections"}]}]},"basePath":"","title":"FAQ and troubleshooting - Mains","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}