Releases: OpenHands/OpenHands
Release list
v1.16.0
1.16.0 (2026-08-27)
What's Changed
Features
- feat(settings): select supported LLM providers by @keeltrace in #16772
- feat: add linux desktop installer build (CI + deb maintainer fix) by @georgeglarson in #16656
- feat(automations): show a run's live phase by @aartem1 in #16740
- feat(settings): expose the LLM-switching toggle in Agent settings by @georgeglarson in #16441
- feat(skills): replace the all-on skill catalog with an explicit allow-list by @VascoSch92 in #16860
- feat: link chat file paths to the Files drawer by @ShashwatXD in #16181
- feat: pin a favorite sidebar page as the home route by @hieptl in #16868
- feat: skip onboarding when a user-added Local backend has a usable LLM by @VascoSch92 in #16931
- feat: fix default and free models by @neubig in #16922
- feat: land the Canvas Extensions frontend (load pages, sidebar, customize) by @hieptl in #16895
Bug Fixes
- fix: render the VSCode button on self-hosted (local) backends by @harish-chandramowli in #16106
- fix: correlate local conversation telemetry with Canvas identity by @neubig in #16796
- fix(ci): ignore fenced headings in readiness checks by @ump45nose in #16595
- fix: forward disabled_skills into agent_context so backend excludes them by @jdlake in #16812
- fix(ci): prevent issue readiness workflow from failing on not-ready issues by @KHARSHAVARDHAN-eng in #16514
- fix(ci): use reproduction steps for ready-for-dev checks by @neubig in #16828
- fix(acp): surface a 'credentials configured' banner state on Docker/cloud (#15643) by @georgeglarson in #16145
- fix(ci): edit the mock-LLM E2E PR comment in place by @VascoSch92 in #16591
- fix(providers): follow next_page_id so cloud picks surface past the default page size by @georgeglarson in #16758
- fix(ci): refresh readiness comment when label is added by @neubig in #16830
- fix(desktop): ship the bundled Node's npm on Windows by @Telov in #16381
- fix(agent-canvas): scope baked working_dir to the default-local backend by @enyst in #16759
- fix: clean up dev:extra-backend agent-server on SIGHUP by @georgeglarson in #16280
- fix: clean up dev:minimal services on SIGHUP by @georgeglarson in #16279
- fix: hide API key for OpenHands provider on cloud by @tofarr in #16863
- fix(home): remember local workspace mode selection by @tofarr in #16881
- fix: bound automation run-history fan-out and pause sidebar polling by @hieptl in #16867
- fix: validate api key before advancing backend connection step by @JatinJain703 in #16840
- fix: rename conversation title on cloud backends by @jpelletier1 in #16966
Documentation
- docs: fix broken reference to new-conversation-button.tsx in AGENTS.md (#16783) by @kris3984 in #16807
- docs: require acceptance criteria review checklist by @neubig in #16832
- docs: document OpenHands repository boundaries by @neubig in #16834
- docs: refresh AGENTS.md guidance by @all-hands-bot in #16310
- docs: refresh AGENTS.md guidance by @all-hands-bot in #16923
- docs: clarify PR template agent section by @enyst in #16942
- docs: refresh Canvas code review guidelines by @enyst in #16941
Maintenance
- ci(deps): bump actions/setup-python from 6 to 7 in the actions group by @dependabot[bot] in #16645
- chore: remove unused random tip code by @smolpaws in #16935
- chore: bump SDK deps (software-agent-sdk 1.44.0, automation 1.9.0, extensions 0.19.0) by @hieptl in #16968
New Contributors
- @harish-chandramowli made their first contribution in #16106
- @keeltrace made their first contribution in #16772
- @kris3984 made their first contribution in #16807
- @ump45nose made their first contribution in #16595
- @jdlake made their first contribution in #16812
- @KHARSHAVARDHAN-eng made their first contribution in #16514
- @Telov made their first contribution in #16381
- @aartem1 made their first contribution in #16740
- @JatinJain703 made their first contribution in #16840
Full Changelog: v1.15.0...v1.16.0
This PR was generated with Release Please. See documentation.
v1.15.0
1.15.0 (2026-08-21)
What's Changed
Features
- feat(sidebar): add getting started checklist with settings toggle by @FraterCCCLXIII in #16182
- feat: show workspace path in Files view by @HurrairaBaloch in #16362
- feat(automations): install a catalog entry that ships a script bundle by @VascoSch92 in #16680
- feat: add LLM provider-connections UI (local agent-server) by @juanmichelini in #16616
- feat: polish automations dashboard, recommended rail, and Add/Import flow by @FraterCCCLXIII in #16688
- feat(conversation): add overview panel and unified commits drawer by @FraterCCCLXIII in #16230
- feat: send template provenance for versioned setup entries by @hieptl in #16458
- feat: instrument onboarding checklist link clicks by @hieptl in #16777
Bug Fixes
- fix: prevent silent agent profile downgrade by @neubig in #16523
- fix: always show all workspace folders in grouped view regardless of pagination by @mohitdebian in #16444
- fix: honor the home LLM dropdown selection over an agent profile's pinned LLM by @hieptl in #16671
- fix: restore onboarding modal bottom padding and stop leftover scrollbars by @FraterCCCLXIII in #16684
- fix(ci): stop treating markdown as frontend evidence-bearing code by @marmar9615-cloud in #16693
- fix: clear stale urlSearchResults for non-matching HTTPS URLs in useUrlSearch by @xxiaoxiong in #16700
- fix: normalize trailing slash in git remote URLs by @mikemikimike in #16536
- fix(scripts): use 127.0.0.1 for remaining localhost service URLs by @marmar9615-cloud in #16409
- fix(backend-registry): preserve URL fragments in withBackendSelectionParams by @chrislazar25 in #16619
- fix: combine stats.usage_to_metrics into AppConversation.metrics when metrics is unset by @VascoSch92 in #16510
- fix: reconcile non-native tool-call streamed <function=...> XML delta by @sideeffffect in #16220
- fix(chat): scope Cmd+Enter build shortcut to plan mode by @VascoSch92 in #16703
- fix(skills): keep modal actions visible for long descriptions by @KXHXK in #16115
- fix: unsandbox the PDF preview iframe so the built-in viewer renders by @hieptl in #16702
- fix: do not silently persist ACP model picks to agent_settings when profile discovery fails by @hieptl in #16701
- fix: support mouse drag-to-scroll on recommended rails by @hieptl in #16742
- fix(git): stop reading a remote URL's port as part of the repository path by @marmar9615-cloud in #16723
- fix: keep the events socket alive across refetches and bound hung handshakes by @hieptl in #16732
Performance
- perf: batch StreamingDeltaEvents so the UI keeps up with fast models by @VascoSch92 in #16164
Documentation
- docs: fix broken internal links by @karan-963 in #16627
- docs: add DefenseClaw and testing matrix to the docs index by @marmar9615-cloud in #16408
- docs(tests): point the router example at a test that exists by @marmar9615-cloud in #16711
Maintenance
- ci: bump agent-canvas chart image tag on release by @aivong-openhands in #16665
- refactor: finish the microagent→skill rename in the frontend by @VascoSch92 in #16672
- refactor: serve the automation interface from the manifest alone by @VascoSch92 in #16676
- chore: bump openhands-automation to 1.8.0 by @VascoSch92 in #16712
- chore: bump @openhands/extensions to 0.17.0 by @VascoSch92 in #16717
- chore: bump @openhands/extensions to 0.18.0 by @VascoSch92 in #16754
- chore: bump @openhands/typescript-client to 1.38.1 by @VascoSch92 in #16780
New Contributors
- @mohitdebian made their first contribution in #16444
- @karan-963 made their first contribution in #16627
- @marmar9615-cloud made their first contribution in #16408
- @xxiaoxiong made their first contribution in #16700
- @mikemikimike made their first contribution in #16536
- @HurrairaBaloch made their first contribution in #16362
- @chrislazar25 made their first contribution in #16619
- @sideeffffect made their first contribution in #16220
- @KXHXK made their first contribution in #16115
Full Changelog: v1.14.0...v1.15.0
This PR was generated with Release Please. See documentation.
v1.14.0
1.14.0 (2026-08-17)
What's Changed
Features
- feat(canvas): present structured error outcomes by @neubig in #16231
- feat: add LLM pre-flight validation to prevent saving misconfigured profiles by @neubig in #16417
- feat(automations): add a Git Sync page by @VascoSch92 in #16521
- feat: set Canvas default model to Kimi K3 and tag it free by @juanmichelini in #16657
Bug Fixes
- fix(onboarding): preselect OpenHands LLM provider after picking OpenHands agent by @juanmichelini in #16531
- fix: preserve backend scope in conversation links by @neubig in #16091
- fix(dev): stop baking absolute VITE_BACKEND_BASE_URL in npm run dev by @neubig in #16605
- fix(automations): set local responder URL from browser origin by @adbcodes in #16332
- fix: show full workspace file tree in Files tab on cloud backends (OHE-3053) by @lilagrc in #16344
Documentation
Maintenance
- ci: remove broken QA Changes workflow by @neubig in #16549
- ci: re-run PR description check when new commits are pushed by @VascoSch92 in #16607
- chore: remove unreachable frontend modules and their tests by @VascoSch92 in #16606
- ci: run PR description check on draft PRs by @neubig in #16547
- test: capture Docker E2E container logs by @neubig in #16660
New Contributors
Full Changelog: v1.13.0...v1.14.0
This PR was generated with Release Please. See documentation.
v1.13.0
1.13.0 (2026-08-13)
What's Changed
Features
- feat(conversations): add client-side conversation archive by @FraterCCCLXIII in #16100
- feat(chat): add inline markdown artifact previews by @FraterCCCLXIII in #16185
- feat: add ready-for-dev issue readiness gate with type-specific criteria by @all-hands-bot in #16449
- feat: context window usage meter, usage drawer, and manual compaction by @georgeglarson in #16311
Bug Fixes
- fix: add postinstall message showing how to start agent-canvas by @all-hands-bot in #16338
- fix: configure agent-server telemetry in Canvas launchers by @malhotra5 in #16348
- fix: make overflow menus usable on touch devices by @FraterCCCLXIII in #16101
- fix: make sidebar "Load more" discover folders, not folder contents by @FraterCCCLXIII in #16179
- fix: disable chat input drag-resize when not bottom-anchored (OHE-3062) by @tofarr in #16479
- fix(automations): surface non-MCP-installable integrations instead of silently dropping them by @lokesh75-kank in #16324
- fix: resolve flaky ProgressEvent unhandled rejection in CI by @neubig in #16504
- fix: spawn launcher services without implicit shell by @lufen in #16093
- fix: stop truncating the Basic LLM provider list at 100 entries by @opensource-joe in #16453
- fix(context-meter): draw the ring track from the foreground, not a border token by @georgeglarson in #16534
- fix: drain pending MSW callbacks before jsdom teardown to stop ProgressEvent ReferenceError by @neubig in #16558
Maintenance
- chore(deps): bump @microlink/react-json-view from 1.31.20 to 1.31.25 by @dependabot[bot] in #16472
- chore(deps-dev): bump @eslint/eslintrc from 3.3.1 to 3.3.6 by @dependabot[bot] in #16469
- chore(deps-dev): bump the testing group with 2 updates by @dependabot[bot] in #16466
- chore(deps-dev): bump the react group with 2 updates by @dependabot[bot] in #16464
- ci(deps): bump docker/login-action from 4.5.2 to 4.6.0 in the actions group by @dependabot[bot] in #16461
- chore(deps): bump zustand from 5.0.12 to 5.0.14 by @dependabot[bot] in #16470
- chore(deps): bump i18next-http-backend from 4.0.0 to 4.0.1 in the i18next group by @dependabot[bot] in #16463
- chore(deps-dev): bump lint-staged from 16.4.0 to 17.3.0 by @dependabot[bot] in #16471
- chore(deps-dev): bump the eslint group across 1 directory with 6 updates by @dependabot[bot] in #16467
- refactor: replace positional createConversation params with an options object (#1587) by @Lothnic in #16500
- chore: enforce typed @openhands/typescript-client for agent-server API calls (no ad-hoc fetch) by @neubig in #16508
- chore: bump SDK deps (software-agent-sdk 1.42.1, automation 1.7.1, typescript-client 1.38.0) by @neubig in #16554
New Contributors
- @Lothnic made their first contribution in #16500
- @lokesh75-kank made their first contribution in #16324
- @lufen made their first contribution in #16093
- @opensource-joe made their first contribution in #16453
Full Changelog: v1.12.0...v1.13.0
This PR was generated with Release Please. See documentation.
v1.12.0
1.12.0 (2026-08-07)
What's Changed
Features
- feat: clarify free OpenHands model endpoints by @juanmichelini in #16281
Full Changelog: v1.11.0...v1.12.0
This PR was generated with Release Please. See documentation.
v1.11.0
1.11.0 (2026-08-07)
What's Changed
Features
- feat: show per-run LLM cost in the Activity Log and exports by @hieptl in #16351
- feat: reorder Customize navigation by @DevinVinson in #16358
- feat(settings): polish Agent Canvas version update UI by @FraterCCCLXIII in #16343
- feat(home): keep Automations pane visible when empty by @neubig in #16372
- feat: add a typed agent action for launching local or Cloud child conversations by @hieptl in #16380
- feat: add automation tag filter and recognition by @hieptl in #16388
- feat(conversations): add tag chips, overflow, and hovercard labels by @FraterCCCLXIII in #16346
Bug Fixes
- fix: ship multi-size app icons for Windows and macOS by @hieptl in #16352
- fix: rename desktop app to OpenHands Agent Canvas by @hieptl in #16353
- fix(metrics): fetch runtime conversation directly instead of removed cloud-proxy by @tofarr in #16392
New Contributors
- @DevinVinson made their first contribution in #16358
Full Changelog: v1.10.0...v1.11.0
This PR was generated with Release Please. See documentation.
v1.10.0
1.10.0 (2026-08-05)
What's Changed
Features
- feat: set Canvas default model to GLM 5.2 by @juanmichelini in #16146
- feat: activity log export by @ShashwatXD in #16234
- feat: ship the featured automations landing dashboard by @hieptl in #16266
- feat(skills): filter the skills page with a faceted rail by @sleeyax in #16124
- feat: add manifest-driven sub-pages to the automation interface by @hieptl in #16303
Bug Fixes
- fix: derive automation timeout cap from deployment by @neubig in #16233
- fix(backends): pin backend identity on sidebar conversation links by @rishavnaskar in #16243
- fix: use IPv4 loopback for local proxy targets by @wangmeiwen in #16290
- fix: resolve npm audit vulnerabilities by @hieptl in #16264
- fix: preserve MCP credentials during Canvas mutations by @neubig in #16144
Maintenance
- chore: ignore all of /.tmp/, not three of its subdirectories by @georgeglarson in #16272
- chore(deps-dev): bump eslint-import-resolver-typescript from 4.4.4 to 4.4.5 by @dependabot[bot] in #16256
- chore(deps): bump the react group across 1 directory with 3 updates by @dependabot[bot] in #16250
- chore(deps): bump the tanstack group with 2 updates by @dependabot[bot] in #16248
- chore(deps): bump the tailwind group across 1 directory with 4 updates by @dependabot[bot] in #16247
- chore(deps-dev): bump @types/node from 25.6.0 to 26.1.2 in the types group across 1 directory by @dependabot[bot] in #16255
- chore(deps-dev): bump the testing group across 1 directory with 6 updates by @dependabot[bot] in #16252
- ci(deps): bump the actions group with 3 updates by @dependabot[bot] in #16246
- chore(deps): bump monaco-editor from 0.55.1 to 0.56.0 in the monaco group across 1 directory by @dependabot[bot] in #16254
- chore(deps): bump the i18next group across 1 directory with 3 updates by @dependabot[bot] in #16249
- chore: bump @openhands/extensions to 0.16.0 by @hieptl in #16321
- ci: require frontend screenshot/video and checked human-tested box by @all-hands-bot in #16325
- chore: bump agent-server 1.40.1 and automation 1.6.0 by @hieptl in #16334
New Contributors
- @ShashwatXD made their first contribution in #16234
- @rishavnaskar made their first contribution in #16243
- @wangmeiwen made their first contribution in #16290
- @sleeyax made their first contribution in #16124
Full Changelog: v1.9.0...v1.10.0
This PR was generated with Release Please. See documentation.
v1.9.0
1.9.0 (2026-08-03)
What's Changed
Features
- feat: add a domain-neutral extension-manifest host by @hieptl in #16127
- feat(backends): compact Cloud vs Agent-server add-backend chooser by @FraterCCCLXIII in #16211
- feat: show live agent activity in chat by @roian6 in #16110
- feat: mock the setup contract from the published fixtures by @hieptl in #16221
- feat: drive the automation UI from the interface manifest by @hieptl in #16222
Bug Fixes
- fix(settings): use "Default" label for Agent Profile badge by @arush73 in #16206
- fix(chat): allow dismissing failed pending user messages by @syf2211 in #16142
- fix(automations): render CANCELLED and SKIPPED run statuses by @VascoSch92 in #16198
- fix(home): don't gate the composer on the seeded default profile's LLM ref by @VascoSch92 in #16200
- fix: route runtime services through server_info by @neubig in #16090
- fix: clean up dev services on SIGHUP by @georgeglarson in #16239
- fix: rename frontend conversation start telemetry by @malhotra5 in #16269
Documentation
- docs: fix runtime modes table in architecture doc by @hi-neason in #16163
- docs: refresh AGENTS.md guidance by @all-hands-bot in #16260
Maintenance
- refactor(types): use client error events by @neubig in #16214
- chore: bump @openhands/extensions to 0.13.0 by @hieptl in #16258
New Contributors
- @arush73 made their first contribution in #16206
- @FraterCCCLXIII made their first contribution in #16211
- @roian6 made their first contribution in #16110
- @syf2211 made their first contribution in #16142
- @hi-neason made their first contribution in #16163
Full Changelog: v1.8.0...v1.9.0
This PR was generated with Release Please. See documentation.
v1.8.0
1.8.0 (2026-07-30)
What's Changed
Features
Bug Fixes
- fix: exclude disabled skills from agent context by @d3f4w2 in #16168
- fix: regenerate favicon PNG/ICO from favicon.svg for consistent design by @neubig in #16202
- fix: identify PostHog users with Cloud identity by @neubig in #16087
Maintenance
New Contributors
Full Changelog: v1.7.2...v1.8.0
This PR was generated with Release Please. See documentation.
v1.7.2
1.7.2 (2026-07-30)
What's Changed
Bug Fixes
- fix(e2e): disable browser tools during mock LLM builds by @malhotra5 in #16188
Maintenance
Full Changelog: v1.7.1...v1.7.2
This PR was generated with Release Please. See documentation.