OpenHands
all-hands.dev- Category
- Developer Tools
- Rank
- No. 679Tools index
- Listed in
- #9 Code with an agent
- Pricing
- Freemium
- Type
- TOOL
- Use case
- Coding
- Builder
- openhands
- GitHub
- 92.4k stars
- Latest release
- v1.34.0
- Date
About
Open-source software-dev agent. Open-source autonomous developer agent (formerly OpenDevin). Self-host for free, or use the hosted cloud with usage billing.
What it does
This repository ships a self-hosted control panel for running coding agents rather than an agent by itself. It launches a local web app that connects to one or more agent backends, whether the project's own agent, Claude Code, Codex, Gemini, or anything speaking the Agent Client Protocol, and lets you start conversations, switch between local, remote, or cloud backends, and wire up scheduled or webhook-triggered automations that post results into chat and project tools.
Why it's ranked here
Real engineering process backs this beyond a demo: unit tests, two flavors of end-to-end tests, and mutation testing all run in continuous integration alongside lint, typecheck, and two separate build targets. MIT licensing and packaging as both a global command and an embeddable library widen who can adopt it. Against that, the project labels itself beta, the default install path grants an agent full filesystem access, and the self-hosting guide names a still-open security gap that can leak every connected backend's session key.
What's good
It doesn't lock you into one agent: the same console drives the project's own agent, Claude Code, Codex, Gemini, or any agent implementing the Agent Client Protocol, with a settings screen for supplying your own model credentials. Backends can run on a laptop, a dedicated machine, or the cloud, and switching between them keeps open conversations intact. Built-in automations integrate with Slack, GitHub, and Notion, so agents can be triggered by a schedule or a webhook rather than only opened by hand.
Tradeoffs
Two of the three install paths run the agent process directly on your machine with full read and write access to the filesystem, a risk the project's own warnings repeat twice. The self-hosting guide documents a live, unresolved flaw: because the bundled code editor shares the same browser origin as the control panel, a compromised extension or asset inside it can read the stored session key for every backend a user has ever connected. The agent's actual reasoning and tool execution live in a separate, differently versioned repository.
How to use it well
Treat it as a dashboard for a fleet of agents rather than a one-shot task runner. It suits a team that wants a shared, always-on place to launch code-review or dependency-update agents and route their output into Slack or GitHub. For solo or occasional use, the Docker sandbox keeps the agent off the bare host. Anyone exposing it to the open internet should pair the built-in access key with real firewall rules and weigh the bundled editor's known origin-sharing gap before trusting it with sensitive credentials.
Technical notes+
package.json declares the MIT license, a bin entry point named agent-canvas, and an engines constraint of node>=24, which sits oddly against the README's quickstart prerequisite of Node.js 22.12.x: the two files disagree on the minimum runtime. The scripts block wires vitest for unit tests, Playwright for both mocked and live end-to-end suites, and Stryker for mutation testing, plus a build:lib target and npm pack --dry-run, which docs/architecture.md confirms all run in CI alongside lint and typecheck. electron/main.mjs implements injectBundledUv and injectBundledNode to splice a bundled Python (uv) and Node runtime onto PATH for the packaged desktop app, and imports isExternalBrowsableUrl and isLoopbackAppUrl from a window URL policy module to constrain what the Electron BrowserWindow can navigate to. src/index.ts is a one-line barrel, export * from './lib', backing the multiple library entry points (browser, conversation, files, settings, sidebar, terminal, i18n) declared in package.json's exports map. docs/SELF_HOSTING.md documents the open GitHub issue #16492, where the bundled editor's shared origin lets any script running inside it read the canvas's localStorage session keys.
Observed
- License
- MIT licensed (package.json)
- Distribution
- Distributed as an npm package with a CLI binary, a Docker image, and an Electron desktop build
- Package exports
- npm package also exposes separate library entry points for browser, conversation, files, settings, sidebar, terminal, and i18n components (package.json exports map)
- Test suite
- Test suite combines unit tests (vitest), end-to-end tests (Playwright, including a dedicated mock-LLM configuration), and mutation testing (Stryker)
- Architecture
- Frontend is React and TypeScript; the agent server and SDK that execute agent actions live in a separate repository and are Python-based, invoked via uv/uvx
- Security disclosure
- Self-hosting documentation describes an unresolved security issue (referenced as GitHub issue #16492) arising from the bundled code editor sharing a browser origin with the control panel
- Sandboxing
- Two of three documented local install paths run the agent server directly on the host filesystem with no sandbox; a Docker-based option is offered as an alternative
Read from README.md, package.json, electron/main.mjs, src/index.ts, docs/architecture.md, docs/SELF_HOSTING.md.
Intel on OpenHands
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.