OpenHands
🙌 OpenHands: AI-Driven Development
- 91.6k stars
- 12.2k forks
- 1,084 open issues
- Language: TypeScript
- License: MIT
- updated
Install
git clone https://github.com/OpenHands/OpenHands && cp OpenHands/*.md ~/.claude/agents/- Clone the repository and copy the agent .md definitions into ~/.claude/agents (or .claude/agents inside a project).
- Start a new Claude Code session to load the agents.
- Delegate work to them with the Task/Agent tool or by name.
Editor's note
OpenHands is an open-source AI software development platform built around a composable Python SDK that lets developers define, run, and scale autonomous coding agents locally or across thousands of cloud instances. It connects to Claude (and other LLMs including GPT models) through a CLI that mirrors the interaction style of Claude Code, a local GUI with a React frontend and REST API, and a hosted cloud offering at app.all-hands.dev. The project includes four distinct deployment modes: the SDK for programmatic agent composition, the CLI for terminal-based coding sessions, the Local GUI for laptop use, and OpenHands Cloud, which adds Slack, Jira, and Linear integrations along with multi-user RBAC. A notable benchmark result is a 77.6 score on SWE-bench, a standard measure of autonomous bug-fixing on real GitHub issues. The core codebase and Docker images are MIT-licensed, making it accessible to individual developers, while an enterprise tier supports self-hosting via Kubernetes for larger organizations.
3 items in this repository
This skill should be used when the user asks to "test a cross-repo feature", "deploy a feature branch to staging", "test SDK against OH Cloud", "e2e test a cloud workspace feature", "test provider tokens", "test secrets inheritance", or when changes span the SDK and OpenHands server repos and need end-to-end validation against a staging deployment.
This skill should be used when the user asks to "generate release notes", "list upcoming release PRs", "summarize upcoming release", "/upcoming-release", or needs to know what changes are part of an upcoming release.
This skill should be used when the user asks to "update SDK", "bump SDK version", "pin SDK to a commit", "test unreleased SDK", "update agent-server image", "bump the version", "prepare a release", "what files change for a release", or needs to know how SDK packages are managed in the OpenHands repository. For detailed reference material, see references/docker-image-locations.md and references/sdk-pinning-examples.md in this skill directory.
Subagents overview
Agent Canvas The self-hosted developer control center for coding agents and automations. Run OpenHands, Claude Code, Codex, Gemini, Pi, OpenCode, or any ACP-compatible agent across local, remote, and cloud backends. Quickstart | Docs | Self-Hosting | ACP Agents | Automations | Slack
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 | Run agents locally, in Docker, on VMs, or anywhere you can run an agent server backend |
| Switch between different backends | Switch between local, remote, and cloud agents without losing focus |
| Create 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 | Connect your automations with third-party services like Slack, GitHub, Notion, and more to automate workflows |
| Bring your own model | Use with any LLM |
| Use with any agent | 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.
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-canvasThe 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 onlyOption 2: With a Docker Sandbox
Prerequisites:
Docker: Docker Desktop on macOS/Windows, or Docker Engine/Docker Desktop on Linux.
A host directory for
PROJECTS_PATHcontaining 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.32.0 # x-release-please-versionWindows (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-canvasOpen 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 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.
git clone https://github.com/OpenHands/OpenHands.git
cd OpenHands
npm ci
npm run devAccess 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.
What people ask about OpenHands
What is OpenHands/OpenHands?
OpenHands/OpenHands is subagents for the Claude AI ecosystem. 🙌 OpenHands: AI-Driven Development It has 91.6k GitHub stars and its last recorded update is dated 2026-10-23.
How do I install OpenHands?
You can install OpenHands by cloning the repository (https://github.com/OpenHands/OpenHands) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is OpenHands/OpenHands safe to use?
Our security agent has analyzed OpenHands/OpenHands and assigned a Trust Score of 100/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains OpenHands/OpenHands?
OpenHands/OpenHands is maintained by OpenHands. The last recorded GitHub activity is dated 2026-10-23, with 1084 open issues.
Are there alternatives to OpenHands?
Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.
Maintain this repo? Show its Trust Score in your README
The badge shows this repository's current Trust Score and verdict, and links back to this page. It follows the catalogue data: nobody can buy or edit the score it displays.
[](https://claudewave.com/en/repo/openhands-openhands)<a href="https://claudewave.com/en/repo/openhands-openhands"><img src="https://claudewave.com/api/badge/openhands-openhands" alt="ClaudeWave Trust Score for OpenHands/OpenHands" width="320" height="64"></a>