{"id":"model-pricing","repo":"gpambrozio/paseo-plugins","url":"https://github.com/gpambrozio/paseo-plugins/tree/main/model-pricing","package":"@gpambrozio/paseo-model-pricing","npm":{"package":"@gpambrozio/paseo-model-pricing","version":"0.1.2","integrity":"sha512-Pmf/A+PN9RAa6lRk6lyZvPEmqSoQXb3/nbFqJEQEUksUZesp+K8bG/HxEZX+I2RRAO+DpFy9F7uuzsyHZw7ttw==","publishedAt":"2026-09-19T19:24:14.280Z","downloadsLast30Days":0},"name":"model-pricing","description":"Paseo plugin: a sidebar table of what every model costs, across Anthropic, OpenAI, Fireworks AI, Ollama Cloud and OpenRouter","categories":["productivity"],"platforms":[],"caveats":["Prices for Anthropic, OpenAI, Fireworks AI and Ollama Cloud come from the community models.dev catalog, not the vendors","The daemon machine needs outbound network access to fetch the price lists"],"images":["https://raw.githubusercontent.com/gpambrozio/paseo-plugins/925c135ac58ebc4088daaa202f34a5d133df1f11/model-pricing/docs/screenshot.png"],"themes":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-09-19T22:41:49.710Z","addedAt":"2026-09-20T01:37:27+03:00","npmSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-09-19T22:39:17.272Z","version":"0.1.2","integrity":"sha512-Pmf/A+PN9RAa6lRk6lyZvPEmqSoQXb3/nbFqJEQEUksUZesp+K8bG/HxEZX+I2RRAO+DpFy9F7uuzsyHZw7ttw=="},"path":"model-pricing","version":"0.1.2","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-09-19T22:39:17.272Z","commit":"925c135ac58ebc4088daaa202f34a5d133df1f11"},"license":"MIT","paseoVersionRequirement":">=0.8.0","descriptionNodes":[{"type":"text","text":"Paseo plugin: a sidebar table of what every model costs, across Anthropic, OpenAI, Fireworks AI, Ollama Cloud and OpenRouter"}],"caveatNodes":[[{"type":"text","text":"Prices for Anthropic, OpenAI, Fireworks AI and Ollama Cloud come from the community models.dev catalog, not the vendors"}],[{"type":"text","text":"The daemon machine needs outbound network access to fetch the price lists"}]],"manifest":{"id":"model-pricing","requirements":{"paseo":">=0.8.0"}},"repoMeta":{"stars":7,"defaultBranch":"main","pushedAt":"2026-09-19T20:15:14Z"},"owner":{"login":"gpambrozio","avatarUrl":"https://avatars.githubusercontent.com/u/672135?v=4"},"installNotesHtml":"<pre><code class=\"language-bash\">paseo plugin install npm:@gpambrozio/paseo-model-pricing\n</code></pre>\n<p>That is the shortest route on <strong>Paseo 0.9 or newer</strong>, which installs plugins straight from npm; add\n<code>@&#x3C;version></code> to pin one. On 0.8, install from this repository instead:</p>\n<pre><code class=\"language-bash\">paseo plugin add gpambrozio/paseo-plugins --path model-pricing\n</code></pre>\n<p>Pin a repository install with <code>--ref model-pricing/v&#x3C;version></code>. To hack on it, clone the repository\nand <code>paseo plugin install \"$PWD\"</code> from this folder after <code>npm install</code> and <code>npm run typecheck</code>.</p>","limitationsNotesHtml":"<ul>\n<li><strong>The prices are only as current as their source.</strong> models.dev is community-maintained, so a\nprice change at Anthropic or OpenAI reaches this table when somebody updates the catalog, not when\nthe vendor announces it. Each provider's own pricing page remains the authority; this table is for\ncomparing, not for billing.</li>\n<li><strong>Only per-token prices are shown.</strong> Cached input, batch discounts, image and audio pricing, and\nminimum charges are not in the table, so a model's real cost can be well below what the input\ncolumn implies if you use prompt caching heavily.</li>\n<li><strong>A model that appears twice is not a bug.</strong> With OpenRouter on, a model sold both directly and\nthrough the gateway is two rows with two prices, which is usually the comparison you wanted.</li>\n<li><strong>\"Ollama\" here means Ollama Cloud</strong>, the hosted models with real per-token prices — not the\nmodels pulled onto your own machine, which cost nothing to run and are not listed.</li>\n</ul>","readmeText":"# model-pricing\n\nA Paseo plugin that adds a **Model pricing** panel to the sidebar: one table of what every model on\nthe providers you follow costs, so choosing which model to point an agent at does not mean opening\nfive vendor pricing pages and doing arithmetic.\n\nEach row carries the price per million tokens in and out, the context window, how much the model can\nwrite in one go, whether it can reason, call tools, return structured output and take a temperature,\nand a relative-cost figure that measures it against the cheapest model on screen. Sort by any of it,\nsearch for a model by name, and switch providers on and off.\n\nPrices come from two places, neither of which needs an API key. Anthropic, OpenAI and Fireworks AI\npublish no pricing API at all — their own model endpoints want a key and return no prices — so those\nthree, together with Ollama Cloud, are read from [models.dev](https://models.dev), a community\ncatalog of model specifications. OpenRouter publishes its own, so it is read directly from\nOpenRouter. The daemon does the fetching; nothing is sent anywhere.\n\n![The Model pricing panel: a subtitle reading \"Agent-capable models, 80/20 input:output blend,\ncheapest = 1.0x, USD per 1M tokens, updated 1 hour ago\", a row of coloured provider dots for\nAnthropic, OpenAI, Fireworks AI and Ollama Cloud, a search box, and a table with columns for model,\ncontext, output, price, reasoning, tool call, structured, temperature, relative and platform. The\nrows run from o1-pro at $150 / $600 and 3000.0x down to Claude Fable 5.1 at $10 / $50, each with a\ncoloured strip at its left edge matching its platform.](docs/screenshot.png)\n\n## What you need\n\n- Paseo 0.8.0 or newer, with plugins enabled.\n- Network access from the daemon machine to `models.dev` and `openrouter.ai`.\n\nNo accounts, keys or logins. The plugin only reads public price lists.\n\n## Install\n\n```bash\npaseo plugin install npm:@gpambrozio/paseo-model-pricing\n```\n\nThat is the shortest route on **Paseo 0.9 or newer**, which installs plugins straight from npm; add\n`@<version>` to pin one. On 0.8, install from this repository instead:\n\n```bash\npaseo plugin add gpambrozio/paseo-plugins --path model-pricing\n```\n\nPin a repository install with `--ref model-pricing/v<version>`. To hack on it, clone the repository\nand `paseo plugin install \"$PWD\"` from this folder after `npm install` and `npm run typecheck`.\n\n## Settings\n\nUnder **Settings › Plugins › Model pricing**, or the gear in the panel header.\n\n**Providers.** One switch each for Anthropic, OpenAI, Fireworks AI, Ollama Cloud and OpenRouter. A\nprovider switched off is not shown *and not fetched*, so turning off the ones you do not use makes\nthe panel lighter as well as shorter. All five are on to begin with, which is a little over five\nhundred models — OpenRouter alone is four hundred of them.\n\n**Input / output blend.** The relative-cost column needs one number per model, and a model's input\nand output prices are usually different, often by five times. This setting says how much of that\nblend is input. The default, 80/20, suits an agent that reads a large repository and writes a small\npatch; a chat that drafts prose is closer to 25/75. The ranking genuinely reorders between them,\nwhich is why it is a choice rather than a constant. The prices themselves are always shown in full,\nso only the last column changes.\n\n**Only models that can call tools.** On by default, because a model that cannot call a tool cannot\nrun an agent. Models whose provider does not say either way are always shown rather than guessed at.\n\n### Hiding a provider for a moment\n\nThe coloured dots under the heading are buttons. Tap one and that provider's models drop out of the\ntable and its dot goes hollow; tap it again and they come back. This is instant and does not touch\nthe network — it is for narrowing the table while you compare two providers, not for saying which\nones you care about. Use the settings switches for that: a provider switched off there is not\nfetched at all. Hiding is forgotten when you restart the app.\n\n## Reading the table\n\nPrices are US dollars per million tokens, written input first. An em dash means the provider did not\npublish that fact, not that the answer is no — a third of the models in the catalog simply do not\nstate whether they support structured output.\n\nThe relative column divides each model's blended price by the cheapest one currently on screen, so\nthe cheapest always reads `1.0×` and the rest say how many times more they cost. It is computed over\nwhat you can see: switching a provider off or typing in the search box moves the baseline, because a\nmultiple of a price that is not on screen would not mean anything. Models that are genuinely free\nsay **Free** rather than `0.0×`.\n\nOn a phone or a narrow window the ten columns become one card per model — the same information, laid\nout to be read rather than scanned across.\n\n## Where prices are kept\n\nFetched prices are cached on the daemon under `$PASEO_HOME/plugins/model-pricing/`, one small file\nper upstream, and reused for twelve hours. **Refresh** ignores that and asks again. The refresh is\ncheap: models.dev supports conditional requests, so an unchanged catalog costs a single round trip\nrather than a 4.7 MB download.\n\nIf one upstream cannot be reached, the panel keeps showing the last prices it has for that source\nwith a note saying so and how old they are, and the other source's rows are unaffected.\n\n## Limitations\n\n- **The prices are only as current as their source.** models.dev is community-maintained, so a\n  price change at Anthropic or OpenAI reaches this table when somebody updates the catalog, not when\n  the vendor announces it. Each provider's own pricing page remains the authority; this table is for\n  comparing, not for billing.\n- **Only per-token prices are shown.** Cached input, batch discounts, image and audio pricing, and\n  minimum charges are not in the table, so a model's real cost can be well below what the input\n  column implies if you use prompt caching heavily.\n- **A model that appears twice is not a bug.** With OpenRouter on, a model sold both directly and\n  through the gateway is two rows with two prices, which is usually the comparison you wanted.\n- **\"Ollama\" here means Ollama Cloud**, the hosted models with real per-token prices — not the\n  models pulled onto your own machine, which cost nothing to run and are not listed.\n"}