close

Beat the Competition

Cut LLM token spend and answer repeat AI requests from cache in under a millisecond while running a multi-threaded, Redis-compatible store.

fewer tokens processed by Claude
70%fewer tokens processed by Claude
of requests answered from cache once warm
81%of requests answered from cache once warm
per exact-match cache hit (the model took 1.4 s)
0.05 msper exact-match cache hit (the model took 1.4 s)
Measured with real Anthropic API calls
Built for LLM workloads

Stop paying to answer the same question twice

HotKV sits in front of your LLM calls as one Redis-compatible engine. It recognizes prompts it has already answered, exactly or approximately, and gives your application the cached response instead of a new API call.

Answer a repeated prompt from cachePython
import hotkv client = hotkv.from_url("hotkv://localhost:6379")client.pcache_create("support", ttl=3600) def ask(prompt: str) -> str:    # Asked before, word for word: no model call    cached = client.pcache_get("support", prompt)    if cached is not None:        return cached.decode()     answer = call_llm(prompt)    client.pcache_set("support", prompt, answer, ttl=3600)    return answer

Illustrative result (example data)

Scenario: ask("How do I reset my password?") twice
Both calls return: "Use the password-reset link on the sign-in page."
First call: cache miss → call_llm → stored answer
Second call: cached answer → no model call
Measured with real Anthropic API calls

Pay for fewer tokens

We sent the same 3,000 customer support questions to four current Claude models twice: once straight to the model, once with HotKV in front.

70%
fewer tokens (input plus output) processed by the models, with the provider's own prompt caching already on

Tokens processed per model

Anthropic claude-fable-5-1
70% fewer tokens70% lower cost
Without HotKV7.25M tokens · $30.31
With HotKV2.16M tokens · $9.18
Anthropic claude-opus-5-5
70% fewer tokens69% lower cost
Without HotKV7.34M tokens · $14.60
With HotKV2.20M tokens · $4.50
Anthropic claude-sonnet-5-5
70% fewer tokens70% lower cost
Without HotKV7.16M tokens · $5.51
With HotKV2.14M tokens · $1.66
Anthropic claude-haiku-5-5
70% fewer tokens70% lower cost
Without HotKV7.08M tokens · $0.27
With HotKV2.11M tokens · $0.08
81%
of requests answered from cache once warm (the last 1,000 of 3,000)
11.0x faster
median response time on Claude Haiku 5.5, 1.4 s down to 125 ms
0.05 ms
answer time for a repeated question (the model took 1.4 s)

What this means at scale

  • Anthropic claude-fable-5-1: $303,100 a month without HotKV, $91,800 with it, about $211,300 saved every month.
  • Anthropic claude-opus-5-5: $146,000 a month without HotKV, $45,000 with it, about $101,000 saved every month.
  • Anthropic claude-sonnet-5-5: $55,100 a month without HotKV, $16,600 with it, about $38,500 saved every month.
  • Anthropic claude-haiku-5-5: $2,700 a month without HotKV, $800 with it, about $1,900 saved every month.

At 1 million requests a day, extrapolated from the measured cost per request and assuming the same traffic pattern. The four Claude models ran with short answers and Fable 5.1 and Opus 5.5 at their lowest reasoning effort, so longer or reasoning-heavy answers would make each avoided call worth more.

Full numbersTokens, cost, answer quality and the similarity threshold trade-offShow

We ran Claude Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5 on the same 3,000 requests each, with and without HotKV. The provider's own prompt caching was on in every run, and tokens and costs are taken from each response's usage, thinking tokens included.

Tokens, cost and response time per Claude model with and without HotKV
ModelTokens savedCost withoutCost withLower byModel callsMedian response
Claude Fable 5.170%$30.31$9.1870%3,000 to 8962.7 s to 127 ms
Claude Opus 5.570%$14.60$4.5069%3,000 to 8982.9 s to 126 ms
Claude Sonnet 5.570%$5.51$1.6670%3,000 to 8971.8 s to 128 ms
Claude Haiku 5.570%$0.27$0.0870%3,000 to 8971.4 s to 125 ms

How good are the cached answers?

For every reworded question served from cache, a different model compared the cached answer with the fresh answer the same model gave to that exact question, in random order. No model graded its own output. This is a language model judging, not human review, and its strictness differs between models, so compare cached with fresh only within one model.

Share of cached and fresh answers a judge found correct for the exact question, per model
ModelReworded questions judgedCached answer fitsFresh answer fits
Claude Fable 5.192683.3%90.2%
Claude Opus 5.593593.3%99.0%
Claude Sonnet 5.593677.9%86.1%
Claude Haiku 5.593667.9%78.6%

The similarity threshold trades savings against answer quality

Each row is a separate run of Claude Sonnet 5.5 on the same 3,000 requests (cost without HotKV: $5.51).

Cost saving and answer quality at five similarity thresholds
ThresholdCostLower byCached answer fitsFresh answer fits
0.81$1.6670%77.9%86.1%
0.85$1.8866%80.3%85.6%
0.88$1.9964%89.5%83.8%
0.90$2.1361%87.9%86.5%
0.95$2.2260%92.0%90.0%

What these numbers do and do not show

  • At the 0.81 threshold used for the results above, a cached answer fits the exact question 6 to 11 percentage points less often than a fresh one. Reworded questions are about 31% of requests, so across all responses that is roughly 2 to 3 points. In the threshold runs, cached answers from 0.88 upward were not worse than fresh ones, while still saving 61% to 64% of the cost.
  • The "same intent" figure above does not mean "same correct answer". In a test of 119 deliberately close question pairs, where one detail such as deposit versus withdraw changes the correct answer, 62% of the changed questions would be served the cached answer at 0.81, 25% at 0.90 and 10% at 0.95. These pairs are built to be hard and show the worst case, not how often it happens in real traffic. If wrong answers are costly for your use case, raise the threshold.
  • One public dataset of short banking questions, one embedding model, and an automated judge. The threshold effect was measured on one model. The other three were run at 0.81 only. Your repetition rate and questions will give different numbers.

3,000 customer-support questions drawn from the Banking77 test split with a fixed seed (intent popularity follows a Zipf distribution, s=1.0; questions are sampled uniformly within each intent, with repeats). Each question was sent to the model with the same support policy as the system prompt. Baseline: every request calls the model, with the provider's own prompt caching enabled. HotKV: exact-match lookup (GET on a SHA-256 key of the normalized question), then a semantic lookup (SCACHE.GET with an embedding of the question), and the model is called only on a miss. Token counts are taken from each API response's usage block; costs use list prices and include the embedding calls. The similarity threshold was chosen on the separate Banking77 train split as the lowest value giving at least 98% same-intent precision on semantic hits.

Embedding model: OpenAI text-embedding-3-small. Semantic match threshold: 0.81. Dataset: Banking77 (test split) by PolyAI, licensed CC BY 4.0. 3,000 requests across 77 intents.

Measured October 11, 2026. Savings depend on how often your traffic repeats itself. A workload with no repeated or similar questions saves nothing.

Run it your way

HotKV is commercial software. Let us run it for you, or run it yourself on infrastructure you control.

We host it

HotKV Cloud

A fully managed HotKV instance, hosted and operated by us on Google Cloud across 42 regions. Opening in waves. Request early access.

  • Provisioning, patching, and monitoring handled for you
  • Every instance is an isolated machine with dedicated resources
  • 42 Google Cloud regions to choose from
  • Billed monthly or yearly in USD via Stripe, priced live per region at checkout
You host it

HotKV On-Premise

Run HotKV on your own servers or your own cloud account, under a license file, with full control over data residency and network access.

  • Linux packages for x86_64 and ARM64
  • Licensed under a separate on-premise license agreement
  • Deploy inside your own VPC, air-gapped network, or data center

Official SDKs

Twelve official client libraries. HotKV also speaks RESP2 and RESP3, so your existing Redis clients and tools connect without changes beyond the hostname.

Python
pip install hotkv-client
Node.js
npm install @hotkv/client
Go
go get github.com/hotkv-ltd/hotkv-go-client
Rust
cargo add hotkv-client
Java
com.hotkv:hotkv-client
C#
dotnet add package HotKV.Client
Ruby
gem install hotkv
PHP
composer require hotkv/client
Elixir
{:hotkv, "~> 1.0"}
Perl
from GitHub (hotkv-perl-client)
C
libhotkv (CMake, GitHub release)
C++
hotkv-cpp (CMake, GitHub release)

Works with your AI framework

The Python and Node.js SDKs ship one-line integrations for the frameworks teams already build with. Separate open-source tools cover LangGraph, MCP and OpenAI-compatible APIs.

LangChainPython
pip install "hotkv-client[langchain]"
from hotkv.integrations.langchain import HotKVSemanticCache
set_llm_cache(HotKVSemanticCache(client, embedding=embeddings))

Also includes HotKVCache for exact-match caching, plus HotKVVectorStore and HotKVChatMessageHistory.

LlamaIndexPython
pip install "hotkv-client[llamaindex]"
from hotkv.integrations.llama_index import HotKVVectorStore

Also includes HotKVKVStore and HotKVChatStore.

LiteLLMPython
pip install "hotkv-client[litellm]"
from hotkv.integrations.litellm import HotKVSemanticCache

LiteLLM's built-in Redis cache already works with HotKV unchanged. Reach for this integration when you also want semantic caching.

Vercel AI SDKNode.js
import { hotkvCache } from "@hotkv/client/ai-sdk";
wrapLanguageModel({ model, middleware: hotkvCache({ client }) });

Ships in the @hotkv/client npm package.

LangChain.jsNode.js
import { HotKVCache } from "@hotkv/client/langchain";

Ships in the @hotkv/client npm package.

LangGraphPython
pip install langgraph-checkpoint-hotkv
from langgraph.checkpoint.hotkv import HotKVSaver
from langgraph.store.hotkv import HotKVStore

A checkpointer for graph state and a long-term memory store with semantic search. Needs no HotKV license.

Read the docs
MCP serverPython
pip install hotkv-mcp
claude mcp add hotkv -- uvx hotkv-mcp --url hotkv://localhost:6379

Lets Claude, Cursor and other assistants use keys, agent memory, prompts and document search. Read-only mode and namespaces keep agents in bounds.

Read the docs
Caching gatewayGo
go install github.com/hotkv-ltd/hotkv-gateway/cmd/hotkv-gateway@latest
client = OpenAI(base_url="http://localhost:8080/v1")

A drop-in proxy that caches OpenAI-compatible and Anthropic API calls, streaming included. Change one URL, no code.

Read the docs