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.
| Part | What it does |
|---|---|
| Agent Canvas | The page you open in your browser to chat with agents and manage them |
| Agent Server | The program that actually runs the agents on a machine |
| Automation Server | Runs agents on a schedule or when an event happens |
| Backend | Any 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
- For the Docker option: Docker Desktop on Windows or Mac. Docker runs software inside a sealed box called a container.
- For the npm option: Node.js 24 or later, and
uv(a Python tool the launcher uses to run the Agent Server). - A projects folder holding the code you want the agent to work on.
- An AI model. The project says it works “with any LLM” (large language model). The repository lists no prices, so the cost depends on the provider you choose. Agents such as Claude Code, Codex and Gemini can sign in with a subscription login or an API key, according to the project’s ACP document.
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
- 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.
- 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.
- Keep it on your own machine. The quickstart publishes port 8000 on
127.0.0.1only, which means other devices on your network cannot reach it. Do not change this unless you follow the project’s self-hosting guide. - Know where secrets live. Settings are saved in a
.openhandsfolder 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. - 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.
- Pin what you run. The quickstart uses a fixed image tag,
1.24.0. Copy commands from the official README, not from random sites. - 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.
- Install Docker Desktop for Windows and start it.
- Open PowerShell or Windows Terminal.
- Run these commands. They download the image, create a
projectsfolder and a.openhandsfolder, 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
- Open the address for your install route in a browser.
- Follow the onboarding screens to choose an agent. The default is the OpenHands agent; Claude Code, Codex and Gemini are also offered.
- Add your model details. API keys go under Settings → Secrets, and you can change the agent later under Settings → Agent.
- 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
| Option | What it does |
|---|---|
agent-canvas --frontend-only | Starts only the web page part |
agent-canvas --backend-only | Starts only the Agent Server and automation backend |
--host 0.0.0.0 or OH_BIND_HOST | Listens on all network interfaces. The session key is then not filled in for you; you must enter an API key in the page |
--public | Public mode for servers. Visitors must paste the key before using the page |
LOCAL_BACKEND_API_KEY | The 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
| Problem | Likely cause and fix |
|---|---|
| Page does not load after a Docker start | Use http://localhost:8000/canvas. Only the npm and source routes use the address without /canvas. |
docker command fails | Docker Desktop is not running. Start it and try again. |
| Agent cannot see your project | The 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 start | Check that Node.js is version 24 or later and that uv is installed. |
| Page asks for an API key | You 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 Windows | It 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 files | They 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.