unbiased ai

Oh My Pi, with every agent on Pareto

Oh My Pi takes the Pi agent and packs in the rest: language servers, a real debugger, subagents and model roles for each kind of work. That is a lot of roles to pay for. Declare Unbiased once in models.yml, point the roles at unbiased/pareto, and every turn, subagent and commit message goes to Pareto, which selects frontier and open models and blends their outputs into one answer.

Tested live with Oh My Pi 18.12.450M tokens a week

A demonstration of Oh My Pi on Pareto, recreated from a real run. Not a screenshot.

Set it up in models.yml and config.yml

Oh My Pi reads custom providers from ~/.omp/agent/models.yml and role assignments from ~/.omp/agent/config.yml. One provider entry and one block of roles is the whole job.

  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. Declare Unbiased in models.yml

    Add an unbiased provider with baseUrl https://api.unbiased.ai/v1, api: openai-completions and authHeader: true. List pareto under models by hand and leave out any discovery block: Unbiased does not serve a model list.

  3. Point the roles at Pareto

    In config.yml, set modelRoles for default and the helper roles (smol, slow, plan, commit, task, tiny, advisor) to unbiased/pareto, so subagents and commit messages stay on Pareto too.

  4. Export the key, then check

    apiKey: UNBIASED_API_KEY names an environment variable. Export it before you start omp, then run omp models unbiased; it should list pareto.

  5. Start omp

    Run omp in any project, or omp -p --auto-approve --model unbiased/pareto "…" for a single unattended task. Inside a session, /model swaps the active model.

Tested on October 20, 2026Oh My Pi 18.12.4 on Pareto (pareto). It found the off-by-one in a failing Python test, edited chunk.py and reran the test to green. Run record.
~/.omp/agent/models.yml
providers:
  unbiased:
    baseUrl: https://api.unbiased.ai/v1
    apiKey: UNBIASED_API_KEY
    api: openai-completions
    authHeader: true
    models:
      - id: pareto
        name: Pareto
        contextWindow: 1000000
        maxTokens: 131072
~/.omp/agent/config.yml
modelRoles:
  default: unbiased/pareto
  smol: unbiased/pareto
  slow: unbiased/pareto
  plan: unbiased/pareto
  commit: unbiased/pareto
  task: unbiased/pareto
  tiny: unbiased/pareto
  advisor: unbiased/pareto
Shell
export UNBIASED_API_KEY=your-unbiased-api-key
omp models unbiased
omp
# One task, no prompts for tool approval
omp -p --auto-approve --model unbiased/pareto "Fix the failing test"

If UNBIASED_API_KEY is unset, omp sends the variable’s name as the key and the request fails. To keep the key out of your shell, apiKey: "!cat $HOME/.unbiased-key" reads it from a command instead. Pareto needed none of omp’s compatibility switches.

Oh My Pi stays. The model changes.

A provider and a set of roles are added. The tools that make omp what it is stay put.

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 Oh My Pi 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 Oh My Pi by the month

One API key works across Oh My Pi 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.

Oh My Pi on Pareto, questions answered

Which api type should I use in models.yml?

Use openai-completions with the base URL https://api.unbiased.ai/v1, keeping the /v1. That is the setup we ran with Oh My Pi 18.12.4 on October 20, 2026: omp read the failing test and the source, fixed chunk.py and reran the test to green. Format compatibility is not a promise that every omp feature works, so tell us if one doesn’t.

Why set so many model roles?

omp hands different work to different roles: smol for cheap subagent fan-out, commit for commit messages, plan for plan mode and so on. A role you leave unset can fall back to another provider you have configured. Pointing these roles at unbiased/pareto keeps normal turns, subagents, plans and commit messages on your Unbiased plan.

Can omp use its debugger on Pareto?

The debug tool, which drives a real debugger with breakpoints, stepping and variables, is part of omp and does not depend on the model. Our live test used the read, edit and bash tools and did not exercise debug or lsp.

Does it work with omp profiles?

Yes. A named profile such as omp --profile work reads ~/.omp/profiles/work/agent/ in place of ~/.omp/agent/, so put the same models.yml and config.yml there if you want Pareto in that profile.

How do I switch back?

Your other providers stay where they were. Pick one with /model, or change modelRoles in config.yml to make it the default again. If you came from a coding plan, see how Pareto compares on the coding plan alternative page.

Is Pareto made by the Oh My Pi team?

No. Pareto is Unbiased’s model. Oh My Pi is made by Stencil Labs, and Unbiased is not affiliated with or endorsed by them. You keep Oh My Pi 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 omp a failing test and let its agents work on Pareto

One provider, one set of roles and the same agent. Pareto starts at $10 a month for 50M tokens a week.