How long does Cursor's prompt cache persist before expiring?

Hi everyone,

I’m trying to understand the exact cache TTL (Time-To-Live) behavior in Cursor.

I know that starting a conversation writes the context to a cache to speed up subsequent prompts and reduce token usage. While standard LLM provider docs (like Anthropic) often list prompt cache persistence at around 5 minutes, my experience in Cursor is different. I often take breaks longer than 5 minutes within a thread, yet the next prompt still feels cached (no heavy delay or full “cache write” cost).

How long does Cursor actually keep the prompt cache alive before it expires? Is there any background keep-alive happening, or does Cursor’s custom setup persist it longer?

Hi Oriel!

We use the standard caching provided by our providers (that means 5 minutes for Anthropic and 24 hours for most OpenAI models, though things are changing for GPT 5.6+). We don’t do anything special to keep the cache warm!

Also, cache hits can occur between chats (the system prompt rarely changes, for example). That might be part of what feels snappier!

Is that also the case for the GPT 5.6 models?

In OpenAI’s documentation it seems to be 30 minutes? Prompt caching | OpenAI API

Extended prompt caching (up to 24 hours) doesn’t seem to be available for 5.6

You’re right @aebp! We can’t do better than what the model providers allow, so in the case of GPT 5.6 it would be 30 minutes. Updated my previous response.

@Colin thanks for the answer.
I have to ask.
I have an open conversation from about 5 days ago, I went to holiday.
continued today that conversation, and after checking in the billing page the corresponding line for my first prompt made today - I have only cache read, without cache write.

That confuses me - I would expect the first prompt to have a “massive” cache write, then the next ones to read that cache.

What might explain this ?
Thanks!

Hey @Oriel_Gaash!

Cursor Grok (like Composer) doesn’t charge for cache writes, so they aren’t represented here.

got it, thank you very much!

Hi @Colin,

Thanks for clarifying how Cursor handles TTL for Anthropic and OpenAI models!

Could you also share what the cache persistence/TTL behavior looks like for Composer 2.5 and Grok 4.5 in Cursor? Do they follow standard provider defaults, or is there a specific duration we should expect when taking breaks between prompts?

Thanks!