Contextwaise
Context optimization for production AI

Stop paying LLMs to read irrelevant context.

Most of what your app sends to the model is noise: extra search results, raw tool output, old messages. Contextwaise keeps only what the answer needs, in milliseconds, so you pay for fewer tokens. Add it with one API call, or one line in your agent.

See it live
For RAG results, tool output, web pages and chat history.
Overview
24h7d30d
Optimizations
182,421
121,904 API · 60,517 SDK
Input tokens sent
530M
was 1.82B
Context reduction
70.9%
1.29B never sent
Net cost avoided
$2,462
after $118 scoring
Input tokens over timetokens insent to LLM
6:009:0012:0015:0018:0021:00
Savings and speed
API call63%
810M removed · 1.24B → 430M -65%
Contextwaise SDK37%
480M removed · 580M → 100M -83%
Time added · last 7 days
6 ms median510 ms p95-4.2% vs previous 7 days
Waste removed by source
RAG612M → 214M -65%
Tool output580M → 100M -83%
Web search301M → 132M -56%
Chat history244M → 71M -71%
Agents
AgentConnected throughOptimizationsAvg sentReduction
support-botAPI call48,2105.3K-71%
shop-assistantContextwaise SDK60,517533-83%
research-agentAPI call31,9049.8K-56%
Illustrative data.

Your model isn't expensive. Your context is bloated.

RAG returns extra chunks. Agents dump raw tool output into every step, then replay it on every turn after. Web search brings back whole pages. The model reads all of it, and you pay for it, again and again.

72% of what an agent's model reads is tool output.

Logs, test runs and API responses come back raw, and every later step reads them again. That is where an agent's bill grows, and where Contextwaise cuts.

Without Contextwaise124.8K tokens
With Contextwaise51.5K tokens
Instructions and tools list: 16.3K → 16.3KConversation: 19.2K → 19.2KTool output: 89.3K → 15.9K

Our demo agent, five questions on GPT-6.1 Sol: everything the model read over the run.

Other ways to cut the bill, and the catch.

Retrieve fewer results
The answer you needed was result number 7.
Switch to a cheaper model
Cheaper per token, but it still reads all the noise, and quality drops.
Turn on prompt caching
Discounts the part that repeats. New context each turn is still full price.
Trim it yourself
Possible. You build and tune relevance scoring, and maintain it for every source.
Contextwaise
Keep retrieving broadly and keep your model. Only what the answer doesn't need is removed, and it works with prompt caching instead of against it.
The solution

Send your model only what the answer needs.

Contextwaise sits between your app and your model. It scores every piece of context against the question, removes what doesn't help and logs why. Same model, same prompt, fewer tokens.

A context item; thickness is its tokensThe item being scoredRemoved items, kept in the drawerThe question each item is scored againstYour context goes in as items: retrieved chunks, tool results, chat history, each as thick as its tokens. A free local cleanup strips what no model reads, like empty JSON fields and markup. A small model scores every item against the user's question, and duplicates and low-relevance items are set aside, each removal logged with its reason and recoverable. Only what the answer needs reaches your LLM. The run shown is a real support request: 901 → 264 tokens in 510 ms.
  1. 1
    Your app gathers context

    Search results, documents, tool output, chat history. Keep everything you use today.

  2. 2
    Contextwaise keeps what matters

    Duplicates, noise and anything off-topic are removed, in well under a second.

  3. 3
    Your model reads less

    Same model, same prompt, fewer tokens. You see what was removed and why.

See every step in detail

Watch what gets removed.

A customer asks a support bot about a double charge. Search returns 13 pieces of context. Only 3 answer the question.

I was charged twice for my September invoice. Why did that happen, and when will I get the duplicate refunded?
901264tokens sent to the model

Measured on our example request, 510 ms end to end.

Agents too.

A coding agent is asked why the tests fail. It runs the test suite, and the tool sends back everything: a progress bar, 336 passing tests and 2 failures. Only the failures help.

7,209156tokens the model reads
  • Trimmed the moment the tool returns, before the model reads it.
  • Agents reread every earlier result on each step, so the savings repeat on every step after.
  • Nothing is lost: the full output stays with your agent, and the model can ask for any part back.

Measured on our demo agent.

Try the full demo
Why are the tests failing?

Less to read. Less to pay.

See it live
−71%
tokens on a support question
13 help-center results and an API response in, 3 sent to the model.
−83%
of what an agent's tools sent
Test runs, logs and file listings, trimmed before the model read them.
−55%
agent cost on a recorded run
Five questions on GPT-6.1 Sol, billed usage against a replay without Contextwaise.

Measured on our example request and demo agent. Your numbers depend on how much noise your context carries.

510 ms to cut a 13-item RAG request by 71%.

The cut happens before your model is called, in milliseconds, and it pays for itself on that same request. The free local cleanup takes a few ms; relevance scoring adds a few hundred.

Local cleanup, one tool result1–20 ms
free, never calls the API
Chat history request323 ms
493 → 144 tokens
Web search request359 ms
813 → 355 tokens
Support RAG request510 ms
901 → 264 tokens
Agent's application log400–800 ms
28,309 → 564 tokens
00.5 s1 s

One run each through the live engine, on our example requests and demo agent.

Any context you send, not only RAG.

Agents

Tool results are trimmed once and stay small on every later step, so long runs stop getting more expensive.

RAG

Retrieve more results, then pay your expensive model for only the evidence that matters.

Tool output

Test runs, logs and API responses lose their noise first: passing tests, repeated lines, empty fields.

Web search

Whole pages become the few passages that answer the question.

Chat history

Old messages that no longer matter stop being resent on every turn.

Works with what you already use.

One API call, or one line in your agent. No new model, no migration, and you keep calling your provider directly.

OpenAI
Anthropic
Gemini
Mistral
DeepSeek
Llama
Works with the Vercel AI, Anthropic and OpenAI SDKs · REST API from any language

Safe by default.

Never breaks your app

If Contextwaise can't answer, your original context goes through, as it does today.

Keeps what the answer needs

After a cut, a check asks whether what was kept was enough, and cuts less next time if it wasn't.

Every decision visible

See what was removed from each request, and why: duplicate, off-topic or over budget.

How the quality guard works

What would you save?

An agent that sends 1B input tokens a month to Claude Sonnet 5.5 pays about $1,108 for them today. With Contextwaise, the model reads about 412M and the bill is $414, plan included.

Calculate yours

Go deeper.

All guides
30%

off your first year on a yearly plan.

Choose yearly billing on Pro or Scale by December 31, 2026 and your first year costs 30% less than paying monthly: $126 instead of $180 for Pro. Applied at checkout, no code needed.

Start free

Questions

The short ones are here.

Will it change my answers?

It only removes context the answer doesn't need: duplicates, off-topic results, and noise like passing tests or empty fields. After a cut, a check asks whether what was kept was enough, and the next requests cut less if it wasn't.

What if Contextwaise is down?

Your app keeps working. If we can't answer, you send your original context to your model, as you do today. Agents keep running with the free local cleanup only.

Do I have to change my model or provider?

No. You keep calling OpenAI, Anthropic, Gemini or any model directly. Contextwaise only decides which context reaches it, and never sits between you and your provider's bill.

What does it cost?

Free for your first 1M context tokens, then plans from $15 a month. The calculator on the pricing page shows what you'd save on your model and volume.

Is my data stored?

Not in full. For your request log we keep the first 500 characters of the question and a short preview of each context item. With an API key, the agent SDK sends tool results still over budget after cleanup, in sections, to be scored; they are not stored, and the dashboard keeps only tool names and sizes.

Cut your LLM costs
without cutting quality.

One layer between retrieval and inference removes the context your model never needed, in milliseconds. Fewer input tokens, lower cost, a prompt cache that keeps hitting, and every removal logged with its reason.

See it live
Keep your model, retriever and prompts. Remove one call to roll back.