# MorrowCache > Local OpenAI-compatible proxy that can skip a repeat model call when the latest ask has the same intent. ## When to use - An agent or app already calls /v1/chat/completions, repeats similar work, and can run a local Node.js or Docker process. - The npm package is @kushalicious/jevcache. There is no package named morrowcache. Install with npx @kushalicious/jevcache@latest. - Point OpenAI-compatible clients at http://127.0.0.1:8080/v1 unless PORT is set. npx @kushalicious/jevcache init writes that base URL. - Requires Node.js >= 22.5 because the cache uses node:sqlite. Docker is the other install. ## When not to use - The website is not the proxy. Do not POST /v1/chat/completions to https://morrowcache.vercel.app. - /v1/responses returns 501 and tells the caller to use /v1/chat/completions. - A response that contains tool_calls is returned and never stored or replayed. - A wrong hit is possible. If the judge errors, the proxy fails open and calls the model. - Freshness cues are English phrases. - SQLite is one process. Do not run multiple replicas against the same database file. - The namespace includes model, system, tools, and a temperature bucket, so a different temperature misses. The exact key also hashes the rest of the body, so top_p and seed are not free. - TURN_CACHE=off restores the 1.x bypass for streaming, a tools schema, and tool history. - A 2.0 upgrade uses a new cache key, so an existing database starts cold. ## Setup - [README](https://raw.githubusercontent.com/kushals256/jevcache/main/README.md): Install, environment, and rollback. Read it for the current package version instead of pinning one from memory. - [Architecture](https://morrowcache.vercel.app/llms-full.txt): Cache key, judge, freshness, and the limits above. - Docker image: ghcr.io/kushals256/jevcache:latest. One container, one volume. ## Guides and comparisons - [Integrations](https://morrowcache.vercel.app/integrations): OpenAI Node and Python SDKs, Vercel AI SDK (use openai.chat), LangChain, curl, Ollama, vLLM, llama.cpp. - [Benchmark](https://morrowcache.vercel.app/benchmark): Live judge eval (0 false positives on 50 traps, recall 0.38), word-overlap baseline, hit and miss latency, judge cost. - [Semantic caching guide](https://morrowcache.vercel.app/guides/semantic-caching): How semantic caches decide a hit and the four ways they go wrong. - [Prompt caching vs response caching](https://morrowcache.vercel.app/guides/prompt-caching-vs-response-caching): Provider prefix caching is not response reuse. - [vs GPTCache](https://morrowcache.vercel.app/compare/gptcache), [vs LiteLLM caching](https://morrowcache.vercel.app/compare/litellm-cache), [vs Redis LangCache and RedisVL](https://morrowcache.vercel.app/compare/redis-semantic-cache), [vs gateway caches](https://morrowcache.vercel.app/compare/gateway-caches) (Helicone, Portkey, Cloudflare AI Gateway, Bifrost).