Open-source AI software agent
OpenHands is an AI agent that works the way a developer does: it reads your repository, writes and edits files, runs commands in a real terminal, browses the web, executes the tests, and opens a pull request when it's done.
Give OpenHands a task in plain language and it takes the actions needed to finish it. These are the things people reach for it most.
Greenfield work is where agents shine. “Build a frontend-only TODO app in React, state in localStorage” becomes a running project you can iterate on.
It explores an unfamiliar codebase first — grepping, reading, tracing call sites — then makes changes that match the conventions already there.
Reproduce the failure, form hypotheses, patch the cause, and re-run the suite to prove the fix holds.
Rename across dozens of files, split fat modules, or move a codebase between major framework versions — the kind of mechanical change nobody wants to hand-edit.
Dependency bumps, lint cleanups, test backfills, changelog and release notes, README and docs that drifted out of date.
Read a pull request critically, leave inline comments, actually run the branch to check the behaviour, then drive it until CI is green.
Branch, commit, push, and open a pull request on GitHub, GitLab, or Bitbucket — or pick up work straight from a Jira or Linear ticket.
Scripts, data wrangling, notebooks, infrastructure config, scaffolding, one-off investigations — anything you'd do from a shell.
Under the hood is a reasoning-and-action loop. The agent picks a tool, observes what happened, and decides the next move — repeating until the goal is met.
Searches and reads the repo to build real context before touching anything.
Breaks the task into tracked steps and picks the smallest change that works.
Edits files, runs bash commands, installs packages, drives a browser when needed.
Runs tests, linters, and the app itself — then reads the output and fixes fallout.
Commits, opens a PR, and explains what changed and why.
Same agent, different front doors. Pick the one that matches how you want to work — and choose separately where the agent's workspace lives.
The recommended way to run OpenHands: a browser client and control centre for conversations, files, terminal, editor, and automations. It connects to a backend on your machine, in Docker, on a VM, or in the cloud.
The managed service at app.all-hands.dev. Nothing to install — sign in with GitHub, GitLab, or Bitbucket and get hosted execution, integrations, access controls, and budget management.
Run openhands for an interactive CLI, or openhands -t "…" to start with a task. Headless mode fits scripts and CI, and ACP support puts the agent inside your editor.
A composable Python library for building your own agents: custom tools, sub-agents, hooks, model routing, sandboxes, and metrics. It's the engine behind the CLI and Cloud.
Expose agent execution, conversations, tools, and workspaces over REST and WebSockets — including an OpenAI-compatible endpoint so existing chat clients can talk to an agent.
Out of the box the agent is general-purpose. These are the seams you use to make it specific to your team, your repo, and your tools.
Reusable instructions and domain knowledge, loaded per repo, per keyword, or per file path — so you stop pasting the same prompt every time.
Model Context Protocol support means the agent can discover and use tools from external servers automatically, across every OpenHands surface.
Scheduled or event-triggered runs: nightly dependency syncs, monitoring a repo, reacting to a GitHub webhook or a custom event.
Kick off work from Slack, or from a Jira or Linear issue, and let the results land back where your team is already talking.
Provider-agnostic by design, with routing, fallbacks, streaming, and reusable model profiles. Local models work too.
Run the workspace in Docker, Apptainer, a VM, or a hosted sandbox when you'd rather the agent didn't touch your laptop.
With Node.js 22.12+ and uv installed, launch the whole local stack — browser
client and backend — with a single line. Prefer nothing installed at all? Open Cloud instead.