👐 OpenHands:73k Stars 的 AI 驱动开发平台,CLI / GUI / SDK 全都要
项目地址:github.com/OpenHands/OpenHands | ⭐ 73k Stars | 🐍 Python
老实说,现在 AI 编码工具卷麻了。Claude Code、Codex、Cursor… 每个都号称能替你写代码,但真到了实际项目,要么只能在编辑器里用,要么不支持 CI 集成,要么没法自定义 agent 行为。
OpenHands 是少数几个全都要的选择——CLI 终端模式、本地 GUI、云端服务、Python SDK,四合一。SWE-bench 评分 77.6%,被 TikTok、Netflix、NVIDIA 的工程师用着跑生产环境。
一、一分钟上手
装 OpenHands CLI 最快的方式是用 uv:
uv tool install openhands --python 3.12
或者用一键脚本:
curl -fsSL https://install.openhands.dev/install.sh | sh
第一次运行会自动引导配置 LLM:
openhands
支持 Claude、GPT、Gemini 等各种模型。最骚的是它还支持通过环境变量传参,直接在 CI 里跑:
LLM_API_KEY=sk-xxx LLM_MODEL=anthropic/claude-sonnet-4-5 openhands --headless -t "给这个 repo 写个 README"
二、不只是 CLI——SDK 才是核心
OpenHands 跟其他编码工具最大的区别是,它有一套可编程的 Software Agent SDK,你可以用 Python 直接控制 agent 行为:
from openhands.sdk import LLM, Agent, Conversation
from openhands.tools import FileEditorTool, TerminalTool
llm = LLM(
model="anthropic/claude-sonnet-4-5-20250929",
api_key="sk-xxx"
)
agent = Agent(llm=llm, tools=[
Tool(name=TerminalTool.name),
Tool(name=FileEditorTool.name),
])
conv = Conversation(agent=agent, workspace="/my-project")
conv.send_message("更新所有过期的依赖")
conv.run()
别问我怎么知道的——之前用别的工具处理多仓库重构,每次都要手动调 prompt。SDK 模式直接写脚本批量跑,省了一个数量级的时间。
三、MCP + 多模式运行
OpenHands 原生支持 MCP,可以挂外部工具扩展能力:
# 添加一个 MCP 服务器
openhands mcp add tavily --transport stdio \
npx -- -y mcp-remote "https://mcp.tavily.com/mcp/?tavilyApiKey=xxx"
# 查看已配置的服务器
openhands mcp list
运行模式也很有诚意。终端 TUI 模式(openhands)适合日常交互;IDE 集成模式(openhands acp)能嵌入 VSCode / JetBrains / Zed;无头模式(openhands --headless)可以塞进 CI/CD 流水线;还有 Web 界面(openhands web)和 GUI 服务(openhands serve),团队协作也不在话下。
四、避坑指南
踩过的坑记录几个:
LLM_API_KEY 这些环境变量,需要加 --override-with-envs 参数才会应用~/.openhands/ 生成配置文件,如果权限不对可能导致配置写不进去,建议先手动 openhands 跑一遍初始化总结
如果你想从 Claude Code 或 Codex 迁移,或者需要一个能在 CI 里跑的 headless 编码 agent,OpenHands 值得花十分钟试试。