skillpack.co
← All solutions

OpenHands

active

Category leader in multi-agent orchestration — 69,352 stars (verified), $18.8M Series A, AMD hardware partnership, 455 contributors, 1M downloads/month PyPI (3.4M all-time). SWE-Bench Verified 72% with Claude 4.5 Extended Thinking (updated 2026-03-19), Multi-SWE-Bench #1 across 8 languages. Gap to #2 is enormous on every axis.

Score 88trending
OpenHands in action

Where it wins

68,800+ stars (verified), 455 contributors — largest open-source community by 10x

4M+ downloads, accelerating

$18.8M Series A (Madrona-led) + AMD Lemonade collaboration

ICLR paper accepted 2025 — peer-reviewed research backing

MIT license, model-agnostic, self-hostable — only serious option for air-gapped deployment

Planning Agent v1.5.0 (Mar 2026) — Plan/Code mode toggle

Biweekly releases (v1.5.0 on 2026-03-11)

Where to be skeptical

SWE-bench Verified 43.2% (CodeAct) — significant gap below closed-source leaders

No disclosed revenue or paying customer count

HN engagement low (<100 pts) compared to peers — 69K stars don't translate to developer mindshare

Enterprise adoption evidence thin beyond logo slides

Development velocity plateaued relative to Codex CLI (896/mo) and Gemini CLI (709/mo)

Editorial verdict

Category leader. No other tool has the combination of open-source community (69K stars, 455 contributors), real download volume (1M/month), venture backing ($18.8M), hardware partnerships (AMD), and benchmark leadership (SWE-bench Verified 72%). Gap to #2 is enormous.

Videos

Reviews, tutorials, and comparisons from the community.

OpenHands + Devstral = A Fully Local Coding Agent

OpenHands·2025-05-21

Build Apps With Prompts! - OpenHands

Jim's Garage·2025-01-27

OpenHands: Open-source AI Software Development Agents

OpenHands·2025-03-26

OpenHands: AI Software Engineer - Generate Complex Apps

WorldofAI·2025

OpenHands: BEST AI Software Engineer

WorldofAI·2024

Related

Claude Code

98

Anthropic's official agentic coding CLI. v2.1.81 (Mar 20) shipped `--bare`, smarter worktree resume, and improved MCP OAuth while the repo crossed 82,204 stars and logged ~14 commits/week across 10+ maintainers. Terminal-native, tool-use-driven, with deep file system + shell access, #1 SWE-bench Pro standardized (45.89%), ~4% of GitHub public commits (SemiAnalysis), $2.5B annualized revenue. 8M+ npm weekly downloads. Opus 4.6 with 1M context.

LangGraph

95

#1 Python agent framework by production evidence — 40.2M PyPI downloads/month, Fortune 500 deployments (LinkedIn, Uber, Replit, Elastic, Klarna, Cloudflare, Coinbase), ~400 LangGraph Platform companies, LangSmith rated best-in-class observability. Stable v1.x API, model-agnostic, MCP support.

Pydantic AI

95

#3 Python agent framework by downloads — 15.6M PyPI/month. Built by the Pydantic team. Runtime type enforcement is a genuine differentiator no other framework offers. V1 shipped with Temporal integration for durable execution and Logfire observability. Emerging pattern: 'Pydantic AI for agent logic, LangGraph for orchestration' (ZenML).

AutoGen (Microsoft)

95

⚠️ MAINTENANCE MODE — Microsoft officially confirmed bug fixes and security patches only, no new features (VentureBeat 2026-02-19). 55.9K stars but only 1.57M PyPI/month — DL/star ratio of 28, the most inflated among active frameworks. Being replaced by Microsoft Agent Framework (AutoGen + Semantic Kernel merge, GA targeted ~Q2 2026). Teams on AutoGen should plan migration.

Public evidence

strongSelf-reported2026-03-04
4M+ downloads, reducing code-maintenance backlogs by up to 50%

Early enterprise adopters report reducing code-maintenance backlogs by up to 50% and cutting vulnerability resolution times from days to minutes. Transition from research tool to production platform.

Official blog, metrics independently citedOpenHands team
strong2024-08
HN: OpenDevin paper discussion — 198 points, 107 comments

One tester reports agent completed half a test-writing task but cost $50 in API credits. Maintainer acknowledges it's 'useful for a handful of one-off tasks' but not yet mission-critical.

198 points, 107 commentsHacker News community (mixed/skeptical tone, independent testers)
strong2025-12
Nebius: 67K OpenHands trajectories with Qwen3-Coder, 61.7% SWE-bench Verified

Used OpenHands as scaffolding framework to generate 67K trajectories for fine-tuning. Describes OpenHands as 'one of the most widely adopted open-source agent scaffolding frameworks.' Achieved 61.7% SWE-bench Verified.

67,074 agent trajectories generated, fine-tuned models releasedNebius (cloud AI company, independent third-party)
strong2026-02
68K+ stars puts OpenHands in top 0.01% of all GitHub repos

Stars confirm community traction far beyond any competitor in the autonomous coding category. Consistently ranked #1 open-source Devin alternative across multiple independent roundups.

Independent analysisThe Agent Times (independent)

Raw GitHub source

GitHub README peek

Constrained peek so you can sanity-check the source material without leaving the site.

<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"> </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 wayRun agents locally, in Docker, on VMs, or anywhere you can run an agent server backend
Switch between different backendsSwitch between local, remote, and cloud agents without losing focus
Create automationsCreate 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 useConnect your automations with third-party services like Slack, GitHub, Notion, and more to automate workflows
Bring your own modelUse with any LLM
Use with any agentUse 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.

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 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 24 or later, uv

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:

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:

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.27.1 # x-release-please-version

Windows (PowerShell / Windows Terminal): See README.windows.md for the equivalent commands.

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:

npm install -g @openhands/agent-canvas
OH_CONVERSATION_RUNTIME=docker agent-canvas

Open 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.

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 24 or later, npm, uv (for running the agent server via uvx)

git clone https://github.com/OpenHands/OpenHands.git
cd OpenHands
npm install
npm run dev

Access the UI at http://localhost:8000 for the npm/source launchers, or 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.

View on GitHub →