Taskpenny

Open source · MIT · Python

Frontier prices only for frontier work.

Taskpenny splits a request only when splitting pays, gives each task to the cheapest model that does it well, checks every result, and shows you the receipt.

About 38% cheaper than Claude Sonnet 5 on equal footing, and as good or better in 74% of 50 tasks it had never seen. How it was measured

pip install taskpenny
A real run, replayed at 4x, without sound. The saving shown on that page is the receipt's estimate against one strong model; the benchmark below runs the strong model for real. Replay it at your own pace.

01 · Measured, not promised

Tested on 50 tasks it had never seen.

Fifty English tasks (40 Arena-Hard prompts and 10 requests with four asks each), judged pair by pair, twice with the order swapped, by a model from a third provider (Gemini 3.1 Pro). Costs are the ones the gateway reported for both sides, with Jev at its list price.

Against Claude Sonnet 5 alone · Sonnet 5 as Taskpenny's strongest model, on equal footing

38% cheaper

As good or better in 74% of the tasks (11 wins, 26 ties, 13 losses), with the same worker instruction and the same reasoning cap. 95% intervals: 19 to 56 for the saving, 62 to 86 for the quality.

Against Claude Opus 5.5 alone · default setup

78% cheaper

As good or better in 50% of the tasks (1 win, 23 ties, 24 losses; 48 compared, as Opus gave no answer on two). 95% intervals: 66 to 86 for the saving, 35 to 65 for the quality.

Fifty tasks give a direction, not a precise figure. Method, raw data and how to rerun it: the full report.

Where it loses

02 · How it works

Four steps, and every one is on the receipt.

  1. 01

    Decide

    Jev, TypeSafe AI's decision model, answers closed questions: should this request be split, which tier from 1 (basic) to 4 (critical) each part needs, and what form the answer should take.

  2. 02

    Route

    Each task goes to the cheapest model of its tier. When a task is itself a choice (an option, a yes or no, a score), Jev answers it directly, with no language model.

  3. 03

    Check

    Jev checks every result against the task's success criteria. A weak answer is repaired first, then moved up one tier, at most twice.

  4. 04

    Receipt

    The parts are stitched into one answer and checked against the request once more. You get the answer, the full task tree and what every step cost.

Splitting uses more tokens in total. The saving is in money, because most tokens go to models that cost a fraction of a frontier model, and Taskpenny drops a plan when the parts would not go to clearly cheaper models: it dropped 5 of 11 plans in those 50 new tasks.

03 · Download and install

Free to download. You pay only for the models you use.

Taskpenny is free and open source, under the MIT license: no account, no subscription, and nothing added to what your model calls cost. It runs on your computer, and you pay the models with your own key.

With pip

For Python 3.10 or newer, on your computer or a server.

pip install taskpenny

From GitHub

The source code, the docs and the benchmark. You can read the code, change it or run it with Docker.

Download from GitHub

How to install it, in four steps

  1. Check that you have Python

    Taskpenny needs Python 3.10 or newer. If you do not have it, get it from python.org.

    python3 --version
  2. Install it and try it, with no key

    pip install taskpenny
    # replays a real run in your terminal: no key, no cost
    taskpenny demo
  3. Add your key

    Real requests need one Vercel AI Gateway key: every decision is Jev's, and Jev is reached through Vercel AI Gateway. The same key reaches Claude, GPT and Gemini, and your own OpenAI, Anthropic or Gemini keys can be added next to it.

    export AI_GATEWAY_API_KEY=...
    # shows what your keys reach, without spending tokens
    taskpenny doctor
  4. Send it real requests

    taskpenny run "Write a short email to move tomorrow's meeting to Thursday"
    # the live task tree in your browser
    taskpenny ui

    And taskpenny serve gives you an OpenAI-compatible endpoint, so any OpenAI client, or n8n, needs only a new base URL.

If you prefer Docker: in a copy of the repository, docker compose up starts the page and the API on your machine, at 127.0.0.1:8765.

04 · Who it is for

For people who send everything to one strong model.

It is for you if

  • You send most of your requests to one strong model, and the bill grows with usage.
  • Your requests mix easy and hard parts: a summary plus a decision, ten labels plus a reply, a plan plus copy.
  • You want to see why each model was chosen and what each step cost.

Not for you yet if

  • Every answer must match Claude Opus on hard prompts (see above).
  • You need tool calling, images or JSON mode. They are not supported yet, and Taskpenny returns a clear error.
  • Each of your calls is one short classification. A router that picks one model per request is enough.

05 · Compared

What the others do, and what Taskpenny adds.

How Taskpenny compares with RouteLLM, OpenRouter Auto, LiteLLM Auto Router and ROMA
ProjectWhat it routesWho picks the modelChecks each resultShows the work and the cost
RouteLLMThe whole requestA trained routerNoNo
OpenRouter AutoThe whole requestA classifierNoNo
LiteLLM Auto RouterThe whole requestJev, rules or a language modelNoCost or savings per request
ROMAEach subtask, recursivelyA fixed model per task typeAn optional verifierA tree in the terminal, no receipt
TaskpennyEach subtask, only when splitting paysJev, for every taskYes, every resultA live task tree and a cost receipt

From each project's own README and docs, September 2026. All of them are good at what they do, and several can sit next to Taskpenny: it speaks the OpenAI API.

06 · Questions

Frequently asked questions.

Is it really free?

Yes. Taskpenny is open source under the MIT license: you can use it, at home or at work, and change it, with no account and no subscription. What you pay are the model calls, with your own key, and Taskpenny adds nothing to them. The demo on this site and taskpenny demo cost nothing.

What do I need to run it?

Python 3.10 or newer and, for real requests, a Vercel AI Gateway key. Every decision is Jev's, and Jev is only reached through Vercel AI Gateway; your own OpenAI, Anthropic or Gemini keys can be added next to it. taskpenny doctor shows what your keys reach, without spending tokens.

Do my requests go through your servers?

No. Taskpenny runs on your computer and there is no server of ours in the middle. Your prompt goes to Jev and the models through Vercel AI Gateway, and to any provider you call directly. Keys are read from environment variables only and are never written to disk. Saved runs, with your requests and answers, stay in the runs/ folder on your machine.

Are the answers as good as my usual model's?

Against Claude Sonnet 5 on equal footing, as good or better in 74% of 50 tasks it had never seen, for about 38% less. Against Claude Opus 5.5, in 50%: if every answer must match Opus on hard prompts, Taskpenny is not there yet. The figures, and where it loses, are above.

Can I use it from the tools I already have?

Yes. taskpenny serve starts an OpenAI-compatible endpoint on your machine: change only the base URL in your OpenAI client, or in the OpenAI Chat Model node of n8n. Chat Completions and Responses both work.

Can I cap what it spends?

Yes. On the command line, every run has a budget of 0.50 USD unless you set another with --max-cost. Through the API, each request can set its own, up to TASKPENNY_MAX_COST (2 USD by default). And --ceiling sets the strongest model Taskpenny may use, for example the one you use today.

Can the models be free too?

In part. With Ollama running and TASKPENNY_LOCAL set, basic tasks go to a model on your own machine, at no cost. Jev still decides and checks every step, so the Vercel key is still needed.

Does it work in other languages?

It takes requests in any language the models understand. The benchmark above is in English. Catalan is our weakest set: in the first run, as good or better in 43% of 14 Catalan tasks.

What is Jev?

TypeSafe AI's decision model. It answers closed questions (split or not, which tier, is this good enough) with a probability and a confidence, and never writes text. Taskpenny asks it for every decision and every check.

If it saves you money, give it a star.

It helps other people who pay for language models find it.

Star on GitHub