openhands/openhands
🙌 OpenHands: AI-Driven Development
How openhands is put together
OpenHands 'Agent Canvas' is a self-hosted developer control center for running coding agents (OpenHands, Claude Code, Codex, Gemini, any ACP-compatible agent) across local, remote, and cloud backends. The primary artifact is a TypeScript React 19 single-page app built with React Router 7 (SSR disabled) and Vite, which talks to the externally-implemented OpenHands Agent Server REST/WebSocket API exclusively through the typed @openhands/typescript-client. A Node.js CLI entrypoint (bin/agent-canvas.mjs) orchestrates the full local stack: a Python agent-server launched via uvx, an automation backend via uvx, and a static frontend served through an ingress proxy that unifies /api/automation/*, /api/*, /sockets, and static assets on a single port. The same codebase ships as an npm package (@openhands/agent-canvas), a Docker all-in-one image, a Helm chart, and an Electron desktop app.
Languages
Frameworks
Datastores
Infrastructure
Major components
Frontend SPA (src/)
React Router 7 SPA providing conversation UI, settings, terminal (xterm), file editing (Monaco), and markdown rendering of agent output.
API service layer (src/api/)
Typed adapters over the Agent Server API (agent-server-adapter, compatibility checks, secrets/skills/plugins services, device flow auth, LLM balance/subscription services).
Local stack orchestrator (bin/agent-canvas.mjs + scripts/)
CLI that launches the agent-server and automation backend via uvx, serves the built frontend via static-server.mjs, and runs an ingress proxy unifying all routes on one port.
State & realtime layer (src/hooks/, src/contexts/)
Zustand stores, TanStack Query hooks, and WebSocket contexts (conversation-websocket-context, websocket-provider-wrapper) for live agent events.
Desktop shell (electron/)
Electron main process, preload bridge, and builder config for packaged desktop distributions.
Container/Helm delivery (docker/, helm/agent-canvas/)
All-in-one Docker image (agent-server + automation + static frontend + ingress) and Kubernetes Helm chart with values.yaml.
i18n system (src/i18n, scripts/make-i18n-translations.cjs)
Generated translation declarations plus lint-enforced prohibition of hard-coded user-facing strings.
Test harnesses (tests/e2e, playwright.*.config.ts, vitest, Stryker)
Four-tier E2E (mock, mock-LLM, mock-LLM-Docker, live) with Python mock LLM server, plus unit tests, coverage, and mutation testing.
A quieter week focused on small but useful refinements: sidebar customization, automation visibility, and settings controls.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quieter week focused on small but useful refinements: sidebar customization, automation visibility, and settings controls.
Week of 2026-08-17
The busiest week of the month: version 1.15.0 shipped along with a Linux installer, provider-connections UI, and a unified commits drawer.
Week of 2026-08-10
Big usability wins landed: a context-window usage meter with manual compaction, client-side conversation archiving, and inline markdown previews.
Week of 2026-08-03
The desktop app was renamed to 'Agent Canvas' and gained an automations dashboard, per-run cost tracking, and activity log exports across four rapid releases.
Week of 2026-07-27
Foundation week: live agent activity in chat, persistent agent memory toggle, WebSocket security hardening, and mutation testing were introduced.
Over the past month the OpenHands project shipped a steady stream of user-facing polish alongside bigger structural additions: a context-window usage meter with manual compaction, conversation archiving and tagging, an automations dashboard with run tracking and cost reporting, and LLM provider-connection management. The desktop app was rebranded to 'Agent Canvas' with proper installers for Windows, macOS, and Linux, while releases rolled out rapidly (1.9 through 1.15). Later weeks shifted toward quality-of-life fixes — sidebar pinning, skill allow-lists, settings toggles, and process cleanup — plus heavy investment in CI reliability and documentation of repository boundaries.
Week by week
2026-08-24A quieter week focused on small but useful refinements: sidebar customization, automation visibility, and settings controls.latest6 changes
Feature
Pin a favorite sidebar page as your home screen
You can now choose which page opens by default when you launch OpenHands.
Feature
Skills moved to an explicit allow-list
Instead of every skill being on by default, users now explicitly choose which skills are enabled.
Feature
Automations show their live phase
Running automations now display what stage they're currently in, so you can follow progress in real time.
Feature
LLM-switching toggle exposed in Agent settings
Users can control whether the agent can switch between language models directly from the settings page.
Fix
Chat file paths link to the Files drawer
Clicking a file path mentioned in chat now jumps straight to that file in the Files panel.
Fix
Automation history and sidebar polling kept under control
Run-history loading was capped and sidebar background polling paused to prevent slowdowns from runaway requests.
2026-08-17The busiest week of the month: version 1.15.0 shipped along with a Linux installer, provider-connections UI, and a unified commits drawer.6 changes
Feature
Linux desktop installer added
OpenHands can now be installed as a .deb package on Linux, joining Windows and macOS support.
Feature
Conversation overview panel and unified commits drawer
A new overview view lets you see everything happening in a conversation, including all code changes in one place.
Feature
LLM provider-connections UI for local setups
Self-hosted users got a visual interface for connecting language-model providers instead of editing config files.
Fix
Events socket stays alive across refreshes
The live connection that streams agent activity no longer drops when data is refetched, and stuck handshakes are cut off cleanly.
Fix
Provider lists now load past the first page
Cloud-based model providers beyond the default page size are now surfaced so nothing is hidden.
Chore
Release 1.15.0
A new stable version was published bundling the week's features and fixes.
2026-08-10Big usability wins landed: a context-window usage meter with manual compaction, client-side conversation archiving, and inline markdown previews.6 changes
Feature
Context window usage meter and manual compaction
A visual ring shows how much of the AI's memory is used, and you can manually compress the conversation when it fills up.
Feature
Client-side conversation archive
You can archive old conversations yourself to keep the list tidy without deleting anything.
Feature
Inline markdown artifact previews in chat
Formatted content like tables and code blocks generated by the agent now renders right inside the chat.
Feature
LLM pre-flight validation
Misconfigured AI profiles are caught before saving, preventing broken setups.
Fix
Basic LLM provider list no longer truncated at 100 entries
All available providers now appear even when there are more than one hundred options.
Chore
Release 1.13.0
A new stable version was published mid-week with these improvements included.
2026-08-03The desktop app was renamed to 'Agent Canvas' and gained an automations dashboard, per-run cost tracking, and activity log exports across four rapid releases.6 changes
Fix
Desktop app renamed to OpenHands Agent Canvas
The standalone app got a clearer name plus properly sized icons for Windows and macOS.
Feature
Featured automations landing dashboard
A polished dashboard now showcases ready-to-use automations when you open the app.
Feature
Per-run LLM cost shown in Activity Log and exports
You can see exactly how much each automation run cost in AI usage, both on screen and in exported logs.
Feature
Activity log export
Records of what the agent did can be downloaded for review or record-keeping.
Feature
Conversation tags and automation tag filtering
Conversations can be labeled with tags, and automations can be filtered by those tags for easier organization.
Chore
Four releases shipped (1.9.0–1.12.0)
An unusually fast release cadence delivered all of this week's work in quick succession.
2026-07-27Foundation week: live agent activity in chat, persistent agent memory toggle, WebSocket security hardening, and mutation testing were introduced.6 changes
Feature
Live agent activity shown in chat
You can now watch what the agent is doing in real time as it works, rather than waiting for final output.
Feature
Persistent agent memory toggle
A setting lets you decide whether the agent remembers context across sessions.
Fix
WebSockets authenticated outside URLs
Live connections are now verified securely without putting credentials in web addresses, closing a security gap.
Chore
Stryker mutation testing added
Automated checks were introduced that deliberately break code to verify the test suite actually catches bugs.
Feature
Enable/disable installed MCP servers from their card
Connected tool integrations can be switched on or off directly from their listing card.
Chore
Rapid releases 1.7.0 through 1.8.0
Four versions shipped this week as the team iterated quickly on fixes and features.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 1447 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required