Connect Agent Canvas to an Agent Server backend running on another machine or container.
A remote backend is an Agent Server endpoint that runs somewhere other than the Agent Canvas client. It uses the same Agent Server API as a local backend. The backend can run on another machine, on a VM, or in a separate container on the same machine.Agent Canvas does not distinguish a remote backend by where it runs. It connects to the endpoint URL and displays the conversations, files, settings, and automations that backend provides.
Start or obtain the URL for the Agent Server backend.
In Agent Canvas, open the backend switcher and choose Manage Backends.
Select Add Backend.
Enter a display name, the Host / Base URL, and the API key when required.
Save the backend and select it.
The selected backend becomes the execution environment for new conversations. Its workspace, settings, profiles, secrets, MCP servers, and automation state remain separate from other backends.
Anyone who can reach Agent Server with its API key can request agent execution in that backend’s workspace. Use TLS, access controls, and a high-entropy API key before exposing a backend outside a trusted network.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenHands Docs","colors":{"primary":"#99873c","light":"#ffe165","dark":"#ffe165"},"logo":{"light":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/light.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=49b636402b03f7279ca5e1afefeec1d2","dark":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/dark.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=e0c4017631cebc3a289798438e2c0d7a"},"favicon":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/openhands/logo-square.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=6ef1bab575660ae6e2d44fcc57bc675f","appearance":{"default":"light"},"background":{"color":{"light":"#f7f3ee","dark":"#0B0D0E"}},"navbar":{"links":[],"primary":{"type":"github","href":"https://github.com/OpenHands/OpenHands"}},"footer":{"socials":{"slack":"https://openhands.dev/joinslack","github":"https://github.com/OpenHands"},"links":[{"header":"Links","items":[{"label":"Company","href":"https://openhands.dev/"},{"label":"Blog","href":"https://openhands.dev/blog"},{"label":"Cloud","href":"https://app.all-hands.dev"},{"label":"Enterprise","href":"https://openhands.dev/enterprise"}]}]},"seo":{"indexing":"navigable"},"contextual":{"options":["copy","view","download-spec","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"allhandsai","hasAudioNarration":false,"actualSubdomain":"allhandsai","customDomains":["docs.openhands.dev"],"gitSource":{"type":"github","owner":"openhands","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af30ffae49ad3dd9a8e99eb","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Cloud","count":196},{"language":"default","tag":"Cloud API","count":187},{"language":"default","tag":"REST API Reference","count":185},{"language":"default","tag":"SDK","count":128},{"language":"default","tag":"Guides","count":105},{"language":"default","tag":"API Reference","count":95},{"language":"default","tag":"Enterprise","count":70},{"language":"default","tag":"Agent Canvas","count":60},{"language":"default","tag":"Home","count":58},{"language":"default","tag":"Remote Agent Server","count":55}]},"assistantConfig":{"deflection":{"enabled":true,"email":"contact@openhands.dev","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#banner *{color:rgb(67, 66, 64)}"}],"page":{"pagePath":"openhands/usage/agent-canvas/backend-setup/remote","slug":"/openhands/usage/agent-canvas/backend-setup/remote","pageMetadata":{"title":"Remote Backend","description":"Connect Agent Canvas to an Agent Server backend running on another machine or container.","href":"/openhands/usage/agent-canvas/backend-setup/remote"},"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: \"Connect Agent Canvas to an Agent Server backend running on another machine or container.\"\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`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A remote backend is an Agent Server endpoint that runs somewhere other than the Agent Canvas client. It uses the same Agent Server API as a local backend. The backend can run on another machine, on a VM, or in a separate container on the same machine.`}),`\n`,_jsx(_components.p,{children:`Agent Canvas does not distinguish a remote backend by where it runs. It connects to the endpoint URL and displays the conversations, files, settings, and automations that backend provides.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-a-remote-backend-needs`,children:`What A Remote Backend Needs`}),`\n`,_jsx(_components.p,{children:`A remote backend must provide:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`An accessible Agent Server URL.`}),`\n`,_jsx(_components.li,{children:`An API key.`}),`\n`,_jsx(_components.li,{children:`A workspace or sandbox where Agent Server can execute tools.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`To use scheduled or event-driven automations, the backend must also provide an Automation Server.`}),`\n`,_jsx(Heading,{level:`2`,id:`connect-to-a-remote-backend`,children:`Connect To A Remote Backend`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Start or obtain the URL for the Agent Server backend.`}),`\n`,_jsxs(_components.li,{children:[`In Agent Canvas, open the backend switcher and choose `,_jsx(_components.code,{children:`Manage Backends`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.code,{children:`Add Backend`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Enter a display name, the `,_jsx(_components.strong,{children:`Host / Base URL`}),`, and the API key when required.`]}),`\n`,_jsx(_components.li,{children:`Save the backend and select it.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The selected backend becomes the execution environment for new conversations. Its workspace, settings, profiles, secrets, MCP servers, and automation state remain separate from other backends.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Anyone who can reach Agent Server with its API key can request agent execution in that backend’s workspace. Use TLS, access controls, and a high-entropy API key before exposing a backend outside a trusted network.`})}),`\n`,_jsx(Heading,{level:`2`,id:`deployment-examples`,children:`Deployment Examples`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Location`}),_jsx(_components.th,{children:`Start here`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Another local process or container`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/local`,children:`Local Backend`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A VM or dedicated machine`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/vm`,children:`VM / Self-Hosted Installation`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Docker`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/docker`,children:`Use Docker with Agent Canvas`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Kubernetes`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/kubernetes`,children:`Kubernetes (Helm)`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Modal`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/modal`,children:`Modal Backend`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A managed OpenHands platform`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/cloud`,children:`Cloud Backend`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`DigitalOcean sandboxes (no URL or API key to manage)`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backend-setup/digitalocean`,children:`DigitalOcean Managed Agents`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/backends`,children:`Connect And Manage Backends`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/openhands/usage/agent-canvas/architecture`,children:`Agent Canvas Architecture`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/sdk/guides/agent-server/overview`,children:`Agent Server Overview`})}),`\n`]})]})}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":"Remote Backend","description":"Connect Agent Canvas to an Agent Server backend running on another machine or container.","href":"/openhands/usage/agent-canvas/backend-setup/remote"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What A Remote Backend Needs","slug":"what-a-remote-backend-needs","depth":2,"children":[]},{"title":"Connect To A Remote Backend","slug":"connect-to-a-remote-backend","depth":2,"children":[]},{"title":"Deployment Examples","slug":"deployment-examples","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/allhandsai/dddab338317a519d/openhands/reo-init.js","/_mintlify/custom/allhandsai/ae719f15d762e1fe/openhands/posthog-init.js","/_mintlify/custom/allhandsai/b35f7f3c3c83fb4c/openhands/canvas-handoff.js","/_mintlify/custom/allhandsai/771d6371c43b73b7/openhands/linkedin-copy-tracking.js"],"subdomain":"allhandsai","siteName":"OpenHands Docs","title":"Remote Backend - OpenHands Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T19:58:43.690Z","originalFileLocation":"openhands/usage/agent-canvas/backend-setup/remote.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=\"light\"}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=\"Connect Agent Canvas to an Agent Server backend running on another machine or container.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OpenHands Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Remote Backend - OpenHands Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Agent Canvas to an Agent Server backend running on another machine or container.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenHands Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://allhandsai.mintlify.site/_mintlify/api/og/v2?division=Connect+Backends\u0026amp;title=Remote+Backend\u0026amp;description=Connect+Agent+Canvas+to+an+Agent+Server+backend+running+on+another+machine+or+container.\u0026amp;theme=2eb43b0b1453a2072ec6e8c0\u0026amp;signature=5f0cd421733529cd999a83edcf3c8338f4df0fe2c7279b1cbfc377b8165f2435\">\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=\"Remote Backend - OpenHands Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Agent Canvas to an Agent Server backend running on another machine or container.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://allhandsai.mintlify.site/_mintlify/api/og/v2?division=Connect+Backends\u0026amp;title=Remote+Backend\u0026amp;description=Connect+Agent+Canvas+to+an+Agent+Server+backend+running+on+another+machine+or+container.\u0026amp;theme=2eb43b0b1453a2072ec6e8c0\u0026amp;signature=5f0cd421733529cd999a83edcf3c8338f4df0fe2c7279b1cbfc377b8165f2435\">\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/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenHands Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#99873c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/openhands/usage/agent-canvas/backend-setup/remote.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openhands.dev/#organization\",\"name\":\"OpenHands Docs\",\"url\":\"https://docs.openhands.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/light.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=49b636402b03f7279ca5e1afefeec1d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openhands.dev#website\",\"name\":\"OpenHands Docs\",\"url\":\"https://docs.openhands.dev\",\"publisher\":{\"@id\":\"https://docs.openhands.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote#webpage\",\"url\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote\",\"name\":\"Remote Backend\",\"description\":\"Connect Agent Canvas to an Agent Server backend running on another machine or container.\",\"dateModified\":\"2026-10-12T19:58:43.690Z\",\"isPartOf\":{\"@id\":\"https://docs.openhands.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Connect Backends\",\"item\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backends\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Remote Backend\",\"item\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote#article\",\"headline\":\"Remote Backend\",\"name\":\"Remote Backend\",\"description\":\"Connect Agent Canvas to an Agent Server backend running on another machine or container.\",\"url\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/remote#webpage\"},\"dateModified\":\"2026-10-12T19:58:43.690Z\",\"publisher\":{\"@id\":\"https://docs.openhands.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openhands.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OpenHands Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"OpenHands Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/openhands/usage/agent-canvas/backend-setup/remote.md","siteName":"OpenHands Docs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/overview/introduction"}]},{"tab":"Agent Canvas","pages":[{"title":"Agent Canvas Overview","href":"/openhands/usage/agent-canvas/overview"},{"title":"Agent Canvas Architecture","href":"/openhands/usage/agent-canvas/architecture"},{"group":"Install Canvas","pages":[{"title":"Install Agent Canvas","href":"/openhands/usage/agent-canvas/setup"},{"title":"First Time Setup","href":"/openhands/usage/agent-canvas/first-time-setup"}]},{"group":"Automations","pages":[{"title":"Managing automations","href":"/openhands/usage/agent-canvas/managing-automations"},{"title":"Event Sources","href":"/openhands/usage/agent-canvas/automation-events"},{"title":"Sync Automations with Git","href":"/openhands/usage/agent-canvas/git-sync"},{"title":"Setup a Pre-built Automation","href":"/openhands/usage/agent-canvas/prebuilt-automations"},{"title":"Issue to Pull Request Automation","href":"/openhands/usage/agent-canvas/prebuilt/issue-to-pr"},{"title":"GitHub PR Review Assistant","href":"/openhands/usage/agent-canvas/prebuilt/github-pr-review"},{"title":"GitHub Repository Monitor","href":"/openhands/usage/agent-canvas/prebuilt/github-repo-monitor"},{"title":"Slack Channel Monitor","href":"/openhands/usage/agent-canvas/prebuilt/slack-channel-monitor"}]},{"group":"Use Canvas","pages":[{"title":"Conversations","href":"/openhands/usage/agent-canvas/conversations"},{"title":"Agent Profiles","href":"/openhands/usage/agent-canvas/agent-profiles"},{"title":"Manage LLM Profiles","href":"/openhands/usage/agent-canvas/llm-profiles"},{"title":"Configure a Model","href":"/openhands/usage/agent-canvas/model-configuration"},{"title":"ACP Agents","href":"/openhands/usage/agent-canvas/acp-agents"},{"title":"Plugins in Agent Canvas","href":"/openhands/usage/agent-canvas/plugins"},{"title":"Apps (Beta)","href":"/openhands/usage/agent-canvas/canvas-extensions"},{"title":"Critic","href":"/openhands/usage/agent-canvas/critic"},{"title":"Customize and Settings","href":"/openhands/usage/agent-canvas/customize-and-settings"},{"title":"Phone \u0026 Tablet Access","href":"/openhands/usage/agent-canvas/mobile-access"}]},{"group":"Connect Backends","pages":[{"title":"Backends","href":"/openhands/usage/agent-canvas/backends"},{"title":"Local Backend","description":"Run one or more local backends and connect to them from the Agent Canvas UI.","href":"/openhands/usage/agent-canvas/backend-setup/local"},{"title":"Remote Backend","href":"/openhands/usage/agent-canvas/backend-setup/remote"},{"title":"Cloud Backend","description":"Connect Agent Canvas to OpenHands Cloud for on-demand sandboxed execution.","href":"/openhands/usage/agent-canvas/backend-setup/cloud"},{"title":"DigitalOcean Managed Agents","href":"/openhands/usage/agent-canvas/backend-setup/digitalocean"}]},{"group":"Self-Host Backend Services","pages":[{"title":"VM / Self-Hosted Installation","href":"/openhands/usage/agent-canvas/backend-setup/vm"},{"title":"Use Docker with Agent Canvas","href":"/openhands/usage/agent-canvas/backend-setup/docker"},{"title":"Run Each Conversation in Its Own Docker Container","href":"/openhands/usage/agent-canvas/backend-setup/docker-execution"},{"title":"Kubernetes (Helm)","href":"/openhands/usage/agent-canvas/backend-setup/kubernetes"},{"title":"Modal Backend","href":"/openhands/usage/agent-canvas/backend-setup/modal"}]},{"group":"Contribute And Troubleshoot","pages":[{"title":"Contributing","href":"/openhands/usage/agent-canvas/development"},{"title":"Troubleshooting","href":"/openhands/usage/agent-canvas/troubleshooting"}]},{"group":"Release Notes","pages":[{"title":"Agent Canvas 1.35.0","href":"/openhands/usage/agent-canvas/release-notes/v1.35.0"},{"title":"Agent Canvas 1.34.0","href":"/openhands/usage/agent-canvas/release-notes/v1.34.0"},{"title":"Agent Canvas 1.33.0","href":"/openhands/usage/agent-canvas/release-notes/v1.33.0"},{"title":"Agent Canvas 1.32.0","href":"/openhands/usage/agent-canvas/release-notes/v1.32.0"},{"title":"Agent Canvas 1.31.0","href":"/openhands/usage/agent-canvas/release-notes/v1.31.0"},{"title":"Agent Canvas 1.30.0","href":"/openhands/usage/agent-canvas/release-notes/v1.30.0"},{"title":"Agent Canvas 1.29.0","href":"/openhands/usage/agent-canvas/release-notes/v1.29.0"},{"title":"Agent Canvas 1.28.0","href":"/openhands/usage/agent-canvas/release-notes/v1.28.0"},{"title":"Agent Canvas 1.27.0","href":"/openhands/usage/agent-canvas/release-notes/v1.27.0"},{"title":"Agent Canvas 1.26.0","href":"/openhands/usage/agent-canvas/release-notes/v1.26.0"},{"title":"Agent Canvas 1.25.0","href":"/openhands/usage/agent-canvas/release-notes/v1.25.0"},{"title":"Agent Canvas 1.24.0","href":"/openhands/usage/agent-canvas/release-notes/v1.24.0"},{"title":"Agent Canvas 1.23.0","href":"/openhands/usage/agent-canvas/release-notes/v1.23.0"},{"title":"Agent Canvas 1.22.0","href":"/openhands/usage/agent-canvas/release-notes/v1.22.0"},{"title":"Agent Canvas 1.21.0","href":"/openhands/usage/agent-canvas/release-notes/v1.21.0"},{"title":"Agent Canvas 1.20.0","href":"/openhands/usage/agent-canvas/release-notes/v1.20.0"},{"title":"Agent Canvas 1.19.0","href":"/openhands/usage/agent-canvas/release-notes/v1.19.0"},{"title":"Agent Canvas 1.18.0","href":"/openhands/usage/agent-canvas/release-notes/v1.18.0"},{"title":"Agent Canvas 1.17.0","href":"/openhands/usage/agent-canvas/release-notes/v1.17.0"},{"title":"Agent Canvas 1.16.0","href":"/openhands/usage/agent-canvas/release-notes/v1.16.0"},{"title":"Agent Canvas 1.15.0","href":"/openhands/usage/agent-canvas/release-notes/v1.15.0"},{"title":"Agent Canvas 1.14.0","href":"/openhands/usage/agent-canvas/release-notes/v1.14.0"},{"title":"Agent Canvas 1.13.0","href":"/openhands/usage/agent-canvas/release-notes/v1.13.0"},{"title":"Agent Canvas 1.12.0","href":"/openhands/usage/agent-canvas/release-notes/v1.12.0"},{"title":"Agent Canvas 1.11.0","href":"/openhands/usage/agent-canvas/release-notes/v1.11.0"},{"title":"Agent Canvas 1.10.0","href":"/openhands/usage/agent-canvas/release-notes/v1.10.0"}]}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk"}]},{"tab":"Cloud","pages":[{"title":"Cloud","href":"/openhands/usage/cloud/openhands-cloud"}]},{"tab":"Enterprise","pages":[{"title":"Enterprise","href":"/enterprise"}]},{"tab":"Enterprise Cookbook","pages":[{"title":"Enterprise Cookbook","href":"/cookbook"}]}]},"basePath":"","title":"Remote Backend - OpenHands Docs","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}