Mindket

OpenHands Agent Canvas

Newversion 2 · updated
Star92.8k

Overview

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 . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • 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
Start with
npm install -g @openhands/agent-canvas
agent-canvas

Platform

macOSOperating system
WindowsOperating system
LinuxOperating system
DockerContainer

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.

  1. You open Agent Canvas in a browser
  2. It connects to a backend that runs the agent server
  3. The agent works in a folder, container or sandbox
  4. Files, terminal and history show in the same page
  5. 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
IndustryWho uses itHow they use itExample
Software developmentDevelopers with more than one coding agentSwitch between agents from one page, with conversations kept on the backend they started onA developer picks Claude Code in Settings > Agent for one task and Codex for the next.
Code review and upkeepMaintainers and small teamsTurn on the GitHub PR Review Assistant or the Issue to Pull Request automationA maintainer lets the agent review each new pull request and post feedback as a comment.
Team infrastructureTeams with an always-on machineRun one backend on a VM and connect each person’s Canvas to itA team shares one agent server for code review and dependency updates, while each person keeps a personal backend on a laptop.
Sandboxed workDevelopers who want clear file boundariesRun the whole stack in Docker so the agent sees only the folders they mountA developer mounts one projects folder and starts every conversation from it.
Away from the deskAnyone with an agent running at homeOpen Canvas from a phone or tablet over TailscaleSomeone 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
SetupWhat the agent can reachBest for
npm or desktop appYour own files, with your user’s permissionsThe quickest local start, when you trust the machine
DockerOnly the folders you mountLocal sandboxing with clear file boundaries
VM or dedicated machineThat host’s filesystemAlways-on agents, heavier work and shared backends
OpenHands CloudA managed cloud sandboxCloud 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
NeedDetail
Node.jsVersion 24 or later, for the npm, npx and source routes
uvRuns the local agent server for the npm, npx and source routes, and the desktop app bundles it
A modelA provider key, an OpenHands Cloud key, an outside agent’s login or a local model server
DockerOnly for the container routes, with its daemon running
A workspaceA 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.
npm install -g @openhands/agent-canvas
agent-canvas

To try it once without a global install:

npx @openhands/agent-canvas

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

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
PartWhat it does
Open WorkspacePicks the folder the agent works in
Manage BackendsAdds, edits and switches backends
Settings > LLMHolds the model, its key and your saved profiles
Settings > AgentSwitches between OpenHands and an outside agent
CustomizeThe place for MCP servers and other ways to extend the agent
AutomateLists, runs, exports and imports automations
/modelLists saved profiles and switches the running conversation
Branch from hereStarts 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:

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 and files

README

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

Files
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

7 files, 47 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Compare with similar

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

ProductStarsActivityLanguageLicenseLast change
OpenHands Agent Canvas This page92,839——MIT—
DifyShares gpt · agent · llm160,579————
qwen-codeShares cli · developer-tools · llm29,845ActiveTypeScriptApache-2.0
Hermes AgentShares chatgpt · llm261,224——MIT—
ECC by affaan-mShares developer-tools · llm299,210ActiveJavaScriptMIT
PonytailShares developer-tools · llm186,952ActiveJavaScriptMIT
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.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

dylanratcliffeI estimate reading code costs 2.1x more than writing itI 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…5 pointsBSCdn 🇨🇦 A Nasty Canadian 🇨🇦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 OpenAI3 likes · 1 reply@zhangcheng0688今天把收藏夹里的「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;配好…xinbenlvShow HN: OpenHands' GitHub ActionJust 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!…2 points@kunalganglani.bsky.socialUpdated: 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-source2 likes@gippp69$85kristianpaulOpenHands: AI-Driven Development1 pointChris PirilloOpenHands 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. […]1 like · 1 reply@gippp69$86nlCodex for almost everythingI'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)…deployedbyaiOpenHands v1.36.0 ships automation templates and Data Center templates with extensions 0.39.01 reply@mr_mofun2027年你的工作可能不安全,先把这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代理团队,分工协作,共同完成目标。…

Searched

More from Mindket

See all from Mindket

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

New

Similar projects

See all in Developer

Dify

langgenius · Kit

LangGenius’s open-source platform for building LLM apps: visual workflows, RAG, model management and agents with a sandbox. Its difyctl tool and skill let Clau…

New161k

Microsoft Cloud Advocates’ free course on building generative AI apps, in 21 lessons. Learn lessons explain a concept, and Build lessons add Python and TypeScr…

New123k

The official code for Sebastian Raschka’s book on building a GPT-like LLM in PyTorch, one chapter at a time. The notebooks cover text data, attention, pretrain…

New108k