what do you already know about my codebase?

does every turn need the expensive model?

that command prints the whole file. do I pay for every byte?

my compiler answers in JSON. does the model wade through that?

I read the same file twice. do I pay twice?

show me what I didn't spend.

squeezy indexes your repository on your machine into a knowledge database: every symbol, every definition, every caller, across 40+ languages and formats. Ask where something happens in the code and it queries that database instead of reading files into the prompt. The answer comes back with the exact file:line for each function.

Knowledge database queryable · 40+ languages · symbols, definitions, callers

A question in plain prose. The highlighted cards are the knowledge database being queried, not files being dumped into the prompt, and the answer names each function with its exact file:line. /cost saving then itemizes what the lookups kept off the bill.

Not every turn needs your main model. When an unpinned, eligible turn asks for tools, squeezy judges it while those tools run and sends an easy one down to a smaller model you configure; harder work stays on your main model, or moves up to a stronger one if you configured that rung too. A turn answered in one step is never judged and never billed for one. That cheaper model runs on whichever provider you gave it — your main one unless you chose otherwise — and you can pin a turn yourself with /router cheap or /router main.

Route easy turns run cheap · hard ones stay on your main model

A read-and-summarize turn is judged easy, and the transcript says so: ↓ Rerouted, from the main model to the smaller one this session had configured. Same answer, lower price. /cost saving books the difference under model routing.

One command can print far more than the model can use. squeezy writes the whole output to a file on your machine, sends the model a short preview, and keeps the rest one fetch away. The card in the transcript states how many bytes never entered the conversation.

Shape oversized output kept on disk · a short preview sent

cat prints an entire source file; the model answers from the preview. The card reads 131079 bytes omitted, then names where the full output was kept. /cost saving books it at $0.14 of the $0.21 that session saved.

Developer tools often answer in a machine format. Here rustc emits JSON diagnostics. squeezy parses them on your machine and hands the model the findings as ordinary error rows, each at its own file and line, instead of the JSON they arrived in.

Shape machine output in · readable findings out

rustc --error-format=json fails with three errors. The model reads them as plain diagnostics and answers in one sentence. /cost saving books the parse under shell shaping: you paid for the findings, not the protocol.

A long session re-reads the same files constantly, and every repeat would normally bill the same bytes again. squeezy answers a repeat with a receipt: a short pointer back to the copy the session already holds, with the full content still one fetch away.

Receipt a repeat returns a pointer, not the bytes again

The same file is read in full, twice, on purpose. The second card comes back already read, a receipt rather than the bytes, and the answer still confirms the file is unchanged by its SHA-256. /cost saving books the repeat under receipt stubs.

squeezy keeps a savings ledger: every avoided byte and every estimated dollar, labeled by how it was derived. Read the session you are in with /cost, or run squeezy savings in an ordinary shell to see the ledger across sessions. Every figure comes from your own runs.

Ledger itemized in provider USD · labeled by confidence

squeezy savings --by mechanism prints one row per technique; --export-html writes the same figures as a self-contained report. Each row names whose saving it is: the provider's own cache pricing is shown, and left out of squeezy's total.

A question in plain prose. The highlighted cards are the knowledge database being queried, not files being dumped into the prompt, and the answer names each function with its exact file:line. /cost saving then itemizes what the lookups kept off the bill.
A read-and-summarize turn is judged easy, and the transcript says so: ↓ Rerouted, from the main model to the smaller one this session had configured. Same answer, lower price. /cost saving books the difference under model routing.
cat prints an entire source file; the model answers from the preview. The card reads 131079 bytes omitted, then names where the full output was kept. /cost saving books it at $0.14 of the $0.21 that session saved.
rustc --error-format=json fails with three errors. The model reads them as plain diagnostics and answers in one sentence. /cost saving books the parse under shell shaping: you paid for the findings, not the protocol.
The same file is read in full, twice, on purpose. The second card comes back already read, a receipt rather than the bytes, and the answer still confirms the file is unchanged by its SHA-256. /cost saving books the repeat under receipt stubs.
squeezy savings --by mechanism prints one row per technique; --export-html writes the same figures as a self-contained report. Each row names whose saving it is: the provider's own cache pricing is shown, and left out of squeezy's total.

recorded session scene 1 of 6 install squeezy see how it saves ↓

the squeeze

how do I get this?

Install it with one command.

A terminal coding agent that does the busywork on your machine. Bring your own key. macOS, Linux, Windows.

30+ cost saving strategies, in four layers that stack on a single turn. see them all →

curl -fsSL https://raw.githubusercontent.com/panicless/squeezy/main/install.sh | sh

Every dollar figure above is squeezy's own estimate, computed from usage on your sessions at your provider's published rates, and labeled by how it was derived. It is not a bill.

every scene above is a recorded session · nothing here is a mockup
github

Repository access is under construction.

squeezy's repository is not public yet. The product site and documentation are available here in the meantime.