项目介绍
Agent 配套工具 · 2026-11-08 更新 · 本站尚未实测
OpenHands 仓库当前的 README 将其主要产品描述为 Agent Canvas:一个「self-hosted developer control center for coding agents and automations」。它不是单一的编码 Agent,而是一个开发者控制中心,可运行 OpenHands、Claude Code、Codex、Gemini、Pi、OpenCode 等 Agent,并支持任何符合 ACP(Agent-Client Protocol)的 Agent。
需要注意的是,合集或旧称可能把本项目直接称为「OpenHands Agent」,但按 README,仓库范围是 Canvas 前端、控制台、后端选择与本地栈编排;Agent Server、SDK、自动化服务分别位于 OpenHands/software-agent-sdk、OpenHands/automation 等独立仓库。
核心能力
点击能力名称查看输入、输出和原文依据。
- 多后端运行:可在本地、Docker 容器、VM 或公司基础设施中运行 Agent,并在同一前端切换不同后端。
- 多种 Agent 兼容:内置开源 OpenHands Agent,也可使用 Claude Code、Codex、Gemini CLI、Pi、OpenCode 及 ACP 兼容 Agent。
- 自动化编排:创建与 Slack、GitHub、Linear、Notion 等集成的自动化,按计划或 webhook 事件触发。
- 自带模型:README 称「Use with any LLM」,具体模型与配置方式需查官方 LLM 设置文档。
- 部署形态:npm 全局安装直接运行、单 Docker 沙箱、多 Docker 沙箱(每会话独立容器)、源码运行四种方式。
实际应用场景
适用场景
- 希望长期在线、由服务器托管的编码 Agent 工作台,例如关闭笔记本后仍能运行。
- 需要按团队共享 Agent Server(如代码审查、依赖更新)同时保留个人本地 Agent 的团队。
- 需要把 Agent 接入 Slack、GitHub、Linear 等第三方服务并按事件触发任务的自动化流程。
- 需要在多个 Agent 产品间切换对比的开发者。
安装与接入
README 给出四种方式,命令原文如下(未做改写):
无沙箱方式(Node.js 24+、uv):
npm install -g @openhands/agent-canvas
agent-canvas
README 明确警告:此方式直接在安装机器上运行 agent-server,Agent 将拥有完整文件系统访问权限。
Docker 单沙箱方式需要 Docker 及宿主机 PROJECTS_PATH 目录,示例使用 ghcr.io/openhands/agent-canvas:1.37.0 镜像,并绑定 127.0.0.1:8000。Windows 对应命令见 README.windows.md(本次未采集,内容待核验)。
多 Docker 沙箱方式需 Node.js 24+、uv、Docker,并以 OH_CONVERSATION_RUNTIME=docker agent-canvas 启动。源码方式为 git clone 后 npm ci、npm run dev,需 Node.js 24+、npm 11.12.1、uv。
README 未提供 MCP 配置或 MCP 端点;本次采集的 mcp_config、server_config 均返回 404,故本项目不作为 MCP 服务器收录。
使用条件与限制
- 是否需要部署
- 需自行准备运行环境,具体要求见正文
- 是否需要注册
- 账号和认证要求见正文;未明确说明的项目仍待核验
- 是否需要 API Key
- 待核验
- 费用与额度
- 费用边界见正文,项目许可不代表模型或托管服务免费
- 所需权限
- 待核验
- 许可证与服务条款
- 待核验
权限费用与限制
- 权限风险:无沙箱模式下 Agent 可访问完整文件系统;Docker 方式会暴露
PROJECTS_PATH下全部项目。公网部署需按docs/SELF_HOSTING.md做安全加固。 - 会话密钥:本地监听默认仅回环地址;发布到局域网或公网时应省略
AGENT_CANVAS_ALLOW_LAN_SESSION_KEY并在 UI 输入 API key,或设置LOCAL_BACKEND_API_KEY。 - 模型费用:README 未说明模型调用是否收费,所接入的第三方 Agent 与 LLM 服务可能有各自费用,待向官方及相应服务商核验。
- 商业版本:README 提到可选用 OpenHands Cloud 或 OpenHands Enterprise 基础设施(「our commercial offering」),价格与功能边界待核验。
- 国内可用性:资料未涉及,待核验。
国内使用情况
网友核验 用户经验分享
与站长实测独立,不代表官方认证或本站已实测。
最近核验:暂无有效核验。参与人数按当前项目有效身份去重;不同核验项分别统计,不合并成用户总结果。仅统计审核通过且未过期的记录。
分项统计、有效期与样本量
| 核验项目 | 有效人数 | 成功 / 部分 / 失败 / 无法判断 | 成功率 | 最近核验 / 有效期 |
|---|---|---|---|---|
| 官方网站访问 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 7 天 |
| GitHub 仓库访问 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 7 天 |
| 安装与运行 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 官方服务国内连接 / MCP 连接 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 国内网络情况 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 7 天 |
| 国内模型兼容性 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 自定义 API | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 海外服务依赖 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 海外账号要求 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 中文界面 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 客户端兼容性 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 账号及费用信息 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
成功率 = 成功 ÷(成功 + 部分成功 + 失败);无法判断不计入分母。至少 5 份可判断结果才显示成功率。账号、费用、海外依赖与语言等事实项,成功表示核查结论与资料吻合,具体观察另行统计;不表示免费或没有海外依赖。不同网络、客户端和版本的结果不能直接等同。
最近有效核验
暂无审核通过且未过期的网友核验。欢迎提交真实使用记录。
查看全部有效核验 →国内实测状态:国内可用性待核验。协议兼容和官方资料说明不等于国内网络可用。
- 官方网站访问
- 尚未实测 待核验
- GitHub 仓库访问
- 尚未实测 待核验
- 官方服务国内连接
- 尚未实测 待核验
- 国内网络情况
- 尚未实测 待核验
- 国内模型兼容性
- 尚未实测 待核验
- 自定义 API
- 尚未实测 待核验
- 海外服务依赖
- 尚未实测 待核验
- 海外账号要求
- 尚未实测 待核验
- 中文界面
- 尚未实测 待核验
- 国内最后核验时间
- 尚未实测
许可与国内使用
仓库 LICENSE 文件为 MIT License(Copyright © 2025 OpenHands contributors),可自由使用、修改与再分发,需保留版权与许可声明。开源许可不覆盖 OpenHands Cloud/Enterprise 等商业服务,也不代表所调用模型免费。
国内网络下 npm、ghcr.io 镜像及境外服务(Slack、GitHub 等)的可达性、是否需要代理,资料未说明,待核验。仓库未标注归档或停止维护,最近推送时间为 2026-11-08(据元数据)。
项目资料与来源
字段依据与待核验事项
access:来源确认 · npm install -g @openhands/agent-canvas
project_type:来源确认 · OpenHands Agent Canvas turns your coding agents into a self-hosted, always-on engineering team.
原始 README(折叠技术参考)
<a name="readme-top"></a>
<div align="center">
<img src="https://assets.openhands.dev/logo-whitebackground.png" alt="OpenHands logo" width="340">
<h1 align="center" style="border-bottom: none">Agent Canvas</h1>
<p align="center">
<strong>The self-hosted developer control center for coding agents and automations.</strong>
</p>
<p align="center">
Run OpenHands, Claude Code, Codex, Gemini, Pi, OpenCode, or any ACP-compatible agent across local, remote, and cloud backends.
</p>
</div>
<div align="center">
<a href="https://github.com/OpenHands/OpenHands/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/OpenHands/OpenHands/ci.yml?branch=main&style=for-the-badge" alt="CI status"></a>
<a href="https://www.npmjs.com/package/@openhands/agent-canvas"><img src="https://img.shields.io/npm/v/%40openhands%2Fagent-canvas?style=for-the-badge&logo=npm" alt="npm version"></a>
<a href="https://docs.openhands.dev/openhands/usage/agent-canvas/backends"><img src="https://img.shields.io/badge/Documentation-000?logo=googledocs&logoColor=FFE165&style=for-the-badge" alt="Documentation"></a>
<a href="https://go.openhands.dev/slack"><img src="https://img.shields.io/badge/Slack-Join%20the%20community-611f69?logo=slack&logoColor=white&style=for-the-badge" alt="Join us on Slack"></a>
</div>
<div align="center">
<a href="#quickstart">Quickstart</a> |
<a href="./docs/README.md">Docs</a> |
<a href="./docs/SELF_HOSTING.md">Self-Hosting</a> |
<a href="https://docs.openhands.dev/openhands/usage/agent-canvas/acp-agents">ACP Agents</a> |
<a href="https://docs.openhands.dev/openhands/usage/agent-canvas/prebuilt-automations">Automations</a> |
<a href="https://go.openhands.dev/slack">Slack</a>
</div>
<p align="center">
<img src="https://assets.openhands.dev/screenshot/automation-preview.png" alt="Agent Canvas automation preview" width="100%">
</p>
<hr>
OpenHands Agent Canvas turns your coding agents into a self-hosted, always-on engineering team. It's a developer control center for starting conversations and automating everyday tasks — like generating reports that publish to Slack or automatically decomposing GitHub issues into tasks.
It runs locally on your machine by default, but can connect to multiple “agent backends”, e.g. running agents in Docker containers, on VMs, or within your company infrastructure. You can optionally choose to run agents on OpenHands Cloud or OpenHands Enterprise infrastructure.
Agent Canvas runs the open source OpenHands agent out-of-the-box, but can use third-party agents such as Claude Code, Codex, Gemini CLI, Pi, and OpenCode.
| | |
| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| [**Self-host your way**](https://docs.openhands.dev/openhands/usage/agent-canvas/backend-setup/vm) | Run agents locally, in Docker, on VMs, or anywhere you can run an agent server backend |
| [**Switch between different backends**](https://docs.openhands.dev/openhands/usage/agent-canvas/backends) | Switch between local, remote, and cloud agents without losing focus |
| [**Create automations**](https://docs.openhands.dev/openhands/usage/agent-canvas/prebuilt-automations) | Create automations and workflows that integrate with Slack, GitHub, Linear, and more. Run on a schedule or in response to webhook events |
| [**Integrate with the tools you use**](https://docs.openhands.dev/openhands/usage/agent-canvas/prebuilt-automations) | Connect your automations with third-party services like Slack, GitHub, Notion, and more to automate workflows |
| [**Bring your own model**](https://docs.openhands.dev/openhands/usage/settings/llm-settings#llm-profiles) | Use with any LLM |
| [**Use with any agent**](https://docs.openhands.dev/openhands/usage/agent-canvas/acp-agents) | Use with OpenHands, Claude Code, Codex, Gemini, Pi, OpenCode, or any agent with Agent-Client Protocol (ACP). |
If you have questions or feedback, please open a GitHub issue or join the [#proj-agent-canvas channel in Slack](https://openhands.dev/joinslack).
## Quickstart
You can install OpenHands to run agents on any machine: on your laptop, on a dedicated computer like a Mac Mini,
or on a server in the cloud.
The most powerful way to run OpenHands is on a server in the cloud. This allows your agents to continue running
even when your laptop is shut, and makes it easier to trigger your agents through third-party services
like Slack, GitHub, and Datadog. See [SELF_HOSTING.md](docs/SELF_HOSTING.md) for details, especially with respect to security hardening.
Notably, you can run the backend in _multiple different environments_, and switch between
them from the same Agent Canvas frontend. E.g. you can share an Agent Server with your team for agents doing
code review and dependency updates, then have your personal agents running on your laptop.
### Option 1: Without a Sandbox
> [!WARNING]
> This runs the agent-server directly on the machine you're installing on — the agent will have full access to your filesystem!
**Prerequisites**: [Node.js](https://nodejs.org/) 24 or later, `uv`
```sh
npm install -g @openhands/agent-canvas
agent-canvas
```
The `agent-canvas` command starts the full local stack by default. You can also split it when you want to run pieces separately:
```sh
agent-canvas --frontend-only # static frontend + ingress only
agent-canvas --backend-only # agent server + automation backend + ingress only
```
### Option 2: With a Docker Sandbox
**Prerequisites**:
- Docker: Docker Desktop on macOS/Windows, or Docker Engine/Docker Desktop on Linux.
- A host directory for `PROJECTS_PATH` containing the project folders you want the agent to access. Create it before starting the container.
**macOS / Linux:**
```sh
export PROJECTS_PATH="$HOME/projects" # directory containing your project folders
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.37.0 # x-release-please-version
```
**Windows (PowerShell / Windows Terminal):** See [README.windows.md](./README.windows.md) for the equivalent commands.
> [!NOTE]
> The entrypoint stops the container with exit code 1 when the Agent Server stops answering
> its `/alive` check for about 30 seconds, so a crash or hang fails visibly instead of leaving
> a container that returns 502 for every request.
> Automatic recovery needs a restart policy: use `--restart unless-stopped` instead of
> `--rm`, or `restart: unless-stopped` in Docker Compose.
The agent will be able to access any project under `PROJECTS_PATH`.
### Option 3: With Multiple Docker Sandboxes
Run each new conversation in its own Docker container, with its own Agent Server and tools. This is useful for running several agents concurrently. Canvas and the outer Agent Server run on your host and route conversation requests to the containers.
**Prerequisites**: Node.js 24 or later, `uv`, and a running Docker Desktop (macOS) or Docker Engine/Desktop (Linux). The user starting Canvas must be able to run `docker` commands.
**macOS / Linux:**
```sh
npm install -g @openhands/agent-canvas
OH_CONVERSATION_RUNTIME=docker agent-canvas
```
Open [http://localhost:8000](http://localhost:8000) and start a new conversation. Existing local conversations are not converted. Each container mounts its conversation's workspace and persisted state, so workspace files and conversation history survive container replacement. Conversations using the same host workspace still share those files; choose separate directories or worktrees to avoid conflicting edits.
This setting isolates conversation execution; it does not move the entire Canvas or automation service into a sandbox. For Windows, see [README.windows.md](./README.windows.md#option-3-with-multiple-docker-sandboxes-wsl-2).
### Option 4: From Source
> [!WARNING]
> This runs the agent-server directly on the machine you're installing on — the agent will have full access to your filesystem!
**Prerequisites**: [Node.js](https://nodejs.org/) 24 or later, npm 11.12.1 (the repository pin), `uv` (for running the agent server via `uvx`)
Check `npm --version` before resolving dependencies. The seven-day release-age
filter (`npm install --min-release-age=7`) requires npm >=11.10; older versions
do not enforce it. Use `npm ci` to replay the committed lockfile. This npm
requirement is for contributor dependency resolution, not for installing the
published Canvas package.
```sh
git clone https://github.com/OpenHands/OpenHands.git
cd OpenHands
npm ci
npm run dev
```
---
Access the UI at [http://localhost:8000](http://localhost:8000) for the npm/source launchers, or [http://localhost:8000/canvas](http://localhost:8000/canvas) for the Docker image. You can add additional backends directly from the UI.
Local (`npx` / `npm run dev`) listeners bind **loopback only** (`127.0.0.1`) so the auto-injected session key is not reachable from other machines on the network. To listen on all interfaces, pass `--host 0.0.0.0` (or set `OH_BIND_HOST`); the session key is then **not** injected and the UI uses the same API-key entry screen as `--public`.
Docker listens on all container interfaces so port publishing works, but does not inject its session key into HTML by default. The quickstart above explicitly enables injection while publishing the host port on `127.0.0.1` only. If you publish Docker on a LAN or public interface, omit `AGENT_CANVAS_ALLOW_LAN_SESSION_KEY` and enter the API key in the UI. Set `LOCAL_BACKEND_API_KEY` to a strong value, or retrieve the generated value with `docker exec <container> sh -c 'cat "$STATE_DIR/api-key.txt"'`. For internet-facing installs, follow [self-hosting](./docs/SELF_HOSTING.md).
# Architecture
Agent Canvas is powered by the [OpenHands Agent Server](https://github.com/OpenHands/software-agent-sdk/tree/main/openhands-agent-server/openhands/agent_server), a REST API for running multiple agents on a single machine. Each Agent Server runs on a single host/port; the Agent Canvas can connect to multiple Agent Servers and easily flip between them.
You can run an Agent Server anywhere:
- Directly on your laptop (be careful!)
- On a dedicated machine like a Mac Mini
- On a virtual machine in the cloud
- Inside OpenHands Cloud (our commercial offering)
The Agent Server is often paired with an [Automation Server](https://github.com/OpenHands/automation), which lets you set up agents that run on a schedule or in response to events.
<img width="1456" height="1258" alt="image" src="https://github.com/user-attachments/assets/cb6de6f5-ac30-4d04-a76a-b5c259f0c163" />
### Repository boundaries
Agent Canvas is part of a multi-repository OpenHands system. Changes should go to the repository that owns the behavior:
| Repository | Responsibility |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| [`OpenHands/OpenHands`](https://github.com/OpenHands/OpenHands) | Agent Canvas frontend, user-facing control center, backend selection, and local-stack orchestration. |
| [`OpenHands/software-agent-sdk`](https://github.com/OpenHands/software-agent-sdk) | Python SDK, Agent Server, agents, tools, conversations, workspaces, events, and the canonical server API. |
| [`OpenHands/typescript-client`](https://github.com/OpenHands/typescript-client) | Browser-compatible TypeScript client for the Agent Server API. |
| [`OpenHands/automation`](https://github.com/OpenHands/automation) | Automation definitions, scheduling, webhooks, run history, and dispatching. |
The Agent Server API is implemented by the SDK and consumed through the TypeScript client by Agent Canvas. The automation service decides when work runs and dispatches conversations to the Agent Server/SDK, which decides what runs. See [`AGENTS.md`](./AGENTS.md) for contributor-specific boundaries and the required custom code-review guide.
## More documentation
- [Documentation index](./docs/README.md)
- [Architecture overview](./docs/architecture.md)
- [Development guide](./docs/DEVELOPMENT.md), including [embedding Canvas components in a host app](./docs/DEVELOPMENT.md#css-isolation-and-host-app-customization) (load `@openhands/agent-canvas/styles.css` once next to the component imports)
- [Self-hosting guide](./docs/SELF_HOSTING.md)
历史前置条件说明(补充参考)
Node.js 24 及以上;uv;npm(源码方式需 npm 11.12.1);Docker(沙箱方式);宿主机项目目录 PROJECTS_PATH;可选 LLM API Key(具体模型与密钥配置待核验);OpenHands Cloud/Enterprise 为可选商业服务,费用待核验;npm 与 ghcr.io 等境外依赖的国内可达性待核验
项目来源与清单版权许可
https://github.com/OpenHands/OpenHands
整理来源:https://github.com/slavakurilyak/awesome-ai-agents
清单版权与许可:
MIT License
Copyright (c) 2024 Slava Kurilyak
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.