如果你想要一个受支持的终端编码代理、可通过一条命令安装并向账户计费,请选择 Claude Code;如果拥有执行环境本身就是要求,请选择 OpenHands。 这一框架在 2026 年 9 月格外重要,因为这两个产品已经不再是同一种形态。Claude Code 是专有终端代理。自从其单体仓库合并 Agent Canvas 后,OpenHands 主要是一个自托管浏览器控制中心;而它自己的终端 CLI——唯一可直接比较的功能面——已明确处于维护状态。
两者也可以结合使用,这正是简单的二选一会造成误导的原因。Agent Canvas 可以通过 Agent Client Protocol 将 Claude Code 作为子进程运行,因此“同时使用两者”是真实存在的配置,而且在决定只选其中一个之前,值得先了解其计费后果。
你实际比较的是什么
这两个项目的迁移都发生在近期,以至于 2025 年的评测会把你带到错误的仓库。原先位于 All-Hands-AI/OpenHands 的仓库现在是 OpenHands/OpenHands,旧路径会重定向到该仓库;docs.all-hands.dev 会重定向到 docs.openhands.dev;独立的 OpenHands/agent-canvas 仓库已归档,因为 Canvas 已并入单体仓库。Claude Code 的文档也迁移了:docs.claude.com/en/docs/claude-code/… 现在会 301 重定向到 code.claude.com/docs/en/…。
| OpenHands | Claude Code | |
|---|---|---|
| 许可证 | MIT(单体仓库),未归档 | 专有——“© Anthropic PBC. All rights reserved” |
| 目前积极发布的内容 | Agent Canvas,一个自托管浏览器控制中心,以及 Software Agent SDK 和 Agent Server | 终端和 IDE 代理,以原生二进制文件安装 |
| 最新版本 | v1.20.0,2026 年 9 月 17 日;GitHub Star 数超过 88,000 | 每周发布多个 npm 版本;上次检查时,latest 标签为 2.1.278(2026 年 9 月 19 日),stable 标签为 2.1.267 |
| 终端 CLI 状态 | “功能完备,主要维护目标是稳定性” | 产品本身 |
| 安装 | CLI 使用 uv tool install openhands --python 3.12;Canvas 使用 npm、npx 或 Docker | curl -fsSL https://claude.ai/install.sh | bash(文档所述的推荐原生安装方式)、Homebrew、winget 或签名的 apt/dnf/apk 仓库;文档还在高级选项中说明了全局 npm 安装 |
| 是否需要账户 | 本地开源路径不需要任何账户 | “Pro、Max、Team、Enterprise 或 Console 账户”;不包含免费的 claude.ai 计划 |
来源,均于 2026 年 9 月 21 日重新核查:OpenHands 仓库 API、其 README、组件映射(其中包含 CLI 的状态行和下文的 Local GUI 说明)、发布 uv tool install 命令的 CLI 页面、Claude Code npm 注册表条目、其 LICENSE.md 以及 设置文档。
有一个数字足以单独决定 CLI 问题。OpenHands 文档自身的安装命令会拉取 PyPI openhands 包,该包版本为 1.16.0,于 2026 年 5 月 8 日上传——共有 34 个版本,自春季以来没有更新。在同一时间段,其底层库却持续发布:openhands-sdk 1.49.2 于 2026 年 9 月 17 日上传。如果你来到这里是想比较两个终端代理,那么差距本身就是答案:OpenHands 的终端功能面并不是其开发重点。
应该选择哪一款
如果你的工作流是由一名开发者在已经检出的代码仓库中指导变更,并且你更愿意购买代理而不是运营代理,请选择 Claude Code。执行过程在你自己的工作站上、以你的用户身份进行,权限控制使用 Claude Code 自身的提示,设置过程只需一条安装命令和一次登录。费用路径可以是 Anthropic 计划、API 账户,或你指向它的网关。无需为同时尝试其他方案而拆除任何现有内容:其记忆文档将项目说明放在仓库内的 CLAUDE.md(或 AGENTS.md)文件中。
如果你真正需要的是一个控制平面——让多个对话和定时自动化任务针对你选择的后端运行,并将沙箱边界作为明确的决策而非默认假设——请选择 OpenHands。沙箱文档提供 Docker 沙箱(推荐)、被描述为“ 不安全,但速度快”且“没有容器隔离”的 Process 沙箱,以及通过 RUNTIME 环境变量选择的 Remote 沙箱。这是形态上的真实差异,而不是能力缺口:Claude Code 也记录了自身的沙箱化 Bash 工具,该工具内置于 macOS、Linux 和 WSL2 中,并由操作系统强制执行;但它是在你当前使用的那台机器上对命令进行沙箱隔离,而 OpenHands 允许你选择整个代理服务器运行所依赖的后端。这个选择确实存在,同时也意味着这部分工作由你负责。
在为团队选择 OpenHands 之前,请先了解其上限。 其官方 FAQ称:“OpenHands 旨在由单个用户在其本地工作站上运行。不适合多个用户共享同一实例的多租户部署。没有内置的身份验证、隔离或可扩展性。”多用户使用属于 Enterprise 计划,该计划未公布价格。此外,Canvas 本身不会提供任何沙箱隔离——安装页面说明,代理和 ACP 进程应被视为不受信任,“Agent Canvas 是客户端,不提供隔离”,而直接在你的机器上运行的后端允许代理以你的用户账户权限执行操作。
如果你想要 Canvas 的操作界面,但想要 Claude Code 的代理行为,请同时选择两者。这是一种有文档记录的配置,下面两节会介绍它。
计划及每个计划的限制
| 套餐 | 公布价格 | 包含的内容或限制 |
|---|---|---|
| OpenHands 本地开源版 | 免费 | “本地运行”,1 位用户,每日对话次数不限;模型账户由你提供 |
| OpenHands SaaS 个人版 | 免费 | 1 位用户,每日最多 10 次对话;“BYOK 或按成本价使用 OpenHands 模型” |
| OpenHands 企业版 | 定制价格 | SaaS 或在你的 VPC 中自托管,用户数不限;未公布具体金额 |
| Claude Free | $0 | Claude Code:否 |
| Claude Pro | 年度订阅每月 $17(预先收取 $200),或按月 $20 | 包含 Claude Code 的最低层级 |
| Claude Max | $100/月起 | “选择用量为 Pro 的 5 倍或 20 倍的方案” |
| 任一客户端使用按用量计费的 API 密钥 | 按令牌计费 | 无订阅;费用取决于用量 |
2026 年 9 月 21 日从 openhands.dev/pricing 和 anthropic.com/pricing 读取。关于你会在其他地方看到的一个金额:Max 20x 通常被引用为每月 $200,但 Anthropic 的页面只显示“From $100”,其标记中唯一的 $200 是 Pro 年度预付费用。请在升级界面确认 20x 的价格,不要盲目信任第三方表格,包括本表格。
两个供应商来源对 OpenHands 的本地浏览器界面说法不一致,了解你正在安装的内容很重要。定价页面的功能表在免费的 Local 计划下列出“Web-based GUI”,而文档的组件映射则将 Local GUI 称为“来自原 OpenHands 单体仓库的已弃用、基于 Docker 的浏览器应用”,并称“使用 Agent Canvas 进行活跃的浏览器客户端开发”。请以组件映射为准。
关于模型,OpenHands Cloud 的 Individual 层级提供自有路由供应商,按“成本价、不加价”计费。其已发布的费率卡声明,“列出的价格反映供应商费率,不含加价”,但不应将其视为当前的 Claude 目录:其中列出的最新 Sonnet 是 Sonnet 4.5,每百万令牌 $3/$15,而 Anthropic 的官方定价页面将 Sonnet 5 列为 $2/$10。应从中采纳的说法是其计费机制——成本价、不加价。本文未登录 OpenHands Cloud,因此无法说明该账户今天实际提供哪些模型。
Canvas 可以运行 Claude Code,且登录信息优先于密钥
单体仓库 README 声明,Agent Canvas 可以“在本地、远程和云端后端运行 OpenHands、Claude Code、Codex、Gemini 或任何兼容 ACP 的代理”。ACP 代理页面给出了 Claude Code 的默认命令 npx -y @agentclientprotocol/claude-agent-acp,并清楚描述了其机制:供应商自己的 CLI 作为子进程运行,而 Agent Server“负责子进程和凭据;Agent Canvas 只记录要运行哪个代理,并显示其所需密钥的表单”。
计费细节位于身份验证部分,而且常常令人意外。订阅登录会从 Claude Code 自身的凭据存储中自动检测——macOS 钥匙串,或 Linux 上的 ~/.claude/.credentials.json——文档说明:“登录信息优先于 API 密钥:登录期间,环境中设置的密钥不会被使用。”因此,在一台你曾经运行过 claude 并使用 Pro 或 Max 登录的机器上,你以为会通过密钥计量的工作,实际上会从订阅中扣除。同一页面还指出相反的情况:“在干净的云沙箱中没有保存的登录信息,因此需要使用 API 密钥”——这意味着同一个 Canvas 配置可能因运行后端不同而产生两种计费方式。模型配置页面总结道:“Claude Code、Codex 和 Gemini CLI 等 ACP 代理自行管理模型访问”,因此 OpenHands 的 LLM 配置不会重定向该子进程。
同一网关,两种不同的 URL 字符串
如果你通过自己的一个 API 密钥路由任一客户端,最常见的故障是 URL 形态,因为两者的约定正好相反。Claude Code 使用 Anthropic Messages 格式,并要求一个源地址;OpenHands 通过 LiteLLM 路由,并要求基础 URL 包含 /v1,同时使用带供应商前缀的模型 ID。
# ANTHROPIC_BASE_URL takes the ORIGIN. Claude Code appends /v1/messages
# itself, so a trailing /v1 produces /v1/v1/messages, which your gateway
# will not be serving.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-your-kunavo-key
# Pin models Kunavo serves. Claude Code's default and its opus alias are the
# newest Opus — pinned here to Opus 5.5, which needs Claude Code v2.1.280 or
# later (run `claude update`). The sonnet alias asks for Sonnet 5.5, which
# Kunavo does not serve: unpinned, /model sonnet, opusplan's execution phase
# and sonnet subagents 404.
export ANTHROPIC_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
# Required too: unpinned, the haiku alias asks for an id Kunavo does not
# serve (Haiku 5.5 from v2.1.293), so /model haiku and haiku subagents 404.
# On this path background tasks also run on the main model unless this
# variable pins one.
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5# OpenHands routes through LiteLLM, so the id carries a provider prefix
# and the base URL INCLUDES /v1 — the opposite convention to the one above.
LLM_MODEL=openai/claude-sonnet-5
LLM_API_KEY=sk-your-kunavo-key
LLM_BASE_URL=https://api.kunavo.com/v1
# In Agent Canvas the same three values are Settings > LLM > Advanced:
# Custom Model / Base URL / API KeyClaude Code 的变量记录在其环境变量页面中——ANTHROPIC_BASE_URL“覆盖 API 端点,以便通过代理或网关路由请求”,而 ANTHROPIC_AUTH_TOKEN 是“Authorization标头的自定义值(你在此处设置的值将添加 Bearer 前缀)”。网关协议页面列出的端点为 /v1/messages 和可选的 /v1/messages/count_tokens,这就是该变量只接受源地址的原因。OpenHands 的字段来自其LLM 设置页面——Custom Model,“将供应商作为前缀设置自定义模型”;Base URL;API Key——模型配置页面规定使用 openai/<served-model-id>,并从其 GET /v1/models 端点获取精确 ID,“通常来自该端点”。
四个实用注意事项,均来自供应商自己的页面,而非测试:
- Claude Code 中的成本无提示上涨。 如果网关未原样转发
cache_control,网关页面称“不会报错:每一轮对话都会按未缓存输入计费”。这是一个没有错误消息提示的价格差异。 - 使用自定义主机时会关闭的功能。 将
ANTHROPIC_BASE_URL设置为非第一方主机会默认禁用 MCP 工具搜索(如果代理转发tool_reference块,可使用ENABLE_TOOL_SEARCH=true重新启用),并且截至 v2.1.196,Remote Control 已禁用。网关模型发现也默认关闭。 - 不得缓冲流。 Claude Code 会统计中继的字节数,包括 SSE ping,并且“默认会中止持续 300 秒无响应的流”。
- OpenHands 会在保存时进行验证,而可达性取决于后端。 保存本地配置文件时,会先针对后端进行验证,验证失败则阻止保存;基础 URL 必须能从后端访问——如果 Canvas 在 Docker 中运行,而你的端点位于主机上,
127.0.0.1指的是容器。每个账户最多可保留 10 个 LLM 配置文件。
Kunavo 发布了 Anthropic 格式路由的设置参考——ANTHROPIC_BASE_URL 和 Claude Code 集成——以及 快速入门中的 OpenAI 格式路由。这些是已发布的配置参考,而不是兼容性测试:本页面未安装或运行任何一个客户端来连接该端点。这里没有 OpenHands 专用设置页面,文档中以 Anthropic 为前缀的 OpenHands 路由也未经过任何方式的验证,因此请将上面的 openai/ 形式视为文档所述路径,并在您自己的环境中确认。
单个计量密钥的一次会话成本
这些是说明性代币计算,不是实测任务成本,也不是账单上限。假设一个小型任务使用 150k 个未缓存输入代币和 8k 个输出代币,以及一次较长的智能体运行使用 800k 个未缓存输入代币和 40k 个输出代币——智能体会话的输入量较大,因为文件和工具结果会被重新发送。费率是实时的Kunavo 目录价格,按每百万代币计算;无论由哪个客户端发送请求,费率都相同。
| 模型 | 每 1M 个令牌的输入 / 输出 | 小型任务估算 | 较长智能体运行估算 |
|---|---|---|---|
| Claude Haiku 4.5 | $0.70 / $3.50 | $0.133 | $0.700 |
| GPT-5.6 Terra | $0.70 / $4.20 | $0.139 | $0.728 |
| Claude Sonnet 5 | $1.40 / $7.00 | $0.266 | $1.400 |
| Claude Opus 5 | $3.50 / $17.50 | $0.665 | $3.500 |
为了与一个第一方数据进行规模对比:Anthropic 自己的成本文档报告称:“在企业部署中,平均成本约为每位开发者每个活跃日 13 美元、每位开发者每月 150–250 美元;90% 的用户每个活跃日的成本低于 30 美元”。按上述假设,13 美元在 Claude Sonnet 5 上以分别为 $1.400 和 $0.266 的价格,大约相当于 9 次较长运行或 49 个小型任务。Anthropic 的数据仅适用于其自身的企业部署,并不是网关报价;这些计算只是对数量级的合理性检查,而非预测。缓存会显著改变结果,既可能增加成本,也可能降低成本——请参阅提示缓存。
Kunavo 的目录金额是计费下限,而不是上限:当上游报告其费用时,账单金额取目录成本与上游成本乘以适用加价两者中的较高值。缓存费用和外部工具不包含在此示例中。最低充值金额为$10 的预付余额,这是资金最低要求,而不是任务费用或订阅费用——请参阅账单详情。
三条成本线,而不是一条
人们经常搞错的比较是“免费客户端与付费客户端”。应分别拆分预算:
- 模型代币。 两者使用相同的问题,上面的表格已经回答了这一点。这是 OpenHands Individual 计划看起来唯一会计量的项目,尽管其定价页面也没有明确说明计算或沙箱计费。
- 运行沙箱的机器。 在 Claude Code 的文档默认路径上不需要额外机器,因为智能体及其内置 Bash 沙箱运行在您已有的工作站上。对于自托管 OpenHands,这项成本非零且未公布:文档描述了 Docker、VM 和远程后端,但未公布成本模型,因此应根据您自己的供应商费率预算 VM 小时数、存储和沙箱容器运行时间。本页面不会为此虚构一个数字。
- 被计费的账户。 可以是 Claude 计划、API 余额,或者在 Canvas 运行 Claude Code 的路径上,取决于这台机器恰好登录了其中哪一个。
在通常的迁移方向上,两者之间的迁移成本很低。Claude Code 将项目指令保存在仓库文件中,因此尝试 OpenHands 不需要删除任何内容;而且由于 Canvas 可以通过 ACP 驱动 Claude Code,评估甚至不一定需要切换。成本较高的方向是让团队标准化采用自托管 OpenHands,因为单用户限制和无人负责的基础设施成本线会在那里显现。
从一项有界任务开始
无论选择哪一个,都在两者上运行同一个小型、可验证的更改——一个带失败测试的错误——使用同一个提交,在不同工作区中执行,并记录差异、审查工作量以及您的账户实际登记的费用。这是本页面上唯一属于您自己的比较,而不是供应商的比较。
如果您想使用计量路由,Claude Code 集成指南包含 Anthropic 格式的配置,而创建 Kunavo 账户即可为密钥充值;快速入门中的 OpenAI 格式值正是 OpenHands Advanced 选项卡所需的值。还在客户端之间而不是供应商之间犹豫?OpenHands 与 OpenCode 对比比较了两个开源界面,Claude Code 定价完整介绍了计划方面的内容,而无订阅使用 Claude Code单独介绍了网关路径。
常见问题
OpenHands 与 Claude Code 有什么区别?
Claude Code 是 Anthropic 的专有终端和 IDE 代理:其 LICENSE.md 写明“© Anthropic PBC. All rights reserved”,并且需要 Pro、Max、Team、Enterprise 或 Console 账户,免费的 claude.ai 计划不包含该产品。截至 2026 年 9 月,OpenHands 采用 MIT 许可并开源,其单体仓库中积极发布的内容是 Agent Canvas——一个用于代理对话和自动化的自托管浏览器控制中心,而不是终端代理。OpenHands 也有终端 CLI,但其文档称该 CLI 已功能完备,主要维护目标是稳定性。因此,诚实的比较应是:一个受支持的单用户终端代理,与一个需要自行运行和维护的控制平面。
OpenHands 是免费的吗?这是否意味着它比 Claude Code 更便宜?
软件本身是免费的:OpenHands 单体仓库采用 MIT 许可,定价页面将 Local Open Source 列为 Free,并将 SaaS Individual 列为 Free,但每天最多 10 次对话。这并不等于总成本为零。自托管的 OpenHands 后端仍会通过某个供应商账户消耗模型令牌,也仍需运行一台机器——Docker 沙箱、虚拟机或远程沙箱——而 OpenHands 没有公布其成本模型。Claude Code 将机器这一问题隐藏起来,因为代理运行在你自己的工作站上,账单则归属于它登录的账户。请比较三项,而不是一项:模型令牌、运行沙箱的计算资源,以及实际计费的账户。
OpenHands 能运行 Claude Code 吗?
可以,而且这是大多数比较文章都会遗漏的细节。OpenHands 单体仓库的 README 声明,Agent Canvas 可以运行 OpenHands、Claude Code、Codex、Gemini 或任何兼容 ACP 的代理;Agent Canvas 的 ACP 文档则将 Claude Code 的默认命令列为 npx -y @agentclientprotocol/claude-agent-acp。供应商自己的 CLI 作为子进程运行,文档说明 Agent Server 负责该子进程及其凭据,而 Agent Canvas 只记录要运行哪个代理。在预算之前,有一个后果值得了解:文档说明订阅登录优先于 API 密钥,因此,如果运行 Agent Server 的机器上保存了 Claude Code Pro 或 Max 登录信息,环境中的 ANTHROPIC_API_KEY 将完全不会被使用。
我可以让 OpenHands 和 Claude Code 指向同一个 API 网关吗?
两个客户端都记录了自定义端点,但使用的协议和 URL 形态不同。Claude Code 的 ANTHROPIC_BASE_URL 是 Anthropic Messages 格式中的源地址——Claude Code 会自行追加 /v1/messages,因此在值中包含 /v1 会生成 /v1/v1/messages,而你的网关不会提供这一路径——并与 ANTHROPIC_AUTH_TOKEN 搭配使用。OpenHands 通过 LiteLLM 路由模型调用,因此其文档中针对兼容网关的路径是将模型 ID 写成 openai/<served-model-id>,并使用包含 /v1 的基础 URL。运行在 Canvas 内的 ACP 代理完全是另一种情况:OpenHands 文档称 ACP 代理自行管理模型访问,因此 OpenHands 的 LLM 配置不会控制 Claude Code 子进程的端点。
OpenHands CLI 仍在维护吗?
它仍已发布且未归档,但文档明确表示开发重点不在这里。OpenHands 文档将 CLI 列为功能完备,主要维护目标是稳定性;发布日期也符合这一说法:文档中的安装命令是 uv tool install openhands --python 3.12,PyPI 提供的 openhands 版本为 1.16.0,于 2026 年 5 月 8 日上传,共有 34 个版本。在同一时期,它所依赖的库却在快速更新——openhands-sdk 1.49.2 于 2026 年 9 月 17 日上传——而如今发布 Agent Canvas 的单体仓库于 2026 年 9 月 17 日标记了 v1.20.0。如果你想使用积极开发中的 OpenHands 功能面,那就是 Agent Canvas 和 SDK,而不是 CLI。
团队应该选择哪一个?
任何一个产品单独使用都不是多用户解决方案。OpenHands FAQ 明确指出,OpenHands 旨在由单个用户在本地工作站上运行,不适合多租户部署,也没有内置的身份验证、隔离或可扩展性;多用户工作属于 Enterprise 计划,而该计划未公布价格。Claude Code 按账户许可,并通过 Pro、Max、Team、Enterprise 或 Console 销售,因此团队面对的是席位数量或 API 预算,而不是部署项目。如果你需要每位开发者自行配置且无需维护基础设施,请选择 Claude Code;如果拥有执行环境和自动化界面本身就是实际需求,请选择 OpenHands。
仓库、软件包注册表、定价和文档来源于 2026 年 9 月 21 日重新核查;底层研究于 2026 年 9 月 18 日收集。对于本页面,两个客户端均未安装、配置或运行以连接 Kunavo 的端点——所有配置声明均来自文档,未进行兼容性或性能测试。由于未找到两个智能体的中立基准测试,因此不提供任务成功率或速度比较。Kunavo 的 token 费率来自实时目录,本页面中的所有美元示例均为说明性的 token 费用计算。