Back to guides
Coding agents·September 21, 2026·7 min read

OpenHands alternatives: choose by why you are leaving

The terminal CLI stopped, the project did not. Start from the friction you are actually leaving, then check which candidate still exists.

Last reviewed on .

Most searches for OpenHands alternatives are aimed at the wrong target: the OpenHands coding agent is alive, and its terminal CLI is the part that stopped. github.com/OpenHands/OpenHands is MIT-licensed, not archived, was pushed on September 21, 2026 and published v1.20.0 on September 17, 2026 (GitHub API, checked September 21, 2026). The separate OpenHands-CLI repository carries a banner near the top of its README reading "This project is no longer actively maintained" and recommends Agent Canvas instead. So the shortlist forks immediately: if you want the agent and its browser surface, staying is a live option; if what you actually used was a terminal agent, you need a different client.

One name check before the list, because it reverses the answer. AI4Bharat/OpenHands is a sign-language recognition toolkit, Apache-2.0, last pushed March 15, 2023, and its GitHub description reads "No longer actively maintained". Articles and AI answers saying OpenHands is abandoned are often quoting that repository. The coding agent is OpenHands/OpenHands, MIT, and it began life as OpenDevin — OpenDevin/OpenDevin still redirects there.

Start from the reason you are leaving

OpenHands' pricing page on September 21, 2026 lists three rows: Open Source (Local) at Free, with Max Daily Conversations "Unlimited" and 1 user; Individual (SaaS) at Free, with Max Daily Conversations 10 and 1 user; and Enterprise at Custom pricing. That page publishes no Enterprise number, and this page does not estimate one. Most exits trace to one of five specific frictions rather than to the agent itself.

Why you are leavingWhat actually changedWhere that points
Your daily driver was the terminal CLIThe CLI repo's README says it is no longer actively maintained; its last release is 1.16.0 (May 8, 2026) while openhands-sdk and openhands-agent-server shipped 1.49.2 on September 17, 2026Agent Canvas if a browser surface is acceptable; otherwise OpenCode, Claude Code, Codex CLI, Crush, Cline's CLI or mini-swe-agent
You hit the Cloud daily capThe Individual (SaaS) plan caps Max Daily Conversations at 10 for 1 userThe same OpenHands, self-hosted on the Open Source plan, whose row reads "Unlimited"; or any client with no per-day conversation cap
The sandbox turned into a second billOpenHands' own Modal recipe documents about $102/month always-on, or about $25/month scaled to zero at 8h/day on workdaysA terminal agent that runs in your shell with no separate agent-server process to keep alive
You need SSO, RBAC or org budgetsThose sit in the Enterprise column, and organisation budgets need Admin or Owner permissionsNothing on this list solves that for free either; switching clients is not an SSO strategy
Your own key loses the CriticThe critic is auto-configured only when the base URL matches llm-proxy.*.all-hands.dev, and the critic model is hosted by that providerIt does not travel with your key; the SDK's own critic guide shows pointing a critic at a server URL of your own, so treat it as "not automatic" rather than impossible

Status of every candidate, re-checked rather than remembered

Three names on the usual listicle moved or died during 2026, and an older roundup will send you somewhere that no longer exists. Every row below was read from the GitHub API on September 21, 2026.

ClientRepository and licenceLatest signalWhat to know before committing
OpenHands (staying)OpenHands/OpenHands, MITv1.20.0, September 17, 2026The browser surface is now Agent Canvas; the execution environment is called a sandbox, and OpenHands' configuration reference calls the RUNTIME environment variable legacy while noting that some deployments still use it to pick a sandbox provider
OpenCodeanomalyco/opencode, MITv1.18.31 (September 14, 2026); pushed September 21, 2026No longer "SST's opencode" — sst/opencode redirects and opencode.ai's footer reads "© Anomaly"; no dated announcement was found
Clinecline/cline, Apache-2.0v4.1.19 (September 17, 2026), plus a separate desktop track at desktop-v0.0.32 (September 18, 2026)Its own description now reads "SDK, IDE extension, or CLI assistant", so it is no longer only a VS Code extension
gooseaaif-goose/goose, Apache-2.0v1.51.0, September 17, 2026Donated by Block to the Agentic AI Foundation at the Linux Foundation, announced April 7, 2026; docs moved to goose-docs.ai
Kilo CodeKilo-Org/kilocode, MITv7.7.6, September 21, 2026Anaconda announced the acquisition on July 15, 2026 and kilocode.ai now redirects to kilo.ai; that post refers to Kilo's "open source and source-available codebase"
Codex CLIopenai/codex, Apache-2.0The newest release tag is an alpha: rust-v0.157.0-alpha.1 (September 21, 2026)Releases land as alphas several times a day, so pin a version deliberately if you standardise a team on it
Claude Codeanthropics/claude-code, license nullPushed September 21, 2026Proprietary, not open source; no plan or subscription price was verified for this page
Crushcharmbracelet/crush, FSL-1.1-MITv0.96.1, September 21, 2026Functional Source License 1.1 with an MIT future licence, which GitHub reports as NOASSERTION — do not call it OSI open source
AiderAider-AI/aider, Apache-2.0Last commit May 22, 2026; aider-chat 0.86.2 from February 12, 2026Not archived, but the cadence is maintenance-shaped; no maintainer statement was found either way
mini-swe-agentSWE-agent/mini-swe-agent, MITPushed September 14, 2026Deliberately minimal; the repo's own benchmark claim was not independently checked here
Roo CodeRooCodeInc/Roo-Code, Apache-2.0, archivedLast release v3.54.0, May 15, 2026Not a destination. Its own documentation says "The Roo Code Extension was shut down on May 15th"; listed only so an older roundup does not send you there

A free client is not a zero-cost client

Most rows above carry an OSI licence and no licence fee; Claude Code is proprietary and Crush is source-available under FSL-1.1-MIT, and no subscription price was fetched for any client on this page. None of that is the number you budget anyway. Two lines are: the machine the agent and its sandbox run on, and the tokens. The first is where OpenHands differs structurally from a terminal agent — it wants a backend. Its own VM guide says "Ubuntu 24.04 LTS with 2 vCPU and 4 GB RAM is enough for a single user", and the Modal recipe prices that same shape at about $3.40/day. Those are the host's charges for that documented recipe, not OpenHands' charge and not a figure that transfers to another host.

The token line follows you to every client, which is why it is worth sizing before choosing. Assume one busy agent session that sends 300,000 uncached input tokens and receives 20,000 output tokens — OpenHands' own model documentation warns that it "will issue many prompts to the LLM you configure". Rates are live Kunavo catalog prices per million tokens.

ModelInput / output per 1MEstimate for one assumed session
Claude Haiku 4.5$0.40 / $2.00$0.160
Gemini 3.8 Flash$0.525 / $2.625$0.210
GPT-5.6 Terra$0.70 / $4.20$0.294
Claude Sonnet 4.6$1.20 / $6.00$0.480
Claude Opus 5$2.00 / $10.00$0.800

This is illustrative token arithmetic, not a measured task cost and not a bill ceiling: your session shape decides the answer, and a cheap model that needs three attempts can cost more than one that needs a single pass. Cheapest listed rate and lowest cost to finish the task are different questions. Kunavo's catalog amount is a billing floor rather than a cap — when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges and external tools sit outside this example, and the minimum top-up is $10 in prepaid credit, a funding minimum rather than a task fee or a subscription. See billing details.

What migrates, what does not, and how to roll back

Repository context is the portable half. OpenHands reads AGENTS.md at the repository root, also recognises CLAUDE.md and GEMINI.md, and its skills documentation recommends .agents/skills/<name>/SKILL.md precisely because that location "follows the Agent Skills standard and makes skills portable across compatible agent tools". MCP servers carry over in shape too: OpenHands' MCP settings page supports SSE, Streamable HTTP and stdio — it links stdio and Streamable HTTP to the 2025-06-18 MCP specification and SSE to the older 2024-11-05 one, so do not assume the SSE half is current everywhere — and its configuration lives in the UI or under a [mcp] section of config.toml.

Hooks are less stranded than they look. OpenHands' hooks documentation says the .openhands/hooks.json format "is compatible with Claude Code hooks, so you can reuse hook scripts across both tools" — a claim about those two tools, not about every client on this list. What does not travel is the rest of the OpenHands-specific half: .openhands/setup.sh is OpenHands' own repository-setup contract; conversation history exports as a Markdown or HTML file for reading, and OpenHands' own documentation describes no import path for it; and the openhands/-prefixed LLM key only talks to that vendor's proxy.

Expect the endpoint shape to change as well. OpenHands wants a provider-prefixed Custom Model behind the Advanced toggle in Settings > LLM, and for an OpenAI-compatible server its model-configuration page prescribes openai/<served-model-id> read from the server's GET /v1/models, with a base URL that includes the version path. OpenCode expresses the same key as a provider block instead, so the migration is a rewrite rather than a copy:

opencode.json
{
  "provider": {
    "kunavo": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://api.kunavo.com/v1",
        "apiKey": "{env:KUNAVO_API_KEY}"
      },
      "models": { "claude-sonnet-4-6": { "name": "Claude Sonnet 4.6" } }
    }
  }
}

Kunavo serves no embedding model, no text-to-speech model and no speech-to-text model. That matters for one knob: OpenHands lists LLM_EMBEDDING_MODEL among the settings its UI cannot set, to be supplied as an environment variable or in config.toml — point it at a provider that serves that step, or leave it unset.

A trial that produces an answer in a day: keep OpenHands installed and its profile saved, run one bounded task from the same starting commit in both clients, then compare the accepted diff, the review effort and the usage your provider account actually recorded. Rolling back means keeping ~/.openhands/settings.json and any config.toml untouched while you test — worth doing deliberately, because OpenHands' own installation page warns that upgrading from a CLI version before release 1.0.0 requires redoing the settings setup since the configuration format changed. Note also that OpenHands' LLM settings page says you can save up to 10 LLM profiles per account, so prune before you add a test one.

Set up the next client and check the first charge

Kunavo publishes configuration references for several of the clients above, including OpenHands, OpenCode and Cline. Those are published setup guides, not compatibility tests: none of these clients has been runtime-tested here against Kunavo's endpoint, and every behavioural claim on this page was read from each project's own documentation and repository. Keep a working route available while you switch, run one scoped task, then read the charge your account recorded for it. Create a Kunavo account when you are ready to fund a key.

If your decision is narrower than a full switch, OpenHands vs OpenCode and OpenHands vs Claude Code compare two of these head to head, and OpenAI-compatible API covers the endpoint shape the OpenAI-compatible clients on this list expect — Claude Code is the exception, since it reads an origin-style ANTHROPIC_BASE_URL and speaks the Anthropic shape instead.

FAQ

Is OpenHands still maintained?

The coding agent is. github.com/OpenHands/OpenHands is MIT-licensed, not archived, was pushed on September 21, 2026 and published v1.20.0 on September 17, 2026. What stopped is the separate terminal CLI: the README of github.com/OpenHands/OpenHands-CLI states “This project is no longer actively maintained” and points readers to Agent Canvas, its last release is 1.16.0 from May 8, 2026, and the PyPI package openhands is stuck there while openhands-sdk and openhands-agent-server shipped 1.49.2 on September 17, 2026. Two other things are worth separating from that. The documentation site still publishes CLI installation instructions with no deprecation banner, so the docs and the repository disagree. And AI4Bharat/OpenHands is a completely different project — a sign-language recognition toolkit, Apache-2.0, last pushed March 15, 2023 — whose own GitHub description says it is no longer actively maintained. Statements that OpenHands is abandoned often trace back to that repository.

What is the best open-source alternative to OpenHands?

There is no single winner, and the licence column decides more than the feature list. Checked on September 21, 2026: OpenCode (anomalyco/opencode, MIT) and Cline (cline/cline, Apache-2.0) are general-purpose agents that both shipped releases in September 2026, goose (aaif-goose/goose, Apache-2.0) is now governed by the Agentic AI Foundation at the Linux Foundation, Kilo Code (Kilo-Org/kilocode, MIT) continues under Anaconda after a July 15, 2026 acquisition announcement, and mini-swe-agent (SWE-agent/mini-swe-agent, MIT) is the minimal option. Two names that get listed as open source are not: Claude Code is proprietary, with license null on the GitHub API, and Crush ships under the Functional Source License 1.1 with an MIT future licence, which GitHub reports as NOASSERTION. Roo Code should not be on anyone's shortlist — its repository is archived and its own documentation says the extension was shut down on May 15, 2026.

Is OpenHands free, and does leaving it save money?

OpenHands' pricing page on September 21, 2026 lists Open Source (Local) at Free, Individual (SaaS) at Free, and Enterprise at Custom pricing. The plan fee is not the bill. Model tokens are charged by whichever provider or gateway your key points at, and OpenHands' own documentation warns that it “will issue many prompts to the LLM you configure” and tells users to set spending limits. The execution sandbox is a second line: OpenHands' own Modal recipe is documented at about $102 per month for an always-on 2 vCPU / 4 GB container, or about $25 per month scaled to zero at 8 hours a day on workdays, and the self-hosted VM page says any always-on Linux or macOS host will do, with Ubuntu 24.04 LTS at 2 vCPU and 4 GB RAM “enough for a single user”. Switching to a terminal agent that runs in your own shell removes that second line; it does not reduce token spend by itself. A $20-per-month OpenHands Cloud tier was announced in a September 18, 2025 blog post and does not appear on the current pricing page.

Can I keep my API key when I switch away from OpenHands?

It depends which key. A provider or OpenAI-compatible gateway key is just a credential and moves to any client that accepts a base URL and a key. The OpenHands LLM key does not: its documentation says the openhands/ prefix routes to llm-proxy.app.all-hands.dev, that it is a different credential from the OpenHands Cloud API key, and that firewalls must allow the all-hands.dev domain. That key is worth nothing in another client. Expect the model-id string to change shape too. OpenHands documents openai/<served-model-id> for an OpenAI-compatible server, with the id taken from that server's GET /v1/models and a base URL that includes the version path; opencode instead wants a provider block in opencode.json using the @ai-sdk/openai-compatible package; and Claude Code reads an origin-style ANTHROPIC_BASE_URL with no /v1. Copying one form into another client is the most common first-run failure.

Does my conversation history move to another agent?

Treat it as lost. Agent Canvas can download a conversation as a self-contained conversation-<id>.md or conversation-<id>.html file generated locally in your browser, which is an export for reading, archiving or review. No import format is documented, and no importer for it was found in any alternative checked here. Local CLI history sits in ~/.openhands/conversations and settings in ~/.openhands/settings.json, and the archived state of a conversation is stored per backend in browser local storage and does not sync across browsers or machines. Repository-level context is the part that does travel: OpenHands reads AGENTS.md at the repository root, also recognises CLAUDE.md and GEMINI.md, and recommends .agents/skills/<name>/SKILL.md because that location follows the Agent Skills standard and makes skills portable across compatible agent tools.

Why does my gateway work in another client but fail to save in OpenHands?

Two documented gates explain most of it. First, saving an LLM profile is validated against the backend before it is persisted, and the documentation says that if the API key is rejected or the model is unavailable the save is blocked and the backend error is shown; older backends that return 404 for the validation endpoint skip the check. Second, the base URL must be reachable from the backend, not only from your browser — a backend running in Docker cannot use 127.0.0.1 to reach a model server on the host. A third, quieter limit is the cap of 10 saved LLM profiles per account. Whether any specific gateway passes that save-time validation probe was not tested for this page.

Repository status, licences and release feeds for all eleven clients read from the GitHub API on September 21, 2026, and release tags move fast enough that Codex and Crush may already be a version ahead; OpenHands plan rows, CLI status, sandbox costs and LLM-profile behaviour read from openhands.dev and docs.openhands.dev the same day; PyPI versions read from pypi.org; the goose donation and the Roo Code shutdown read from their own announcements. Kunavo token rates come from the live catalog, and the dollar example is illustrative token arithmetic rather than a measured task cost.