GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing docs.openhands.dev — Install Agent Canvas - OpenHands Docs Quick StartInstall Agent Canvas with npm and start the full local stack:http://localhost:8000; open that URL manually if your browser does not. Then follow First Time Setup to configure a model and open a workspace. If installation or startup fails, see Verify Prerequisites.
If you would rather not install npm packages, prefer an installer with bundled Node.js and uv, or want a sandboxed setup, see More Install Options below.
Treat agents and ACP processes as untrusted: they can run shell commands and read or write files with your user account’s permissions. Agent Canvas is the client and does not isolate them — use a container, sandbox, or VM for a tighter boundary, and review VM / Self-Hosted Installation before exposing backend services to a network you do not control. More Install OptionsTheagent-canvas launcher runs the Canvas client with Agent Server, Automation Server, and ingress as an all-in-one local stack. Use npm or npx for direct local execution, or Docker for a containerized stack with explicit project mounts. You can also run the client separately and connect it to an existing backend.
For an installer, choose the desktop preview below. For a browser setup, use npx for a quick first run or npm for a reusable agent-canvas command. Use Docker when you specifically want sandboxing.Desktop App (Preview Build)The desktop app is an early preview for user testing. It bundles Node.js anduv, starts its local backend automatically, and does not require you to install npm packages, clone the source, or keep a terminal open. Skip the command-line prerequisites and installation sections below.
Preview builds may have rough edges. The macOS app is not yet signed with an Apple Developer ID or notarized, so Gatekeeper may block it; see desktop troubleshooting. Windows may show a SmartScreen prompt. Current installers support Apple silicon and Intel Macs, and x64 Windows and Linux. <version> in the filenames below with the release version. Older builds are on the releases page.
macOS
uv for both Apple silicon and Intel Macs.
Windows
LinuxChoose a package from the latest release assets:
First LaunchDuring startup, select Show details to view and copy the live startup log if startup takes longer than expected or fails. Once the app opens, follow First Time Setup to configure a model and open a workspace. The desktop app can also run conversations in DigitalOcean sandboxes. See DigitalOcean Managed Agents.Troubleshooting and LifecycleIf macOS reports that the app is damaged or cannot be opened, first confirm that you downloaded it from the official OpenHands release. After moving it to Applications, clear its quarantine attribute in Terminal, then launch it again:Settings > Application also shows the installed version and can check for updates. To uninstall, quit the app and move it to the Trash on macOS, uninstall it from Installed apps on Windows, or remove the AppImage or Debian package on Linux.
Please join the OpenHands Slack community to share preview feedback and open an issue for problems you find.
Verify PrerequisitesThese prerequisites apply to the npm, npx, and Docker methods. Desktop installer users can go directly to First Time Setup.
Install Node.js 24 or later and uv, then verify both tools are available:uv or uvx is missing, install uv before starting Agent Canvas. The local agent server runtime uses it.Install Docker and make sure the Docker daemon is running: Termux and other mobile Linux environments are not a primary supported target. For the most reliable local setup, use macOS, Linux, Windows with PowerShell, or Windows with WSL2. Install And Run
Install the published package globally: http://localhost:8000 by default. If your browser does not open automatically, open that URL manually.Use a named Docker volume for persistent settings and a host directory for project files, then start the container.macOS / Linux: http://localhost:8000/canvas. The agent can access project files under the mounted /projects directory. The 127.0.0.1: prefix publishes the port on your machine only, so other devices on your network cannot reach the agent server.Docker listens on all interfaces inside the container so port publishing works. By default, that prevents Agent Canvas from embedding its session API key in the page, and the browser asks you to enter the key. The commands above explicitly opt in with AGENT_CANVAS_ALLOW_LAN_SESSION_KEY=true while keeping the published host port on localhost. On first connection, the UI receives the key automatically; you do not need a model-provider key to connect to the backend.Anyone who can reach the frontend can obtain an embedded session key and access the backend. Keep this opt-in paired with -p 127.0.0.1:8000:8000. If you publish on a LAN or public interface, or expose the UI through a proxy or tunnel, omit AGENT_CANVAS_ALLOW_LAN_SESSION_KEY and enter the backend key manually. For internet-facing deployments, follow VM / Self-Hosted Installation.openhands-data on first use and keeps it after the container exits, including with --rm. Reuse the same volume on subsequent runs. The image places new default conversation workspaces under /home/openhands/.openhands/agent-canvas/workspaces in this volume, so they survive container recreation with the same volume. The /projects bind mount remains separate; the volume does not copy older workspaces or host project directories into it.The example uses --rm, which does not enable automatic recovery. If you need Docker to restart the container when Agent Server stops responding, run it with a restart policy such as --restart unless-stopped instead of --rm. Agent Canvas exits with a failure status when Agent Server stops responding, allowing that policy to restart it.On Linux, binding ~/.openhands can cause unable to open database file: the container user defaults to UID 10001, while the host directory is usually owned by your own user, such as UID 1000. A named volume avoids this ownership mismatch. Switching to a new volume does not copy existing settings from ~/.openhands.10001 by default) can write to the mounted paths. On SELinux hosts, check the bind mount’s labeling as well. An intentionally read-only workspace is allowed with a warning.To move existing settings from ~/.openhands into the volume, run this once before starting Agent Canvas:PowerShell uses backticks ( `) for line continuation. If Docker reports that it cannot connect to the daemon, start Docker Desktop and run the command again.Run the latest published package without installing it globally: http://localhost:8000 by default. If your browser does not open automatically, open that URL manually.Use npx when you want to try Agent Canvas once, avoid global package installs, or work around a shell PATH issue with the global agent-canvas command.Use the source workflow only when you want to modify Agent Canvas itself: Confirm It StartedAfter startup:
Run Agent Canvas AgainAfter you close the terminal or restart your computer, start Agent Canvas with the same command you used to install it. Keep that terminal or Docker container running while you use the browser UI.
Run the same docker run command from Install and Run. The browser connects to the host port you map, while the backend and model configuration run where the Agent Canvas process or container is running.Common Startup Options
8000 is already in use, start Agent Canvas on another port:
Environment Variables
Session Keys And The API-Key PromptAgent Canvas uses different credentials for connecting to a backend and accessing a model:
OH_SECRET_KEY is a separate encryption secret for stored settings; do not enter it at the API-key prompt.
Recover When Docker Asks For A KeyThe prompt is expected when automatic session-key delivery is disabled. You can authenticate without recreating your settings volume:
Configure Your Own Docker Backend KeyTo supply a key instead of using the generated one, setLOCAL_BACKEND_API_KEY in your host environment to a strong, unique secret, then add -e LOCAL_BACKEND_API_KEY to docker run. Docker passes the environment value into the container. Supply the same value on subsequent runs; an explicitly configured key takes precedence over the generated key file and does not replace that file.
When automatic key delivery is disabled, users must enter this value in the UI. Do not enable automatic delivery to bypass authentication on a shared or public deployment.
Stop Agent Canvas
Return to the terminal running Agent Canvas and press Ctrl+C.Return to the terminal running Agent Canvas and press Ctrl+C.Return to the terminal running the container and press Ctrl+C.If the container is running in the background, stop it with:Update Agent Canvas
Stop Agent Canvas, then reinstall the latest package: Stop Agent Canvas, then run the latest package: Stop the running container, pull the latest image, then run the container again: ~/.openhands for npm and npx, and in the openhands-data volume for Docker. Pulling a new image does not change the volume.
Recover or reset: Use Troubleshooting when the browser is blank, a port is busy, the backend is unreachable, a model or API key fails, or an update or uninstall is stuck. It also explains clean removal and reinstall. Uninstall Agent Canvas
Stop any running Agent Canvas process, then uninstall the package: uv.exe or another file is in use, close terminals running Agent Canvas, stop related processes, and run the uninstall command again.There is no Agent Canvas package to uninstall when you use npx. Stop the running process with Ctrl+C.If you want to clear downloaded package cache entries, use npm’s cache commands:Stop any running container, then remove the image if you no longer need it: ~/.openhands for npm and npx, or the openhands-data volume for Docker. If you bound ~/.openhands in an older Docker setup, remove that directory too.
Next StepsFirst Time SetupChoose your agent, connect a backend, and add a model. Connect and Manage BackendsAdd, switch, and remove the backends Canvas connects to. Manage LLM ProfilesSave model configurations and switch between them in conversations. TroubleshootingFix install, startup, backend, and model issues. Was this page helpful? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |