unbiased ai

OpenHands, lending a hand to Pareto

OpenHands opens files, runs commands and edits code until the task is done, and it will do that for any model LiteLLM can reach. Give it a good one. Set the model to openai/pareto and the base URL to Unbiased, and every step goes to Pareto, which selects frontier and open models for each request and blends their outputs into one answer. The agent, its tools and its settings carry on as before.

Tested live with OpenHands CLI 1.16.050M tokens a week

A demonstration of OpenHands on Pareto, recreated from a real run. Not a screenshot.

Set it up in three variables

OpenHands talks to models through LiteLLM, so Unbiased goes in as an OpenAI-compatible endpoint. In the CLI, export three variables and pass --override-with-envs. In the GUI, the same three values go in the LLM settings.

  1. Get an Unbiased API key

    Choose a plan, then create a key in the Unbiased platform. New accounts are reviewed and approved by a person before the key works.

  2. Install the OpenHands CLI

    The docs recommend uv tool install openhands --python 3.12. The package wants Python 3.12 exactly, so let uv fetch it if your system Python is newer.

  3. Name the model openai/pareto

    Set LLM_MODEL to openai/pareto. The openai/ prefix tells LiteLLM to speak the OpenAI format; a bare pareto won’t do. Set LLM_BASE_URL to https://api.unbiased.ai/v1, with the /v1, and put your key in LLM_API_KEY.

  4. Run with --override-with-envs

    OpenHands reads the three variables only when you pass --override-with-envs, and it does not save them. Add --headless -t for a one-off task, or leave them off for the interactive terminal.

  5. Or use the GUI

    Open Settings, then the LLM tab, and turn on Advanced. Set Custom Model to openai/pareto, Base URL to https://api.unbiased.ai/v1 and API Key to your key, then save. Type the model name yourself: Unbiased does not publish a model list.

Tested on October 20, 2026OpenHands CLI 1.16.0 on Pareto (pareto). It found the off-by-one in a failing Python test, edited the file and reran the test to green. Run record.
Shell
export LLM_MODEL=openai/pareto
export LLM_BASE_URL=https://api.unbiased.ai/v1
export LLM_API_KEY=your-unbiased-api-key
# headless runs approve every action: use a directory you trust
openhands --headless --override-with-envs -t "Fix the failing test in test_chunk.py"
GUI: Settings > LLM > Advanced
Custom Model: openai/pareto
Base URL:     https://api.unbiased.ai/v1
API Key:      your-unbiased-api-key

The shell settings are the ones from our live run. The GUI steps follow the OpenHands documentation for OpenAI-compatible proxies; we have not run the GUI against Pareto.

OpenHands stays. The model changes.

A model name, a base URL and a key change. The agent does the same work in the same way.

One model string, several models behind it

Pareto is Unbiased’s blended AI model. On each request it selects frontier and open models and blends their outputs into one answer, so OpenHands sends every step to one model string, openai/pareto, and never has to pick.

“When the frontier improves, Pareto improves; when frontier prices fall, you should benefit.” From the pricing page.

How a Pareto answer gets made →
An illustration, not a wiring diagram. The blend includes frontier and open models, and its composition can change.

What an agent task costs on Pareto

Agents make many model calls per task, so the price of a finished task matters more than the price of a token. The model card publishes both for Pareto on two public agent benchmarks.

Terminal-Bench 4.0Tasks an agent completes in a terminal
$0.48/task
50.8% solved
DeepSWE v1.1Changes an agent makes in a real codebase
$0.24/task
69.9% solved

Pareto 26.10, preliminary October 1, 2026 runs that may change; denominators and the cost method still require confirmation. Cost is the reported mean USD per task at API rates, not an estimate for your workload. Model card and method.

Pay for OpenHands by the month

One API key works across OpenHands and any other tool you point at Pareto. Pick a monthly allowance, or pay per token on Team.

Personal

$10/month

  • 50M tokens a week
  • 20 requests per minute
  • For one person
Choose Personal

Personal Max

$100/month

  • 600M tokens a week
  • 60 requests per minute
  • For one person
Choose Personal Max

Team

Pay as you go

  • Prepaid credits at published rates
  • 300 requests per minute
  • No weekly token cap
Get started with Team

Subscriptions are for one person and are not unlimited. New API accounts are reviewed by a person before access turns on, and commercial or production use needs a separate written agreement. Rates and limits are on Pricing.

OpenHands on Pareto, questions answered

Does OpenHands work with Pareto?

Yes. OpenHands reaches models through LiteLLM, which speaks the OpenAI Chat Completions format, and Unbiased does too. We ran OpenHands CLI 1.16.0 headless against Pareto on October 20, 2026: it read chunk.py and its failing test, fixed the off-by-one with its file editor and ran the test to green. Format compatibility is not a promise that every feature works, so tell us if one doesn’t.

Why openai/pareto and not just pareto?

LiteLLM picks the wire format from the prefix. openai/ means “OpenAI-compatible endpoint at the base URL I give you”, and the part after it, pareto, is the model name Unbiased receives. Without the prefix LiteLLM does not know which provider to call.

I set the variables and nothing changed. Why?

The CLI ignores LLM_MODEL, LLM_BASE_URL and LLM_API_KEY unless you pass --override-with-envs. The override lasts for that run only. To make Pareto the default, press Ctrl+P in the interactive CLI, choose Settings, set Settings Mode to Advanced and fill in Custom Model, Base URL and API Key with the same values.

Is headless mode safe to run?

Headless mode always approves every action, and that cannot be turned off. The model choice does not change this. Run it in a directory you are happy for an agent to edit, such as a fresh clone or a container.

Can I switch back to my old model?

Yes. Drop --override-with-envs and the CLI uses its saved settings again. In the GUI, change Custom Model and Base URL back, or turn Advanced off and pick a provider from the list.

Is Pareto made by the OpenHands team?

No. Pareto is Unbiased’s model. OpenHands is made by the OpenHands team, and Unbiased is not affiliated with or endorsed by them. You keep OpenHands and point it at the Unbiased API.

What happens when I hit the weekly allowance?

Requests over your plan’s limits return an HTTP 429 error. Personal includes 50M tokens a week and 20 requests per minute. Personal Max raises that to 600M a week and 60 requests per minute for $100/month. Team uses prepaid pay-as-you-go credits with no weekly token cap.

Do I choose between models?

No. You send every request to one model string, pareto. Pareto selects frontier and open models for each request and blends their outputs into one answer.

Is my code kept?

Personal and Personal Max are not our zero data retention tier: prompts and responses may be kept up to 30 days, as section 5(c) of the Terms explains. For work that must not be kept, ask about the Zero Data Retention API on the Private AI page.

Pareto works in other tools too

The same key and the same model string go into each of these. See them all.

Product names belong to their owners. Except where a guide says otherwise, Unbiased is not affiliated with or endorsed by the makers of the tools on this page.

Hand OpenHands the failing test and take your hands off

Three variables, one key and the same agent. Pareto starts at $10 a month for 50M tokens a week.