OpenHands Agent Canvas: How to Install It on Windows and Mac

By Shah Rukh, software developer · · 7 min read

OpenHands Agent Canvas is an open-source control centre for AI coding agents. It runs on your own computer, opens in your browser, and lets you start coding conversations and set up automations. This guide covers what it is, what you need, how to install it on Windows and Mac, and the precautions to take first.

Read this first. The software is free, but the AI model behind it is not included. You bring your own model, which usually means a paid API key or an existing subscription to an agent such as Claude Code or Codex. Also, two of the four install options run the agent directly on your computer, and the project warns that the agent then has full access to your filesystem. Beginners should use the Docker option.

What OpenHands Agent Canvas is

A coding agent is an AI program that reads a project, edits files and runs commands for you. The OpenHands repository now holds Agent Canvas, which the project describes as “the self-hosted developer control center for coding agents and automations”. Self-hosted means you run it yourself instead of using someone else’s website.

It comes with the open-source OpenHands agent. The project says it can also drive Claude Code, Codex, Gemini, or any agent that speaks ACP (Agent-Client Protocol, a common way for apps to talk to agents). The README marks the project status as beta.

PartWhat it does
Agent CanvasThe page you open in your browser to chat with agents and manage them
Agent ServerThe program that actually runs the agents on a machine
Automation ServerRuns agents on a schedule or when an event happens
BackendAny machine running an Agent Server: your laptop, a Docker container, a cloud server

The project says automations can connect to services such as Slack, GitHub, Linear and Notion. One Canvas can connect to several backends and switch between them.

What you need

The code is under the MIT licence, so it is free to use and modify. OpenHands also sells OpenHands Cloud and OpenHands Enterprise, which are optional. The repository gives minimum hardware only for a server install: it says 2 vCPU and 4 GB RAM “is plenty for a single user”.

Precautions before you install

  1. Prefer the Docker sandbox. With Docker, the agent can only reach the folders you share with it. Without it, the agent can read and change anything your user account can.
  2. Back up your projects. Commit your work to Git or copy the folder before letting an agent edit it. Share a folder that holds only the projects you want touched.
  3. Keep it on your own machine. The quickstart publishes port 8000 on 127.0.0.1 only, which means other devices on your network cannot reach it. Do not change this unless you follow the project’s self-hosting guide.
  4. Know where secrets live. Settings are saved in a .openhands folder in your home directory. API keys are stored in the app under Settings → Secrets. The self-hosting guide also notes that the browser’s local storage holds the session key of every backend you register, so do not use a shared browser profile.
  5. Your code goes to the AI provider. Whatever the agent reads is sent to the model provider you chose. Check that provider’s terms before using private or client code.
  6. Pin what you run. The quickstart uses a fixed image tag, 1.24.0. Copy commands from the official README, not from random sites.
  7. Review what the agent did. You are responsible for code the agent writes, including any licence issues in it.

How to install OpenHands on Windows

The project’s Windows document covers the Docker option only. It does not document running the npm option on native Windows.

  1. Install Docker Desktop for Windows and start it.
  2. Open PowerShell or Windows Terminal.
  3. Run these commands. They download the image, create a projects folder and a .openhands folder, and start the container.
docker pull ghcr.io/openhands/agent-canvas:1.24.0

$env:PROJECTS_PATH = Join-Path $HOME "projects"
New-Item -ItemType Directory -Force -Path $env:PROJECTS_PATH, (Join-Path $env:USERPROFILE ".openhands") | Out-Null

docker run -it --rm `
  -p 127.0.0.1:8000:8000 `
  -e AGENT_CANVAS_ALLOW_LAN_SESSION_KEY=true `
  -v "$($env:USERPROFILE)\.openhands:/home/openhands/.openhands" `
  -v "$($env:PROJECTS_PATH):/projects" `
  ghcr.io/openhands/agent-canvas:1.24.0

Then open http://localhost:8000/canvas in your browser. The agent can reach any project inside your projects folder.

There is also a mode that gives every conversation its own container. On Windows the project says this must run inside WSL 2 (Windows’ built-in Linux), because “the native Windows host is not supported by this runtime”.

How to install OpenHands on Mac

Mac has two documented routes. The same commands work on Linux.

Route 1: Docker sandbox (recommended). Install Docker Desktop, open Terminal, and run:

export PROJECTS_PATH="$HOME/projects"
mkdir -p "$PROJECTS_PATH" "$HOME/.openhands"

docker run -it --rm \
  -p 127.0.0.1:8000:8000 \
  -e AGENT_CANVAS_ALLOW_LAN_SESSION_KEY=true \
  -v "$HOME/.openhands:/home/openhands/.openhands" \
  -v "$PROJECTS_PATH:/projects" \
  ghcr.io/openhands/agent-canvas:1.24.0

Open http://localhost:8000/canvas.

Route 2: npm, without a sandbox. You need Node.js 24 or later and uv. The self-hosting guide says to install both with brew on macOS. Then run:

npm install -g @openhands/agent-canvas
agent-canvas

Open http://localhost:8000 (no /canvas for this route). Remember the warning: this runs the agent straight on your Mac with full file access.

To give each conversation its own Docker container, keep Docker Desktop running and start it like this instead:

OH_CONVERSATION_RUNTIME=docker agent-canvas

The project notes that this isolates conversations only. Canvas itself and the automation service still run on your Mac.

First use

  1. Open the address for your install route in a browser.
  2. Follow the onboarding screens to choose an agent. The default is the OpenHands agent; Claude Code, Codex and Gemini are also offered.
  3. Add your model details. API keys go under Settings → Secrets, and you can change the agent later under Settings → Agent.
  4. Start a new conversation, pick a project from your projects folder, and give the agent a small, low-risk task first.

The repository documents the settings screens but not a full click-by-click tour, so the exact wording on screen may differ.

Useful settings and options

OptionWhat it does
agent-canvas --frontend-onlyStarts only the web page part
agent-canvas --backend-onlyStarts only the Agent Server and automation backend
--host 0.0.0.0 or OH_BIND_HOSTListens on all network interfaces. The session key is then not filled in for you; you must enter an API key in the page
--publicPublic mode for servers. Visitors must paste the key before using the page
LOCAL_BACKEND_API_KEYThe key that protects the Agent Server. Set it to a strong value. If you leave it unset, the launcher generates and saves one

If you ever expose the tool beyond your own computer, the project’s guide suggests creating the key with openssl rand -base64 32 and locking down the firewall before the first start. Our password generator can also make a long random value in your browser.

Updating and uninstalling

The project does not document update or uninstall steps. For Docker, the version is the tag at the end of the image name, so check the README for the current tag. The --rm flag in the quickstart removes the container when you stop it, while your settings stay in the .openhands folder.

Common problems

ProblemLikely cause and fix
Page does not load after a Docker startUse http://localhost:8000/canvas. Only the npm and source routes use the address without /canvas.
docker command failsDocker Desktop is not running. Start it and try again.
Agent cannot see your projectThe project must sit inside the folder you set as PROJECTS_PATH, and that folder must exist before you start the container.
agent-canvas fails to startCheck that Node.js is version 24 or later and that uv is installed.
Page asks for an API keyYou are in public mode or listening on all interfaces. Enter the value of LOCAL_BACKEND_API_KEY. For Docker, the README gives a command to read the generated key from the container.
Multiple-sandbox mode fails on WindowsIt is not supported on native Windows. Run it inside WSL 2 with Docker Desktop’s WSL integration turned on.
Two conversations overwrite each other’s filesThey share the same folder. The project advises separate directories or worktrees.

This guide is based on the project’s repository as it was on October 2, 2026. Commands, version numbers and features can change, so check the official README before you install. ToolsCloset is not connected to the project.

Frequently asked questions

Is OpenHands Agent Canvas free?

The software is open source under the MIT licence and free to install. The AI model is not included, so you normally pay a model provider or use an existing agent subscription. OpenHands Cloud and Enterprise are separate paid offerings.

Does OpenHands work on Windows?

Yes, through Docker Desktop. The project’s Windows document covers the Docker option only. The mode that gives each conversation its own container needs WSL 2 because native Windows is not supported for it.

Which address do I open after installing?

For the Docker image, open http://localhost:8000/canvas. For the npm or source install, open http://localhost:8000.

Is it safe to run without Docker?

The project warns that without a sandbox the agent has full access to your filesystem. Use the Docker option unless you understand that risk, and back up your projects first.

Can I use Claude Code or Codex with it?

The project says Agent Canvas can run OpenHands, Claude Code, Codex, Gemini or any ACP-compatible agent. You still need your own login or API key for those agents.

Where are my API keys stored?

API keys are kept in the app under Settings, in the Secrets panel, and app data is saved in the .openhands folder in your home directory. Do not share that folder or your browser profile.

How do I update or uninstall it?

The repository does not document update or uninstall steps. With Docker, the version is the image tag shown in the README, and stopping the container removes it because the quickstart uses the --rm flag.

More AI tips

🤖

EmailOSINT Review and Guide

See which accounts, data breaches and stolen-password logs are tied to your email, and what to do about each result.

🤖

Free Claude Code Setup Guide

Run the Claude Code app with free AI models on Windows or Mac. Full steps, plus the precautions most guides skip.

🤖

Dify Self-Hosting Guide

Run the Dify AI app builder on your own computer with Docker Compose, and know the costs and licence limits first.

🤖

LibreChat Docker Setup Guide

Run your own ChatGPT-style chat app on your computer with Docker. Full steps, real costs and safety checks.

🤖

Unity MCP Setup Guide

Let Claude Code, Cursor or Copilot work inside the Unity Editor. Full install steps, plus the precautions to take first.

🤖

sprite-gen Setup Guide

Turn one character drawing into a transparent game sprite sheet. Setup steps, real costs and precautions.

🤖

Logo Design Skill Setup Guide

Add a free logo-design skill to Claude or another AI agent on Windows or Mac, with the precautions to take first.

🤖

Openvid Screen Demo Guide

Record your screen and turn it into a polished demo in the browser, or run Openvid yourself on Windows or Mac.

🤖

ReelMimic Setup Guide

Set up ReelMimic to make an original 2D animation in the style of a reference video, with the copyright checks to do first.

Related tools

🔑

Password Generator

Strong random passwords with a strength meter.

⬇️

Markdown to HTML

Convert Markdown to clean HTML with live preview.

🔤

Base64 Encoder / Decoder

Encode or decode Base64 text (UTF-8 safe).