Agent Canvas: A Self-Hosted Control Plane for Multiple Coding Agents
OpenHands is a self-hosted control center for coding agents, running Claude Code, Codex, or any ACP-compatible agent across local, remote, and cloud backends.
At a glance
- What is it?
- OpenHands Agent Canvas is a developer control center that runs coding agents locally, in Docker, or on cloud backends, and switches between them from one UI. It targets teams that want to orchestrate OpenHands, Claude Code, Codex, or any ACP-compatible agent without sending code to a vendor.
- Who is it for?
- Adopt Agent Canvas if you need a single frontend to run and switch between multiple coding agents across your own infrastructure, especially if you want automations that post to Slack or decompose GitHub issues. Skip it if you require a fully managed SaaS with zero self-hosting, or if your team lacks Node.js 22.12.x and uv expertise.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Agent Canvas Actually Solves
The README positions it as a tool for turning coding agents into an engineering team, but the more precise description is an orchestration layer. It does not replace the agents themselves. It gives you a consistent way to launch them, switch between them, and attach automations. For a single developer working on one laptop with one agent, this is overkill. For a team that shares a backend for code review and dependency updates while individuals run personal agents on their own machines, the shared frontend becomes a genuine productivity gain.
How the Architecture Fits Together
The automation backend is a separate component that integrates with Slack, GitHub, Linear, and other services. Automations can run on a schedule or in response to webhook events. That means the system is not just a chat interface; it is a workflow engine that can trigger agents based on external signals. The README mentions prebuilt automations, implying there are templates you can start from, though it does not list them in detail. The data flow appears to be: an external event arrives via webhook, the automation backend matches it to a configured workflow, the agent server receives a task, and the result is published back to the integration, for example posting to Slack.
Getting It Running: Three Paths with Different Trade-offs
The split flags `--frontend-only` and `--backend-only` let you run pieces separately, which is useful if you already have an agent server running elsewhere. The README does not document the exact configuration file format or environment variables beyond `PROJECTS_PATH`. For a production deployment, you would need to consult `docs/SELF_HOSTING.md`, which the README references for security hardening. The absence of a detailed config reference in the top-level README is a gap for operators who want to set up multiple backends from the command line; the UI allows adding backends, but the CLI flags do not show how to configure them declaratively.
The Real Limitation: Filesystem Access and Security
Another limitation is the dependency on Node.js 22.12.x or later. That is a recent LTS line, and some enterprise environments still run Node 18 or 20. If your team cannot upgrade, you cannot use the npm or source installation. The Docker option avoids that, but it adds Docker as a prerequisite, which is not always available in hardened CI environments. The README does not specify a minimum Docker version or mention resource requirements, so you may need to test on your own infrastructure.
How It Compares to a Single-Agent Tool
The README explicitly lists ACP (Agent-Client Protocol) as the compatibility standard. That means any agent that implements ACP can be plugged in, not just the ones named. This is a strategic choice: it avoids vendor lock-in at the agent level, but it also means you depend on the ACP ecosystem's maturity. If a third-party agent's ACP implementation is incomplete, you may hit edge cases that the native CLI handles gracefully. The README does not provide a list of known ACP compatibility issues, so you should test each agent you plan to use.
Automations and Integrations: The Practical Upside
The README does not describe how to write a custom automation from scratch. It links to prebuilt automations, but the code or configuration format is not shown in the top-level README. That is a documentation gap. You will likely need to inspect the repository's `docs/` directory or the npm package's examples to understand the automation schema. The presence of an automation backend as a separate component suggests there is an API or configuration file, but the README does not expose it. If you are evaluating this for a team, plan to spend time reading the docs beyond the README before you can build a custom workflow.
Maintenance and Upgrade Considerations
The license is listed as unknown in the repository metadata. That is a red flag for enterprise adoption. Before deploying, you must confirm the license, either from the repository's LICENSE file or by contacting the maintainers. The README does not mention licensing at all. The project uses a `x-release-please-version` comment in the Docker tag, indicating they use Release Please for automated versioning, which is a sign of a mature release pipeline. But without a clear license, you cannot legally evaluate redistribution or modification rights. This is a concrete step to verify before any serious use.
Editorial conclusion
Adopt Agent Canvas if you need a single frontend to run and switch between multiple coding agents across your own infrastructure, especially if you want automations that post to Slack or decompose GitHub issues. Skip it if you require a fully managed SaaS with zero self-hosting, or if your team lacks Node.js 22.12.x and uv expertise. Before adopting, verify how your chosen ACP agents handle file system access and network egress, and read docs/SELF_HOSTING.md for security hardening, since the no-sandbox mode gives agents full access to your filesystem.
Community notes