unbiased ai

Factory Droid, with Pareto in the model slot

Droid already lets you bring your own model, so the paperwork is one entry in ~/.factory/settings.json. Add Pareto under customModels, export your Unbiased key and pick it with /model, or hand it straight to droid exec. Each request goes to Pareto, which selects frontier and open models and blends their outputs into one answer.

Tested live with Factory Droid 0.245.050M tokens a week

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

One custom model entry and a key

Droid reads bring-your-own-key models from the customModels array in ~/.factory/settings.json. Add the entry below, or merge it into the array if you already have one.

  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 Pareto to customModels

    Set provider to generic-chat-completion-api and baseUrl to https://api.unbiased.ai/v1, including the /v1. Type pareto as the model by hand. Unbiased does not serve a model list (GET /v1/models).

  3. Keep the key out of the file

    apiKey accepts an environment reference like ${UNBIASED_API_KEY}. Export that variable in your shell profile and the settings file never holds the key itself.

  4. Pick Pareto and work

    Run droid in a project and choose Pareto under /model. For scripts and CI, pass --model custom:Pareto-0 to droid exec: the display name, with spaces turned into dashes, then the entry’s position in the array starting at 0.

Tested on October 20, 2026Factory Droid 0.245.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.
~/.factory/settings.json
{
  "customModels": [
    {
      "model": "pareto",
      "displayName": "Pareto",
      "baseUrl": "https://api.unbiased.ai/v1",
      "apiKey": "${UNBIASED_API_KEY}",
      "provider": "generic-chat-completion-api",
      "maxOutputTokens": 32000
    }
  ]
}
Shell
export UNBIASED_API_KEY=your-unbiased-api-key
# Interactive: start droid, then pick Pareto under /model
droid
# One task, no TUI (--auto medium lets it edit files and run tests):
droid exec --auto medium --model "custom:Pareto-0" "Fix the failing test"

Use generic-chat-completion-api, not openai: in Droid, the openai provider means OpenAI’s Responses API. Older setups kept models in ~/.factory/config.json under custom_models; Droid copies those into settings.json at startup. After that first copy, edit settings.json; later changes to config.json are ignored.

Factory Droid stays. The model changes.

Droid gains a model. The rest of the CLI behaves as it did yesterday.

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 Factory Droid 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 Factory Droid by the month

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

Factory Droid on Pareto, questions answered

Does Factory Droid work with a model outside Factory’s list?

Yes. Droid supports bring-your-own-key models over the OpenAI Chat Completions format, and Unbiased speaks it. We ran Droid 0.245.0 against Pareto on October 20, 2026: droid exec found the off-by-one behind a failing Python test, edited the file and reran the test to green. Factory notes that it fully tests only Anthropic’s and OpenAI’s official APIs, and format compatibility is not a promise that every feature works, so tell us if one doesn’t.

Which provider type should I choose?

generic-chat-completion-api, with https://api.unbiased.ai/v1 as the base URL. That is the setup we tested. Droid also documents an anthropic provider, and Unbiased serves the Anthropic Messages format at https://api.unbiased.ai, but we have not run Droid that way.

Why does droid exec only read files?

droid exec is read-only unless you raise its autonomy. Add --auto low to let it edit files, or --auto medium to also run commands such as your tests. --skip-permissions-unsafe cannot be combined with --auto.

Where does Pareto show up, and what doesn’t apply?

Personal custom models appear in the droid CLI and Factory’s desktop app, not in Factory’s web or mobile surfaces. The reasoning effort flag (-r) does not apply to custom models, and Droid still compacts a long session at its compaction limit, 250k tokens by default.

Can I switch back?

Yes. Pick another model under /model, or drop --model custom:Pareto-0 from your droid exec command. Remove the entry from customModels to take Pareto out of the list entirely.

Is Pareto made by the Factory Droid team?

No. Pareto is Unbiased’s model. Factory Droid is made by Factory, and Unbiased is not affiliated with or endorsed by them. You keep Factory Droid 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.

Send droid exec after the test that keeps failing

One entry in settings.json, one key and the same CLI. Pareto starts at $10 a month for 50M tokens a week.