OpenHands
also known as OpenDevin
Type: full-code · Vendor: All Hands AI · Language: Python · License: MIT (enterprise/ excluded) · Status: active · Status in practice: mature · First released: 2024-03-13
Open-source AI software-development platform: a composable Python SDK plus CLI, local GUI, and cloud GUI that runs tool-using agents inside an isolated sandbox (Docker / process / remote) with MCP tool extension and AGENTS.md-based skills.
Description. OpenHands (formerly OpenDevin) is a community project for AI-driven development. The core is a composable Python SDK that runs an agent loop: an LLM-driven agent executes bash, edits files, browses the web, and reaches external tools via MCP. Execution happens inside a configurable sandbox (Docker by default, process or remote alternatives), which gives strong host isolation. Repository-wide instructions live in AGENTS.md (or CLAUDE.md / GEMINI.md); on-demand skills live under .agents/skills/ or the legacy .openhands/microagents/ directory. OpenHands ships as CLI, Local GUI, and OpenHands Cloud on the same SDK.
Agent loop shape. Tool-using agent loop: the agent proposes a tool call (bash, file edit, browser, or MCP-provided tool); the call executes inside the configured sandbox; the resulting observation is returned to the model; the loop repeats until the task is done. AGENTS.md content is injected at conversation start; on-demand skills under .agents/skills/ are summarised first and read fully only when needed.
Primary use cases
- sandboxed autonomous software-development agent
- bash + file-edit + browser tool use inside Docker
- MCP-extended toolchain for code agents
- AGENTS.md-driven project skills
- self-hosted alternative to closed cloud coding agents
Key concepts
- Sandbox → sandbox-isolation (docs) — Execution environment where OpenHands runs commands, edits files, and starts servers. Docker / process / remote.
- Agent / Tools / Workspace / Conversation (docs) — Core SDK abstractions: an LLM-powered Agent uses Tools inside a Workspace via a Conversation.
- MCP → mcp (docs) — Open standard for external tool servers; OpenHands routes tool calls to configured MCP servers.
- AGENTS.md and skills → agent-skills (docs) — Always-on AGENTS.md for repo-wide instructions; on-demand skills under .agents/skills/ or legacy .openhands/microagents/.
- Multi-interface SDK (docs) — Same agent runs as CLI, Local GUI, or OpenHands Cloud on a shared SDK.
Patterns this full-code implements —
- ★Agent Skills
AGENTS.md is always-on context; on-demand skills under .agents/skills/ are summarised then loaded on demand.
- ★Code-as-Action Agent
Tools include bash + file edit + browser; tools are the agent's capability surface for acting on code.
- ★★Code Execution
Bash and code execution run inside Docker sandbox; process and remote alternatives also documented.
- ★★Model Context Protocol
First-class MCP client across CLI, SDK, Local GUI, and Cloud; supports SSE/SHTTP/stdio transports.
- ★★ReAct
Reason-then-tool-call loop with observations fed back; Workspace is where actions execute and observations come from.
- ★★Sandbox Isolation
Docker sandbox is the recommended isolation boundary; process and remote sandboxes exist as alternatives.
- ★★Tool Use
Modular tool system; native bash/edit/browser tools plus MCP-discovered tools.
- ★Subagent Isolation
Sub-Agent Delegation is a documented SDK primitive — parallel work with independent contexts; consolidated results returned to main agent.
- ★★Agent Resumption
CLI supports `openhands --resume <id>` and `--last`; SDK persists conversation state to disk for multi-session workflows.
- ★Computer Use
BrowserToolSet enables web navigation, clicking, extraction; honest downgrade from first-class because this is web browsing, not OS mouse/screen control.
- ★★Context Window Packing
Summary-first on-demand skill loading is the explicit context-packing tactic; AGENTS.md is always-on context injected at start.
- ★★Step Budget
Iterative-refinement guide documents MAX_ITERATIONS + quality-threshold as caps on agent loops; not a default-on session-wide cap, so 'limited'.
Neighbourhood
Click any neighbour to follow the lineage. Scroll to zoom, drag to pan.