blog · Artikel auf Englisch

What did that chat cost? Snotra 1.23 tells you

The question I heard more than any other about Snotra: what does this cost me? Since 1.23 every chat shows an estimate next to the token counter, split by model and kind of token, from a price table that ships with the app and never fetches itself.

If you have ever talked to me about Snotra, chances are you asked it too. It came after demos, in messages and under posts, usually right after “which models does it support?”, and at some point I stopped counting: what does this actually cost me? No other question came back that often.

It is a fair question. Snotra brings no model of its own. You connect the one you want and pay your provider directly, which is the point: no account with me, no markup, no middleman. But it also meant that the app knew exactly how many tokens a chat used and kept quiet about what they cost. You found out at the end of the month, on your provider’s dashboard, summed over everything. Snotra 1.23.0 answers the question where it comes up: in the chat.

A figure next to the token counter

Once a chat has an answer, a small figure appears in the composer bar, left of the token counter: ~$0.16. The tilde is deliberate; more on that below. It covers the whole chat, every request in it, including the rounds in which the agent reads files or runs tools before it answers. That is the part people tend to underestimate: one answer from an agent can be five requests to the model, each of them carrying the conversation so far.

Click the figure and a panel opens with the breakdown.

The lower part of a chat about a garden. Above the input, the panel Cost of this chat: about 0.16 dollars, 51 K tokens in and 5.4 K out, an estimate. Under gpt-5.4, about 0.11 dollars: Input 17 K for 0.04 dollars, Read from the cache 14 K for less than a cent, Output of which 1.5 K reasoning 4.2 K for 0.06 dollars. Under claude-sonnet-5-5, about 0.05 dollars: Input 19 K for 0.04 dollars, Output of which 450 reasoning 1.2 K for 0.01 dollars. At the foot, the date of the LiteLLM price table and the note that it is an estimate. In the composer bar below, the figure about 0.16 dollars next to 19 K tokens.
Three questions, two models. Each model keeps its own line at its own price.

Not every token costs the same

A token count alone doesn’t tell you much about money, because providers price tokens by what they are. The panel shows the four kinds that matter:

  • Input: what the model reads, at the full price.
  • Read from the cache: input the provider has seen before and serves from its prompt cache. At the list prices in the screenshot that is a tenth of plain input: 14,000 tokens for less than a cent.
  • Written to the cache: some providers, Anthropic among them, charge extra for storing a prompt in the cache in the first place.
  • Output, including reasoning. The thinking a model does before it answers is billed as output, whether or not you ever see it. In the screenshot, 1,500 of the 4,200 output tokens are reasoning.

To get this right, Snotra had to stop folding things together. Its usage record used to merge cache writes into the input and ignored reasoning tokens altogether; now both are kept apart for every request. A side effect: Gemini’s thoughts now count as output, as Google bills them.

Switch models, keep the bill straight

Each request is priced with the model that actually served it. Start a chat with one model, switch to another halfway through, and the panel shows two lines, each at its own price, as in the screenshot above. The sum is saved with the chat: open it again tomorrow and the figure is still there. The chat history shows it next to each chat’s time, so a glance down the list tells you which conversations were the expensive ones.

Where the prices come from

Neither OpenAI nor Anthropic offers an API for their prices, and their pricing pages change shape often enough that scraping them would break every few weeks. What the community uses instead is the price table that LiteLLM maintains: unofficial, but broad and kept up to date by many hands.

Every Snotra release ships a reduced copy of it, 186 models in 1.23. That works offline, and it gives the same answer on every machine. What Snotra does not do is fetch a newer one by itself. The README promises that nothing phones home, and a price check at start-up would be exactly that: a request you didn’t ask for. So the table only changes when you click Update prices in Settings › Models. The download is checked before it replaces anything, and if it fails, the previous table stays in use and Snotra says so.

The section Prices for the cost estimate in Settings, Models. The line Price table of Oct 15, 2026, shipped with Snotra, 186 models, with the button Update prices. Below, two models: gpt-5.4, price table, in 2.50 dollars, out 15.00 dollars per million tokens, and claude-sonnet-5-5, price table, in 2.00 dollars, out 10.00 dollars per million tokens, each with a button Set price.
Every model in your list, with the price Snotra uses and where it comes from.

Your own price wins

List prices are not always what you pay. You may have a discount, run the model as an Azure deployment, or use a model the table has never heard of. Next to each model there is Set price: input and output in dollars per million tokens, cache prices optional (left empty, they cost what input costs). Your price always wins over the table. Use table price takes it back.

What it doesn’t pretend to know

A cost figure that is confidently wrong is worse than none. So the estimate is careful about the edges:

  • A model on your own machine costs nothing. Ollama, LM Studio and any other server at a local address show $0.00, because there is no API bill. If that local server is a proxy that forwards to a paid API, set a price of your own; it beats “local” too.
  • An unknown model shows a dash, never zero. If there is no price for a model, its cost reads –. A sum that had to leave requests out ends in a plus: ~$0.42+.
  • Some things are not in it: image generation, voice input and the generated chat title. Batch, priority and long-context surcharges and regional prices aren’t modelled either; the list price applies.

That is what the tilde stands for. The figure is an estimate in US dollars, and your provider’s bill is what counts. And it is only a figure: no budget, no limit, no warning that interrupts your work. Snotra tells you what a chat cost; what you make of that stays your call.

Try it

Nothing to set up: update to 1.23 and the figure appears with the next answer. The manual page See what a chat costs has the details, including how to set a price of your own. If your provider bills something the estimate gets wrong, I would like to hear about it in the Discussions or as an issue. And if you were one of the people who kept asking: here it is.