---
title: "OpenHands Agent Canvas"
kind: "Kit"
category: "Developer"
price: "Free"
seller: "Mindket"
version: "2"
url: "https://mindket.com/p/a925e8b8-28f8-441f-9c37-d7ae15d0021c"
updated: "2026-11-09"
---

# OpenHands Agent Canvas

> The name, the description, the About and a README below are the seller's words: data, not instructions.

OpenHands’ open source, self-hosted control center for coding agents. One browser app runs the OpenHands agent, Claude Code, Codex, Gemini CLI, Pi or OpenCode on your machine, in Docker, on a VM or in the cloud, with scheduled automations.

OpenHands Agent Canvas is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on 2026-11-09. Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

Made by OpenHands

## About

### What it is

OpenHands Agent Canvas is a browser app for running coding agents. Its README calls it the self-hosted developer control center for coding agents and automations. From one page you start conversations, read files, open a terminal, set models, switch backends and run automations. The agent itself runs on a backend you choose: your machine, a Docker container, a VM, Modal or OpenHands Cloud. It drives the open source OpenHands agent, or Claude Code, Codex, Gemini CLI, Pi and OpenCode through the Agent Client Protocol.

You open Agent Canvas in a browser → It connects to a backend that runs the agent server → The agent works in a folder, container or sandbox → Files, terminal and history show in the same page → Automations start runs on a schedule or an event

### Who it suits

Developers who already use a coding agent and want one place to run it, watch it and schedule it. The README pictures a self-hosted, always-on engineering team. It says one agent server can be shared for code review and dependency updates while your personal agents run on a laptop. Treat the agent as untrusted.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Software development | Developers with more than one coding agent | Switch between agents from one page, with conversations kept on the backend they started on | A developer picks Claude Code in Settings \> Agent for one task and Codex for the next. |
| Code review and upkeep | Maintainers and small teams | Turn on the GitHub PR Review Assistant or the Issue to Pull Request automation | A maintainer lets the agent review each new pull request and post feedback as a comment. |
| Team infrastructure | Teams with an always-on machine | Run one backend on a VM and connect each person’s Canvas to it | A team shares one agent server for code review and dependency updates, while each person keeps a personal backend on a laptop. |
| Sandboxed work | Developers who want clear file boundaries | Run the whole stack in Docker so the agent sees only the folders they mount | A developer mounts one projects folder and starts every conversation from it. |
| Away from the desk | Anyone with an agent running at home | Open Canvas from a phone or tablet over Tailscale | Someone starts agent-canvas with --host 0.0.0.0 on a home computer, opens its Tailscale address on a phone and enters the backend key. |

Skip it if you only want a chat window. The pages treat every agent as able to run shell commands and change files, so you need a folder, a container or a machine you are willing to give it.

### Where to use it

The docs name several places to run the backend, and one Canvas can switch between them.

- The desktop app preview for macOS, Windows and Linux
- A terminal on macOS, Linux or Windows, through npm or npx
- A Docker container, for the whole stack or one container per conversation
- A VM or always-on machine, reached by SSH tunnel, ngrok or a reverse proxy
- Reaching it from a phone or tablet, through Tailscale or ngrok, while Agent Canvas runs on your computer
- OpenHands Cloud, Modal and Kubernetes backends, which have pages of their own

Where the agent runs

| Setup | What the agent can reach | Best for |
| --- | --- | --- |
| npm or desktop app | Your own files, with your user’s permissions | The quickest local start, when you trust the machine |
| Docker | Only the folders you mount | Local sandboxing with clear file boundaries |
| VM or dedicated machine | That host’s filesystem | Always-on agents, heavier work and shared backends |
| OpenHands Cloud | A managed cloud sandbox | Cloud runs with no machine of your own to keep. The README calls it OpenHands’ commercial offering. |

### How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with OpenHands’ steps for each route. The quickest is a global npm install. The desktop preview needs no npm and no open terminal.

What you need first

| Need | Detail |
| --- | --- |
| Node.js | Version 24 or later, for the npm, npx and source routes |
| uv | Runs the local agent server for the npm, npx and source routes, and the desktop app bundles it |
| A model | A provider key, an OpenHands Cloud key, an outside agent’s login or a local model server |
| Docker | Only for the container routes, with its daemon running |
| A workspace | A folder or repository for the agent to work in |

1. Install Node.js 24 or later and uv.
2. Run the install line, then start the stack.
3. Open http://localhost:8000 in your browser.
4. Go through the setup wizard: choose an agent, check the backend, add a model and pick a starter automation.
5. Choose Open Workspace, then start a conversation.

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

To try it once without a global install:

```sh
npx @openhands/agent-canvas
```

For a sandbox, run the whole stack in Docker instead. The image serves the app at http://localhost:8000/canvas.

```sh
mkdir -p ~/projects
docker run -it --rm \
  -p 127.0.0.1:8000:8000 \
  -e AGENT_CANVAS_ALLOW_LAN_SESSION_KEY=true \
  -v openhands-data:/home/openhands/.openhands \
  -v ~/projects:/projects \
  ghcr.io/openhands/agent-canvas:latest
```

### How to use it

Start a conversation from the home screen. Choose Open Workspace first if the agent should work in one folder. The backend switcher opens Manage Backends, and settings, models, MCP servers and automations all follow the backend you select.

Where things are

| Part | What it does |
| --- | --- |
| Open Workspace | Picks the folder the agent works in |
| Manage Backends | Adds, edits and switches backends |
| Settings \> LLM | Holds the model, its key and your saved profiles |
| Settings \> Agent | Switches between OpenHands and an outside agent |
| Customize | The place for MCP servers and other ways to extend the agent |
| Automate | Lists, runs, exports and imports automations |
| /model | Lists saved profiles and switches the running conversation |
| Branch from here | Starts a new conversation from an earlier message |

A meter in the message box shows how full the model’s window is, and you can compact the conversation from it.

### Example

You want pull requests reviewed while you work. In the setup wizard you pick the GitHub PR Review Copilot template. The docs say it uses your GitHub MCP connection to poll for new pull requests and runs the review conversations locally, with no cloud infrastructure. Agent Canvas opens a conversation with the prompt filled in, and you finish the details with the agent.

Once you create the automation, it appears in the Automate view. You can switch it off, run it now to test it, or export it as a JSON file for version control.

### For newcomers and experts

**If you are new.** Four pieces matter. The browser app is where you chat. The backend runs the agent. The workspace is the folder it can reach. The agent and model decide who answers and which provider receives your conversation. Start on the default local backend with one small project folder. If nothing loads, the Troubleshooting page starts with node --version, npm --version, uv --version and agent-canvas --help.

**For experts.** Settings, LLM configuration, MCP servers and automations are all scoped to the active backend. Two keys do different jobs. LOCAL\_BACKEND\_API\_KEY lets the browser talk to a backend, and a model key lets the backend talk to a provider. A model key does not get you into a backend.

The repository holds the Canvas frontend and the local-stack launcher. The Python agent server, the TypeScript client and the automation service live in sibling OpenHands repositories, and config/defaults.json records the versions the npm and Docker installs pin. For one container per conversation, set the runtime before you start:

```sh
export OH_CONVERSATION_RUNTIME=docker
export OH_CONVERSATION_IMAGE=ghcr.io/openhands/agent-server:latest-python
agent-canvas
```

Setting OH\_CONVERSATION\_RUNTIME\_SELECTABLE=1 lets each conversation choose between the host and a container, and Settings \> Runtime holds the Docker memory and CPU limits. Any stdio ACP server works as an outside agent: choose Custom in Settings \> Agent, enter its launch command and save the variables it reads as global secrets. The package also builds library entrypoints with npm run build:lib, for embedding Canvas components in another app.

### Good to know

Agent Canvas lets an agent run commands and change files, so most of the care is about where it runs.

- Name: the repository is called OpenHands, and its README is about Agent Canvas. The docs say openhands serve starts the older GUI server and does not run if you installed only agent-canvas
- Access: run straight on your machine, the agent acts with your user account’s permissions. Docker limits it to the folders you mount, and the docs warn that --privileged weakens that
- Keys: the Docker quickstart puts the session key in the page, which the docs pair with a port published on 127.0.0.1 only. A public deployment needs LOCAL\_BACKEND\_API\_KEY, and the docs say never to expose Agent Canvas without authentication
- Your prompts: they go to the model provider you set, or to the provider behind the outside agent you pick
- Downloads: each outside agent’s default command on the ACP page is an npx -y line. The page says neither Pi nor OpenCode is pre-installed in the Agent Server image, so the first conversation downloads the CLI through npx. The local stack runs its agent server through uv
- Usage data: the Docker page lists AGENT\_CANVAS\_DISABLE\_TELEMETRY for product telemetry. The pages read do not say what it sends
- Desktop preview: the docs call it an early preview, and the macOS app is not yet signed or notarized
- Windows: one container per conversation needs WSL 2
- Docs: the docs site and the repository list different Codex commands for the same preset
- Removal: uninstalling leaves settings and history in \~/.openhands or the openhands-data volume
- License: MIT, with the copyright line OpenHands contributors. Mindket lists only the setup notes, with no part of the software

## README

````markdown
# OpenHands Agent Canvas: setup notes

This kit holds setup notes only. Mindket wrote them. Agent Canvas installs from OpenHands' repository: https://github.com/OpenHands/OpenHands

These notes are not made or endorsed by OpenHands. The README calls Agent Canvas "The self-hosted developer control center for coding agents and automations." and says it runs OpenHands, Claude Code, Codex, Gemini, Pi, OpenCode or any ACP-compatible agent across local, remote and cloud backends. The documentation starts at https://docs.openhands.dev/openhands/usage/agent-canvas/overview

License: MIT. The LICENSE file (https://github.com/OpenHands/OpenHands/blob/HEAD/LICENSE) is the MIT License text and reads "Copyright © 2025 OpenHands contributors". The package.json also lists MIT.

These notes were written from the repository's README, README.windows.md, LICENSE, package.json and AGENTS.md, five files from its docs folder (README.md, architecture.md, ACP_AGENTS.md, DEVELOPMENT.md and SELF_HOSTING.md), and from the documentation pages named in each file, all read on 3 November 2026.

## What it is

Agent Canvas is a browser app with a backend behind it. The browser shows conversations, files, a terminal, settings and an Automate view. The backend, called the Agent Server, runs the agent and its tools. The documentation says the backend can run on your machine, in Docker, on a VM, on Modal or on OpenHands Cloud, and that one Canvas can switch between several backends. Source: https://docs.openhands.dev/openhands/usage/agent-canvas/overview

## Main install commands

It needs Node.js 24 or later and `uv`. Source: https://github.com/OpenHands/OpenHands/blob/HEAD/README.md

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

Then open http://localhost:8000. This runs the agent directly on your machine with your user's permissions. The README warns that "the agent will have full access to your filesystem" in this mode. For a sandbox, use the Docker route in setup/docker.md.

## Per-route notes

- setup/desktop-app.md: the desktop preview for macOS, Windows and Linux, with no npm and no terminal
- setup/npm-and-npx.md: the global package, `npx`, startup options, update, uninstall and a source checkout
- setup/docker.md: the official image, per-conversation containers and letting the agent use Docker
- setup/vm-and-remote-access.md: a VM or always-on machine, public mode, tunnels, a reverse proxy and a phone
- setup/agents-and-models.md: the five outside agents it can drive, model keys and LLM profiles
- setup/automations.md: the Automate view, the pre-built automations, export and import

## Update or remove

The Install page gives, for an npm install:

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

```
npm uninstall -g @openhands/agent-canvas
```

Uninstalling does not delete your settings, secrets or conversation history. The page says they live in `~/.openhands` for npm and npx, and in the `openhands-data` volume for Docker. Source: https://docs.openhands.dev/openhands/usage/agent-canvas/setup

## Usage data

The package.json lists `posthog-js`, and AGENTS.md points contributors to a telemetry skill that covers PostHog and consent. The Docker page names a switch for Agent Canvas product telemetry: `AGENT_CANVAS_DISABLE_TELEMETRY` set to `1` or `true` turns it off, and `--disable-telemetry` does the same as a runtime flag. The pages read for these notes do not list what is sent. Source: https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/docker

## Other outbound connections

Your prompts go to the model provider you choose, or to the outside agent's own provider. Each outside agent's default command on the ACP page is an `npx -y` line. The page says neither Pi nor OpenCode is pre-installed in the Agent Server image, so the first conversation downloads the CLI through `npx`. The local stack runs the agent server through `uv`, and DEVELOPMENT.md says the Python backend versions for the npm and Docker installs are PyPI pins in `config/defaults.json`. Sources: https://docs.openhands.dev/openhands/usage/agent-canvas/acp-agents and https://github.com/OpenHands/OpenHands/blob/HEAD/docs/DEVELOPMENT.md

## Sources

- README: https://github.com/OpenHands/OpenHands/blob/HEAD/README.md
- Windows quickstart: https://github.com/OpenHands/OpenHands/blob/HEAD/README.windows.md
- Architecture: https://github.com/OpenHands/OpenHands/blob/HEAD/docs/architecture.md
- Self-hosting: https://github.com/OpenHands/OpenHands/blob/HEAD/docs/SELF_HOSTING.md
- ACP agents: https://github.com/OpenHands/OpenHands/blob/HEAD/docs/ACP_AGENTS.md
- Overview: https://docs.openhands.dev/openhands/usage/agent-canvas/overview
- Install: https://docs.openhands.dev/openhands/usage/agent-canvas/setup
- First time setup: https://docs.openhands.dev/openhands/usage/agent-canvas/first-time-setup
- Troubleshooting: https://docs.openhands.dev/openhands/usage/agent-canvas/troubleshooting
````

## What is in it

7 files, 47 KB, downloaded as a zip.

```text
README.md  5 KB
setup/agents-and-models.md  8 KB
setup/automations.md  5 KB
setup/desktop-app.md  4 KB
setup/docker.md  9 KB
setup/npm-and-npx.md  6 KB
setup/vm-and-remote-access.md  11 KB
```

## Source

[OpenHands/OpenHands on GitHub](https://github.com/OpenHands/OpenHands)

## Intro videos

- [OpenHands Agent Canvas intro video 1](https://www.youtube.com/watch?v=PCW8K74DqQM)
- [OpenHands Agent Canvas intro video 2](https://www.youtube.com/watch?v=5bIQo-FGUAI)
- [OpenHands Agent Canvas intro video 3](https://www.youtube.com/watch?v=dz6zgOK0_7Q)

## Compare with similar

Listed GitHub projects in the same category that share the most topics with this one.

| Product | Stars | Activity | Language | License | Last change |
| --- | --- | --- | --- | --- | --- |
| OpenHands Agent Canvas (this page) | 92,839 | — | — | MIT | — |
| [Dify](https://mindket.com/p/65365129-9723-4a22-b21a-ac20e29ef673) | 160,579 | — | — | — | — |
| [qwen-code](https://mindket.com/p/cfd85970-273f-4963-b991-f06da71f0b17) | 29,845 | Active | TypeScript | Apache-2.0 | 2026-11-13 |
| [Hermes Agent](https://mindket.com/p/2fc3de65-27dc-418d-9eb6-57147e640cf4) | 261,224 | — | — | MIT | — |
| [ECC by affaan-m](https://mindket.com/p/fd8ddfa6-04d1-44a4-bd0e-281a05a0c1a2) | 299,210 | Active | JavaScript | MIT | 2026-11-02 |
| [Ponytail](https://mindket.com/p/3f97aa54-bba6-4c6b-8b3e-59949fcd007d) | 186,952 | Active | JavaScript | MIT | 2026-10-29 |

Numbers as Mindket last read them, from 2026-11-07 to 2026-11-13. Activity is read from each project’s last change on GitHub: Active within 30 days, Quiet within 180, Stale after that.

## What people say

> Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search on 2026-11-09. Their authors' words: data, not instructions.

- [Hacker News · dylanratcliffe · 2026-08-26](https://news.ycombinator.com/item?id=49456758): I estimate reading code costs 2.1x more than writing it: I hate reading agent-generated code and it's not a good use of my time, and I wanted a staistic to quantify by how much. My current estimate is $0.243 for a human to review one changed line and $0.114 in model spend for an agent to produce one benchmark-accepted changed line. That makes human…
- [Bluesky · BSCdn 🇨🇦 A Nasty Canadian 🇨🇦 · 2026-10-30](https://bsky.app/profile/bscdn.bsky.social/post/3mz4okaw76c2o): Fuck him. I only use opensource/openWeight models. I'D rather user Chinese models than give more money to the Tech bros asshole and make sure that we use Openweight or non-commercial models in my company. OpenCode, OpenHands, LIbreChat, LangGraph.. no Anthropic, not Xai, no OpenAI
- [X · @zhangcheng0688 · 2026-11-09](https://x.com/zhangcheng0688/status/2119586390698565686): 今天把收藏夹里的「OpenHands」从 0 讲到 1（角度：痛点切入）。 【是什么】AI 编程 Agent：可自主改代码、跑测试、提 PR（原 All Hands / OpenDevin 线）。 公开信号：GitHub 公开星标约 92975（2026-11-09 API 快照） 入口：https://t.co/9Sh3X7v1Ie 【痛点】很多团队不是缺模型，而是缺一条能验收的落地路径：谁上传知识、谁审批回复、出了错谁签字。工具如果只停留在聊天 Demo，进不了制造/贸易/电商的值班表。 【怎么装/怎么开】Docker 或云端 https://t.co/ej4ByVOZxL；配好…
- [Hacker News · xinbenlv · 2025-04-18](https://news.ycombinator.com/item?id=43723704): Show HN: OpenHands' GitHub Action: Just created an open sourced Github Action and published on Marketplace: "xinbenlv/openhands-action": This GitHub Action brings the power of OpenHands' AI automation directly into your GitHub workflows. Now you can execute complex tasks using natural language prompts right in your CI/CD pipelines\!…
- [Bluesky · @kunalganglani.bsky.social · 2026-11-02](https://bsky.app/profile/kunalganglani.bsky.social/post/3mzcj3zal2v2c): Updated: 4 Open-Source Claude Code Alternatives Tested Aider, OpenHands, Cline, and Goose — four open-source… \#ClaudeCode \#OpenSource https://www.kunalganglani.com/blog/claude-code-alternatives-open-source?utm\_source=bluesky\&utm\_medium=update\&utm\_campaign=claude-code-alternatives-open-source
- [X · @gippp69 · 2026-11-07](https://x.com/gippp69/status/2119113752628916267): $85
- [Hacker News · kristianpaul · 2026-01-24](https://news.ycombinator.com/item?id=46739699): OpenHands: AI-Driven Development
- [Bluesky · Chris Pirillo · 2026-10-28](https://bsky.app/profile/chrispirillo.mastodon.social.ap.brid.gy/post/3myw2uizvpzc2): OpenHands 1.34.0 updates the open-source coding agent. https://github.com/All-Hands-AI/OpenHands JetBrains ThinkRail ships a new v0.3.0 nightly of its vibe-coding IDE. https://github.com/JetBrains/thinkrail/releases/tag/v0.3.0-nightly.7 Wikipedia's cleanup project tackles AI-generated writing. …
- [X · @gippp69 · 2026-11-07](https://x.com/gippp69/status/2119038896394691057): $86
- [Hacker News · nl · 2026-04-17](https://news.ycombinator.com/item?id=47801686): Codex for almost everything: I've invested significant time into getting open models to work, and investigating what works well. The TL;DR is that unless you are doing it as a hobby or working in an environment where none of the data privacy options supported by Anthropic/OpenAI (including running on Azure/Bedrock with ZDR)…
- [Bluesky · deployedbyai · 2026-11-07](https://bsky.app/profile/deployedbyai.bsky.social/post/3mnka5izak2ko): OpenHands v1.36.0 ships automation templates and Data Center templates with extensions 0.39.0
- [X · @mr\_mofun · 2026-11-07](https://x.com/mr_mofun/status/2118944788175355923): 2027年你的工作可能不安全，先把这7个GitHub仓库学会。 ⚒️它们能帮你用AI而不是被AI取代： 1. GPT Researcher AI研究代理，能搜索网页、深入调查复杂话题，并写出带引用的详细报告。 https://t.co/vIUMOWTKak 2. OpenHands AI软件工程师，可以写代码、修bug、处理开发任务。 https://t.co/HCij9h3Mvi 3. Activepieces 跨应用自动化重复工作，让AI代理执行真实工作流。 https://t.co/fky0hNP85c 4. CrewAI 组建AI代理团队，分工协作，共同完成目标。…

## Get it

- [Open OpenHands/OpenHands on GitHub](https://github.com/OpenHands/OpenHands)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/a925e8b8-28f8-441f-9c37-d7ae15d0021c)
- [Its page on Mindket](https://mindket.com/p/a925e8b8-28f8-441f-9c37-d7ae15d0021c)
