unbiased ai

OpenCode, with Pareto as the provider

OpenCode was built to take any provider you hand it, so this is a short errand. Add one provider block to opencode.json, export your Unbiased key and pick Pareto in /models. The build and plan agents, the TUI and your permissions stay as they are. Each request goes to Pareto, which selects frontier and open models for the request and blends their outputs into one answer.

Tested live with OpenCode 2.0.2550M tokens a week

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

One provider block and a key

OpenCode adds custom providers through its config file. Put this in opencode.json at the root of a project, or in ~/.config/opencode/opencode.json to have it in every project.

  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. Add Unbiased as a provider

    Use the @ai-sdk/openai-compatible package with baseURL set to https://api.unbiased.ai/v1, including the /v1. The key under provider, here unbiased, becomes the provider id.

  3. List the model by hand

    Declare pareto in the provider’s models map. Unbiased does not publish a model list for OpenCode to fetch, so the config is where OpenCode learns the name.

  4. Export the key and pick Pareto

    Set UNBIASED_API_KEY, which the config reads with {env:UNBIASED_API_KEY}, then start opencode and choose Pareto in /models. For one-off tasks, give opencode run the model id, as below.

Tested on October 20, 2026OpenCode 2.0.25 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.
opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "unbiased": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Unbiased",
      "options": {
        "baseURL": "https://api.unbiased.ai/v1",
        "apiKey": "{env:UNBIASED_API_KEY}"
      },
      "models": {
        "pareto": { "name": "Pareto" }
      }
    }
  }
}
Shell
export UNBIASED_API_KEY=your-unbiased-api-key
opencode
# then choose Pareto in /models

# One-off task; --auto approves permissions you have not denied:
opencode run --auto -m unbiased/pareto "Fix the failing test"

Rather not use an environment variable? Run /connect, choose Other, enter the provider id unbiased and paste your key. OpenCode stores it in ~/.local/share/opencode/auth.json; the provider block above is still required.

OpenCode stays. The model changes.

OpenCode gains a provider. Nothing you have set up for it goes away.

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 OpenCode talks to one model string, 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 Pareto in OpenCode by the month

One API key works across OpenCode 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.

OpenCode on Pareto, questions answered

Does OpenCode work with Pareto?

Yes. OpenCode supports any OpenAI-compatible endpoint as a custom provider, and Unbiased serves the OpenAI Chat Completions format. We ran OpenCode 2.0.25 against Pareto on October 20, 2026: it read a failing Python test, edited the file and reran the test to green. Format compatibility is not a promise that every feature works, so tell us if one doesn’t.

Which npm package should the provider use?

@ai-sdk/openai-compatible. It sends requests to /v1/chat/completions, which is what we tested. OpenCode’s docs reserve @ai-sdk/openai for providers that use the Responses API.

Why doesn’t Pareto show up in /models?

For a custom provider, OpenCode lists the models you declare under its models map, and Unbiased does not offer a model list to fetch. Check that pareto is in that map and that the file is valid JSON.

Why does OpenCode say the model is not found?

Model ids take the form provider/model. If you named the provider something other than unbiased, use that name: -m yourname/pareto.

Can Pareto be the default model?

Yes. OpenCode’s docs describe a top-level model key for this: add "model": "unbiased/pareto" to opencode.json and new sessions start on Pareto.

Can I switch back to another model?

Yes. Pick a different model in /models, or pass a different -m to opencode run. Remove the unbiased block from opencode.json to take Pareto out of the list.

Is Pareto made by the OpenCode team?

No. Pareto is Unbiased’s model. OpenCode is made by Anomaly, and Unbiased is not affiliated with or endorsed by them. You keep OpenCode 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 OpenCode the test that keeps failing

One provider block, one key and the TUI you already have open. Pareto starts at $10 a month for 50M tokens a week.