Back to guides
Pricing·September 21, 2026·9 min read

OpenHands self-hosted cost: API, sandboxes and cloud plans

The free client is real; the zero bill is not — three separate lines, priced against OpenHands' own published benchmark.

Last reviewed on .

A self-hosted OpenHands costs $0 for the software and nothing for a licence — it is MIT-licensed and the repository is active, not archived — so the real self-hosted cost is three separate bills: model tokens, the machine running the sandbox, and an optional search key. OpenHands publishes no price for any of the three. What it does publish, unusually for a coding agent, is its own benchmark repository recording dollars and seconds per task, and that is the anchor this page uses instead of guessing at token counts.

Three disambiguations first, because each one sends a cost question to the wrong page. AI4Bharat ships a different open-source project also called OpenHands — a sign-language-recognition toolkit whose repository banner says it is no longer actively maintained — and nothing from its documentation applies here. This product was OpenDevin until August 2024 and the company was All Hands AI, so any OpenDevin-era config is superseded V0. And while the marketing site is openhands.dev, the running services are still on all-hands.dev: the Cloud app is app.all-hands.dev, and the provider documentation says that if your network has firewall restrictions you should allow the all-hands.dev domain, because the SDK connects to llm-proxy.app.all-hands.dev.

OpenHands pricing: what the company itself charges

TierPublished priceMax daily conversationsWho it is for
Open Source (local)FreeUnlimited1 user, MIT, runs on your machine
Individual (Cloud SaaS)Free101 user, hosted, plus API, Jira and Slack integrations
Enterprise (SaaS or self-hosted)Custom pricingUnlimitedUnlimited users, private VPC and BYOK options, SSO

Read from openhands.dev/pricing on September 21, 2026. There is no paid individual subscription, and every tier's feature row offers bring-your-own-key: the FAQ there reads "Yes! OpenHands Open Source and OpenHands Cloud plans offer support to bring your own LLM keys." Two anchors that circulate widely off-site are not on any first-party page we could find that day — a paid Growth plan, and $20 in free credits for new Cloud users. Treat both as stale until OpenHands republishes them.

One first-party number pulls against the word Free, and it is the honest floor: the API-keys documentation states "You must purchase at least $10 in OpenHands Cloud credits before generating an OpenHands LLM Key." Both things are true. The client and the tier are free; their own model provider starts at a $10 prepaid purchase. Bringing your own key skips that floor entirely and moves the whole bill to your provider.

The three bills behind "self-hosted"

OpenHands V1 splits into three components that fail and bill independently, per its architecture page: Agent Canvas, the browser client, which that page says explicitly "is not an agent runtime or sandbox"; Agent Server, which runs conversations and tools; and the workspace or sandbox, described only as "Deployment-specific". That split is why one monthly figure never answers this question.

Cost lineWhat sets itPublished price
OpenHands softwareMIT licence$0 — the GitHub API record read MIT, not archived, and pushed to on September 21, 2026
The machineYour own cloud providerOpenHands publishes none; a matching VM lists at $24.00/month (see below)
Model tokensYour endpoint's ratesYour provider's bill; OpenHands publishes no tokens-per-task figure
Web search (optional)Your own Tavily keyTavily lists a $0 tier with 1,000 API credits/month, then $0.008/credit
Hosted sandboxesOpenHands remote runtime APINo rate published anywhere we could find; its evaluation harness lists it for large-scale benchmark runs

Do not read a single "current version" into any of this either. Four surfaces disagree, and each number belongs to one of them: GitHub releases stand at v1.20.0 (September 17, 2026), PyPI's openhands CLI package at 1.16.0, uploaded May 8, 2026, PyPI's openhands-sdk at 1.49.2, uploaded September 17, 2026, and the local-setup docs pin their own Docker image tags. Pin whichever surface you actually deploy.

The machine line, priced against OpenHands' own sizing

OpenHands is unusually specific here: its VM backend guide says "Ubuntu 24.04 LTS with 2 vCPU and 4 GB RAM is enough for a single user." That class has a published price at two major providers — a DigitalOcean Basic Droplet with 4 GiB memory, 2 vCPU, 80 GiB SSD and 4,000 GiB transfer at $24.00 per month, $0.03571 per hour (DigitalOcean), and an AWS Lightsail Linux bundle with 4 GB memory, 2 vCPUs, 80 GB SSD and 4 TB transfer at $24 per month (Lightsail). These are third-party prices for a machine you choose, not OpenHands prices.

Put that hourly rate next to OpenHands' own published average runtimes and the shape of the bill becomes obvious. The figures below are an estimate: they assume one conversation at a time on one always-on VM, and they ignore image pulls, idle time between turns, storage and transfer.

OpenHands Index runPublished average runtimeMachine time at $0.03571/hrPublished model cost per instance
claude-opus-4-8, SWE-bench159 s$0.0016$0.75
MiniMax-M3, SWE-bench1,078 s$0.0107$0.17
MiniMax-M3, commit02,203 s$0.0219$0.62
claude-opus-4-8, commit0941 s$0.0093$7.83

Tokens outweigh compute on every row, but not by a constant factor: the ratio runs from about 16× on the MiniMax-M3 SWE-bench row to roughly 475× on claude-opus-4-8's, because the cheap model is also the slow one. The machine is not free, though — it is a fixed monthly floor that charges whether or not you run anything, which is the opposite billing shape from tokens. Two consequences worth designing around. First, the VM only earns its keep above a certain volume: at the catalog re-pricing further down, $24 of machine equals about 64 SWE-bench-sized tasks' worth of model spend, so below that the fixed cost dominates. Second, throughput is capped harder than the price suggests — OpenHands' Docker sandbox page warns that host-network mode binds every sandbox to the same fixed host ports, so "Only one sandbox can run at a time; concurrent conversations will collide on those ports." Note also that its user-facing term is now sandbox while the configuration knob is still RUNTIME — the sandboxes overview lists docker (default), process and remote as the legacy values — so search for both words.

Running the model on that machine too is a different purchase. OpenHands' local-LLM page states its hardware requirement for one specific model — Qwen3.6-35B-A3B, the model that page recommends for coding — as "a recent GPU with at least 24GB of VRAM for quantized variants, or multiple GPUs for full precision and larger context windows, or a Mac with Apple Silicon with at least 64GB of unified memory for quantized variants", plus OLLAMA_CONTEXT_LENGTH set to at least 22,000 on Ollama. A smaller local model may well need less; OpenHands does not publish a floor for local models in general. Either way it is hardware capital, not a $24 droplet.

OpenHands API cost: the only first-party per-task dollars

No OpenHands page publishes tokens per task, per conversation, or an average context size — so any token-count example is an assumption. Its Index results repository publishes dollars and seconds instead, which is stronger. We fetched the 500-row SWE-bench sidecars for four models and recomputed them; the means and resolve rates reproduce the published figures, which is what validates reading cost_per_instance as the mean API cost per benchmark instance.

Model (SWE-bench, 500 instances)Mean costMedianWorst single instanceResolvedAvg runtime
MiniMax-M3 (v1.24.0)$0.1535$0.1125$0.8076.4%1,078 s
Kimi-K2.6 (v1.18.1)$0.6625$0.4750$4.8774.6%1,077 s
claude-opus-4-8 (v1.24.0)$0.7418$0.3877$8.3583.8%159 s
GPT-5.5 (v1.18.1)$1.5083$1.3597$4.8978.2%294 s

The distribution matters more than the mean. On claude-opus-4-8 the median instance cost $0.3877 against a mean of $0.7418, and the worst single instance cost $8.35 — about eleven times the mean. Budget from the tail, not the average. Three caveats on the whole table: the repository was last pushed July 8, 2026, so these runs are roughly two and a half months old; each row ran at its own recorded agent version, so rows are not a controlled head-to-head; and these are benchmark instances, not your repository.

Cheapest listed price and lowest cost to finish the task are different claims, and this table separates them. MiniMax-M3 has the lowest per-token rate in the group and the lowest mean instance cost, at roughly a fifth of claude-opus-4-8 — but it resolved 76.4 percent against 83.8 percent, so a share of those cheap attempts bought nothing and has to be re-run or finished by hand. GPT-5.5 is the other direction: twice the mean cost of claude-opus-4-8 for 5.6 fewer points resolved. The rule that survives is unglamorous — shortlist the least expensive model that finishes your work at a review effort you accept, then read the charge your own account recorded for one bounded task.

The ceiling is on the commit0 benchmark, where a single task runs into single-digit dollars — and where the machine column shows how little the runtime spread costs when only one conversation runs at a time.

Model (commit0)Published cost per instancePublished average runtimeMachine time at $0.03571/hr
MiniMax-M3$0.622,203 s$0.0219
Kimi-K2.6$1.521,012 s$0.0100
GLM-5.1$5.312,498 s$0.0248
GPT-5.5$5.561,029 s$0.0102
claude-opus-4-8$7.83941 s$0.0093
Gemini-3.5-Flash$7.911,760 s$0.0175

OpenHands is candid about why: its LLM page says it "requires a powerful model to work" and warns that it "will issue many prompts to the LLM you configure". The control it gives you is a hard stop, not a forecast: Settings > Application has a Maximum Budget Per Conversation in USD, and that page says OpenHands "will stop the conversation once the budget is reached, but you can choose to continue the conversation with a prompt". So it is a per-conversation stop you can override, not a monthly ceiling.

Re-pricing that benchmark at catalog rates

Here is the one place the published figures transfer without a token guess. OpenHands' metadata.json for claude-opus-4-8 records the exact prices its run was costed at — and Kunavo lists that same model id.

Token class (per 1M)OpenHands Index metadataKunavo catalogRatio
Input$5.00$2.5050%
Output$25.00$12.5050%
Cache read$0.50$0.2550%
Cache write$6.25$3.12550%

Because all four classes land on the same factor today, the published run re-prices by that factor without needing the token counts nobody publishes. The mean SWE-bench instance moves from $0.7418 to $0.3709, the median from $0.3877 to $0.1938, and the worst instance from $8.35 to $4.17. This is a re-pricing of someone else's benchmark, not a measured task cost on your repository — the agent version, the prompt mix and the cache behaviour would all have to match.

For a conversation shape instead of a benchmark, here is plain token arithmetic. Assumption, ours and not OpenHands': one conversation sends 800k input tokens across its turns as context is re-sent, and receives 30k output tokens, with no cache hits counted. Rates are live Kunavo catalog prices.

ModelInput / output per 1MEstimate for that conversation
Claude Haiku 4.5$0.40 / $2.00$0.380
Gemini 3.8 Flash$0.525 / $2.625$0.499
GPT-5.6 Terra$0.70 / $4.20$0.686
Claude Sonnet 4.6$1.20 / $6.00$1.140
Claude Opus 5$2.00 / $10.00$1.900
Claude Opus 4.8$2.50 / $12.50$2.375

Illustrative token arithmetic, not a measured task cost and not a bill ceiling — scale it by your own conversations per day before treating it as a budget. 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. Minimum top-up is $10 in prepaid credit, which is a funding minimum rather than a subscription or a task fee — see billing details.

Best API for OpenHands: which route wins when

RouteWins whenWhat you give up
Direct vendor APIOne vendor's flagship all day, with its own caching and batch termsA second vendor means a second account and a second balance
OpenAI-compatible gatewayYou switch models per task and want one key and one balanceThree fields behind the Advanced toggle, and a URL shape you copy from whichever doc matches your prefix
OpenHands' own providerYou want the experimental critic configured for youA $10 minimum credit purchase before the LLM key exists
Subscription (ACP agent)Flat-rate heavy daily use suits you better than metered tokensAn LLM profile does not redirect it, so your API key sees no traffic
Local modelPrivate or small work, no per-request charge24 GB VRAM or a 64 GB Apple Silicon Mac for the model OpenHands' local-LLM page recommends

One caveat before you pick the "at cost" route on price alone: OpenHands' own two pages describe different catalogues. Its LLM overview recommends claude-opus-4-8 (Index average 71.9), GPT-5.5 (65.9) and Gemini-3.5-Flash (62.6), while the provider price table on the sibling page lists 15 prior-generation ids — the newest per vendor being claude-sonnet-4-5-20250929 and claude-opus-4-1-20250805, gpt-5-codex and gpt-5-2025-08-07, o3, and gemini-3-pro-preview — and contains none of those three. Both were read on September 21, 2026. Whether the table is stale or the catalogue genuinely is that old, we could not establish, so check what the provider actually serves at checkout before budgeting against its footnote that "Prices listed reflect provider rates with no markup".

Four boundaries decide which of those you are actually on, and every one of them is a cost-attribution fork. The critic is gated. OpenHands' critic documentation says the experimental critic feature is "automatically enabled" for OpenHands LLM Provider users and is "free during the public beta phase" for them; it is a second endpoint, so a third-party agent key does not forbid one, it simply means none is configured for you. Its iterative refinement is disabled by default, and when you enable it the Max Iterations setting defaults to 3 per user turn and accepts 1–10 — a real multiplier, on that route only. Provider Connections invert the usual plan gate: the model-configuration page says the reusable key-and-base-URL panel is "available on local agent-server backends" and "hidden when using an OpenHands Cloud backend", so self-hosting gets that feature and Cloud does not. Profiles are capped: the LLM settings page says "You can save up to 10 LLM profiles per account." And a saved profile is validated before it persists — the profiles page says a rejected key or unavailable model blocks the save and shows the backend error, though it also notes older backends that lack the validation endpoint skip the check and save anyway.

Kunavo serves no embedding model, no text-to-speech model and no speech-to-text model, so an endpoint here answers chat completions and nothing else — which matters because OpenHands names LLM_EMBEDDING_MODEL among its env-only extras, and that setting has no counterpart to point at.

On the endpoint itself, the model prefix and the base URL are one decision, and OpenHands documents them by example rather than by rule. Its model-configuration page tells you to enter openai/<served-model-id> for an OpenAI-compatible server and shows a base URL ending in /v1; its LiteLLM proxy page tells you to enter litellm_proxy/<model-name> and shows a bare proxy origin with no path. Neither page states what happens if you pair one prefix with the other's URL shape, so copy the shape from the page that matches your prefix and check the response rather than assuming. Separately, the OpenHands provider page says the openhands/ prefix "tells the SDK to automatically route requests to the OpenHands LLM proxy—no need to manually set a base URL"; that sentence is about the SDK, not about the Agent Canvas settings panel. Full field-by-field configuration lives on the OpenHands integration page; create a Kunavo account when you are ready to fund a key, then run one bounded task and read the charge your account recorded for it.

Kunavo has not runtime-tested OpenHands against its endpoint — no conversation, no streamed turn, no tool round-trip, no pinned client version. Everything above was read from OpenHands' own documentation, repositories and package indexes. Keep a working route available while you try it. Comparing clients rather than providers? OpenHands vs Claude Code covers the workflow and sandboxing split, OpenHands vs OpenCode the terminal alternative, and AI cost optimization the method for measuring any of this on your own repository.

FAQ

How much does OpenHands cost?

The OpenHands pricing page lists exactly three tiers and only one of them carries a figure: Open Source is Free, Individual (the hosted Cloud plan) is Free, and Enterprise is custom pricing. There is no paid individual subscription. The published difference between the two free tiers is the cap: the compare-plans table gives Max Daily Conversations as Unlimited for Open Source, 10 for Individual and Unlimited for Enterprise. The word Free covers the client and the tier, not the model calls. If you want OpenHands' own LLM provider rather than your own key, its documentation states you must purchase at least $10 in OpenHands Cloud credits before you can generate an OpenHands LLM Key. All checked September 21, 2026.

What does a self-hosted OpenHands actually cost per month?

OpenHands publishes no price for self-hosting, so the bill is three lines you assemble yourself. The software is $0 and MIT-licensed. The machine is a third-party cloud bill at whatever size you pick: OpenHands' own VM guide says Ubuntu 24.04 LTS with 2 vCPU and 4 GB RAM is enough for a single user, and that class lists at $24.00 per month on a DigitalOcean Basic Droplet and $24 per month on an AWS Lightsail Linux bundle, before tax and before storage or transfer overage. Model tokens are the third line and usually the largest. An optional fourth line appears only if you enable the web-search feature, which requires your own Tavily key; Tavily publishes a free tier at $0 with 1,000 API credits per month and pay-as-you-go at $0.008 per credit. Prices checked September 21, 2026.

What is the cheapest API for OpenHands?

Cheapest per token and cheapest to finish the task are different questions, and OpenHands' own benchmark repository separates them. On SWE-bench, MiniMax-M3 averaged $0.15 per instance against claude-opus-4-8's $0.74 — roughly a fifth of the cost — while resolving 76.4 percent against 83.8 percent, and taking a published average runtime of 1,078 seconds against 159. So the cheap model costs less per attempt, finishes fewer of them, and occupies the machine roughly seven times longer. On a self-hosted single VM that runtime difference is worth about a cent at DigitalOcean's published hourly rate, which is noise next to the token gap — but it becomes the binding constraint the moment a queue forms, because OpenHands' Docker sandbox in host-network mode runs one sandbox at a time. Pick the least expensive model that finishes your work with review effort you accept, then check the charge your own account recorded.

What is the best API for OpenHands?

It depends on which of OpenHands' billing routes you are actually on, because the same install can bill four different ways. A direct vendor API wins when you use one vendor's flagship all day and want its own caching and batch terms. An OpenAI-compatible gateway wins when you switch models per task and want one key and one balance: OpenHands reaches it from Settings > LLM > Advanced, whose three fields are Custom Model, Base URL and API Key, and the prefix you type decides which documented example to copy the URL shape from — the model-configuration page pairs openai/ with a base URL ending in /v1, while the LiteLLM proxy page pairs litellm_proxy/ with a bare proxy origin. OpenHands' own provider wins if you want its experimental critic, which its critic documentation says is enabled automatically for OpenHands LLM Provider users. A subscription wins for flat-rate heavy daily use, but note that OpenHands' model-configuration page says ACP agents such as Claude Code, Codex and Gemini CLI manage their own model access and tells you to use ACP Agents instead of creating an LLM profile for them. A local model wins for private work, at the cost of hardware: for Qwen3.6-35B-A3B, the model OpenHands' local-LLM page recommends, that page asks for a GPU with at least 24 GB of VRAM for quantized variants, or an Apple Silicon Mac with at least 64 GB of unified memory.

Why does my OpenHands API key show no traffic?

Check which agent is running before you debug the key. OpenHands' model-configuration page states that ACP agents such as Claude Code, Codex and Gemini CLI manage their own model access, and tells you to use ACP Agents instead of creating an LLM profile for those agents; its ACP Agents page adds that the Agent Server spawns the agent's own CLI as a subprocess and that a subscription login takes priority over an API key set in the environment — so your key can legitimately see nothing. The SDK adds a second route with the same symptom: its LLM Subscriptions guide documents LLM.subscription_login for using a ChatGPT Plus or Pro subscription to reach Codex models without consuming API credits. Two other checks: OpenHands Cloud API Keys and OpenHands LLM API Keys are different credentials for different surfaces, and the provider page shows the wrong one producing 'Unable to find token in cache or LiteLLM_VerificationTokenTable'; and the model-configuration page tells you to make sure the base URL is reachable from the backend, not from your browser. Documentation checked September 21, 2026.

Does OpenHands Cloud charge for the sandbox as well as the model?

Not something this page can answer, because no first-party page states it either way. The pricing page meters conversations, not compute, and publishes a cap of 10 daily conversations on the Individual tier. The remote runtime API that OpenHands' own evaluation harness points at — runtime.eval.all-hands.dev — publishes no per-hour rate, and that harness lists it for large-scale evaluations and benchmarking runs rather than for the local Docker workspace it contrasts it with. Do not assume the sandbox is free on Cloud and do not assume it is billed; treat compute as unpriced on that route and price it explicitly on the self-hosted route, where it is your own cloud provider's bill for a machine you chose.

Re-checked against their own sources on September 21, 2026: openhands.dev/pricing, the GitHub API record for OpenHands/OpenHands and its three latest releases, PyPI openhands and openhands-sdk, the API-keys and LLM-overview documentation, the OpenHands LLM provider price table, the VM sizing guide, DigitalOcean's droplet pricing, and the Index results repository — including the 500-row SWE-bench sidecars for four models, whose means and resolve rates were recomputed here. The critic gating, Provider Connections, the profile cap and pre-save validation, the ACP carve-out, the sandbox, budget and local-LLM pages, and the Tavily and Lightsail prices were each re-read the same day against the pages named inline. Kunavo token rates read from the live catalog; every dollar example is illustrative arithmetic rather than a measured task cost.