Where does the saving install?
BV‑SALA is not an app, not an extension, not a ChatGPT setting. It's a piece of code a developer places inside their own application, right where that application calls your provider's API. It can only save where a per-token bill exists — and can only measure it where it sees every request go by.
The layer lives inside your code
The same call, with and without the layer. Traffic always travels straight from your application to the provider — BV‑SALA is not a middleman server and never sees your data from outside.
That green box is an npm package inside the application's code. That's why the key question is never “what do I install?” but “who wrote the code that calls the API?” — that person is who can install it. The exceptions are a coding terminal like Claude Code and an app in any language that uses the official OpenAI or Anthropic SDK and lets you set its base URL: there the bvsala gateway sits in front without touching a line of code. That traffic is measured for models with a list price; the saving levers of the npm package do not run there, and the gateway's own apply only to Anthropic traffic, with a PRO license.
Your case, in 10 seconds
Four ways of using AI, and what BV‑SALA can do in each one.
You pay a flat fee (or nothing): there is no per-token bill to reduce, and it's a closed product where nobody can place software between the app and its models. BV‑SALA's saving simply doesn't apply here — and no product can honestly promise it there.
Flat subscription: no token invoice to meter — but there are caps (the five-hour window and the weekly one). That is exactly what the savings-mode skill is for: free, uploaded to claude.ai in a minute, attacking the two masses that burn cap. Its effect will be published once measured — never before.
On a subscription the fee is flat — but capped: the same skill installs with a single command and stretches the same weekly cap. With an API key there is a real token invoice — and the meter is already running: with your BiVelio license, “bvsala claude” launches Claude Code through the local gateway and your spend shows up in the panel, token by token, without touching a line of code. With PRO, on Anthropic models, it also moves cache writes from the one-hour TTL to the five-minute one only on turns where a large part of the prompt is new (a session's first turn, a compaction): a saving computed on your provider's own token count, never on an estimate.
The case BV‑SALA exists for. Your app calls the API with your key, the provider bills every token, and the layer installs in three steps: package, license, and wrapping the call. From the first request it returns a SavingsReport with the saving, split into measured and estimated.
Estimate vs. measurement
The product has two different numbers, and they shouldn't be mixed.
The free Measure license runs the layer in shadow mode on your own traffic and shows what it would have saved, request by request. It changes nothing and applies nothing — that's why it carries the “estimate” tag.
Every call returns a SavingsReport: the calls you never paid for and the net saving per request. Auditable, request by request, on your own infrastructure.
The full install, if you build an app
# 1 · the package pnpm add @bivelio/savings-layer # 2 · the license (from your dashboard) export BIVELIO_LICENSE_KEY=… # 3 · wrap the call — this is the entire code change const layer = createSavingsLayer({ provider, licenseKey, … }); const { text, report } = await layer.generate({ model, messages }); console.log(report.cost.netSavingsRatio) // ← the saving, measured