Remix.run Logo
Show HN: Claude-thermos – keeps your Claude session warm for you(github.com)
51 points by s0ck_r4w 5 hours ago | 44 comments
SwellJoe an hour ago | parent | next [-]

This is just making it more expensive for everyone else, right?

How Claude handles its sessions is none of my business. I'm going to let them do the best they can to provide good service for everyone, and if they can't/won't, I'll switch to a provider that can.

Using these massive models is already pretty danged extravagant, I'm not going to demand to be at the front of the queue at all times, too.

pkulak 16 minutes ago | parent | next [-]

Eh, I assume Anthropic prices queries somewhere in line with their actual costs. If they don't, and they misalign incentives instead, that's kinda on them.

s0ck_r4w an hour ago | parent | prev | next [-]

How do a few extra requests with the same prefix make it more expensive for everyone else?

SwellJoe an hour ago | parent | next [-]

Keeping a conversation with a very large model active requires hundreds of GB of memory. If my conversation can never be swapped out, like when I go to lunch or take an afternoon walk, that's several hundred GB not available for other users. If everybody does that, Anthropic needs even more infrastructure than the quarter trillion dollars in infra they're already using.

s0ck_r4w 41 minutes ago | parent [-]

The idea here is that your conversation is being swapped out for no good reason. The session is still active, as the subagents continue to make progress.

How is this comparable to going to lunch or taking a walk?

SwellJoe 34 minutes ago | parent [-]

Is that actually happening, though?

devnonymous 23 minutes ago | parent [-]

Yes https://github.com/izeigerman/claude-thermos/blob/main/src%2...

sznio an hour ago | parent | prev [-]

you use more memory?

devnonymous 29 minutes ago | parent | prev [-]

From the README:

> Detect the danger window. When the main lineage goes idle and a subagent is actively running, the main prefix is at risk of expiring.

So, this is not demanding to be at the front of the queue, it's just paying someone to take the place you already had in the queue, when you want to take a leak.

SwellJoe 21 minutes ago | parent [-]

A subagent running doesn't mean that much, though. I often walk away while the subagents are chewing.

devnonymous 9 minutes ago | parent [-]

The defaults seem sensible. This isn't keep-alive-forever by default solution.

unholiness 4 hours ago | parent | prev | next [-]

I've directly inspected calls for pro/Max plans and as of today they have 1hr cache expiries. This has definitely degraded to 5 min in the past but that's the behavior today.

If you're paying API rates, you can choose 5m or 1hr yourself (and pay different rates).

Keeping a 1hr cache warm could still be useful, sure, but outside that, I don't see much use of this today.

s0ck_r4w 4 hours ago | parent [-]

When using API keys the default is still 5 minutes. Setting 1 hour for the entire session is actually a lot more wasteful considering the 2x rate that it comes with

purpleidea 40 minutes ago | parent | prev | next [-]

I assumed (perhaps incorrectly, but it was a guess since I never dug into it) that less used "hot pockets" of previous inference gradually got more stale as time went on, and the conversation went elsewhere and didn't need those bits.

Hearing one byte refreshes the whole thing is huge! 5min is wayy too slow, because sometimes I want to spent more than 5 min looking at a diff before choosing where to go next.

Kind of outrageous, I hope this kind of feature gets built into claude code =D

boc an hour ago | parent | prev | next [-]

Interested in how the critics of approaches like this defend an agentic session (with Fable, for example) that stops and runs a multi-hour ML training session. It's a script, so the actual LLM convo goes stale, but then when the results get returned to the main thread you get an expensive cache hit without doing anything.

You would have avoided that cache hit if the LLM session was kept "alive" for those few hours. Why not automate the part where you keep the large main thread alive until you're ready to analyze the results?

2001zhaozhao 13 minutes ago | parent | prev | next [-]

I thought the cache length was 1 hour, not 5 minutes?

jaimehrubiks an hour ago | parent | prev | next [-]

They should increase the cache to 10 minutes. 5 is just too low, you can even miss it by taking time to select a response from a question.

gabigrin 19 minutes ago | parent [-]

10 mins would be amazing

alukin 4 hours ago | parent | prev | next [-]

Feels like will be shut down real quick

gogobio 4 hours ago | parent | next [-]

Yes, this wastes cycle. They dump your cache and deallocate the VMs so that others can use it. This will result in tokens wasted and downtime for others.

supern0va 2 hours ago | parent [-]

Can you expand on this? I can't imagine this is holding up an entire machine or materially impacting capacity. Isn't it common to have a tiered cache and to ultimately evict (or move to another tier) if there's an active inference request and no available capacity elsewhere?

Lalabadie 2 hours ago | parent [-]

Yes, however if a tool like this commoditizes a way to stay "higher" in the cache hierarchy to avoid getting dropped, then for the same total capacity, Anthropic have to become stricter about retention.

supern0va 2 hours ago | parent [-]

It's unfortunate that there isn't some better way to signal that there's a high chance that a turn is coming (ie, due to active sub-agents). If CC could send a ping saying "I don't need a turn, but please keep this cached at some tier because there will be a turn soon." that would probably help with cache efficiency. Instead, it seems like there's just the shotgun one-hour solution.

l1n 4 hours ago | parent | prev | next [-]

Why? Seems fine if people want to burn more cache reads.

agluszak 4 hours ago | parent [-]

Because it makes Anthropic earn less money

munk-a 4 hours ago | parent | next [-]

> Because it makes Anthropic burn more money

Fixed that for you.

cadamsdotcom 4 hours ago | parent | prev [-]

"Earn"?

Cache duration is arbitrary. What it actually does (if used en masse) is decrease the amount of oversubscription their infra can handle..

janderson215 2 hours ago | parent [-]

Earn is synonymous with profit, and this hurts their profits. Introducing latency can benefit much more people and actually make usage more efficient. Reducing latency can sieze up a functioning system.

Lately, I’ve been thinking about how this related to fractional banking. If you were to eliminate fractional banking introduced in the US by Hamilton, you would destroy a lot of current prosperity.

Cyberdog 2 hours ago | parent | prev [-]

Agreed, the Thermos company's lawyers will probably fire off a terse letter once they find out.

jonas21 4 hours ago | parent | prev | next [-]

Is the 5-minute expiration correct? I thought it was more like ~1 hour.

s0ck_r4w 4 hours ago | parent [-]

You can set the retention globally (whole session) to 1 hour which will actually make it more expensive. The default is 5 minutes.

*UPD:* actually it appears the default is authentication-dependent. API key gets 5 minutes, subscriptions - 1 hour.

foota an hour ago | parent [-]

Claiming that it's more expensive isn't true, it's workload dependent. Filling the cache (worst case) 12 times in an hour is much more expensive than caching it for an hour, and the cheapest is to have your 5m cache refilled by a ping like this is doing.

Imo it's their fault for not having pricing that aligns incentives.

cosmotic 3 hours ago | parent | prev | next [-]

How will this not lead to tragedy of the commons?

davesque 3 hours ago | parent [-]

Exactly. I really wish people wouldn't use this. If this becomes popular, anthropic will just modify their cache policy to be much less fair. It's not like they have infinite cache.

ATMLOTTOBEER 4 hours ago | parent | prev | next [-]

Glad this exists. It will force anthropic to fix their flawed cache mechanism.

SwellJoe an hour ago | parent | next [-]

While Anthropic is far behind on caching and efficiency (made more dramatically apparent by how much cheaper it is to use GPT 5.6 Sol at API rates than even Opus 4.8, much less Fable), a bunch of people forcing their way to the front of the queue at the expense of everyone else isn't going to solve that.

cortesoft 4 hours ago | parent | prev [-]

How should they fix it?

randomblock1 4 minutes ago | parent | next [-]

Default to 1h. Allow setting it to longer or shorter, granularly. Add /pause to mark it for eviction, for a token refund.

s0ck_r4w 3 hours ago | parent | prev | next [-]

Make the cache TTL more adaptive. Have more tiers than just 5m and 1h. Long-running subagents become increasingly ubiquitous. There's no reason for Anthropic to not do a better job for this use case.

addaon 2 hours ago | parent | prev [-]

There are a lot of workflows where cache is likely to be consumed exactly once (e.g. anything chat-like where a single thread is extended; if a prefix cache hit is found, and a set of new longer prefixes is inserted in the cache, it is unlikely that the original shorter prefix will be consumed in later turns). I could see allowing each session key a small number (1?) of 24-hour cache entries, where inserting a new cache entry (perhaps the maximum-length prefix, perhaps an API-tagged specified-length prefix) consumes that slot and either boots the rest of the items from cache, or demotes them to 5 minutes or something. Basically: workflow awareness, not uniform handling.

razodactyl 4 hours ago | parent | prev | next [-]

Don't we pay for cache input though?

broodbucket 3 hours ago | parent | next [-]

You can send and receive 1 byte and refresh the cache. Keeping the cache alive isn't free, but it's close.

cortesoft 4 hours ago | parent | prev [-]

The idea is this keeps it in cache so you don’t have to pay to re-input.

j45 4 hours ago | parent | prev [-]

This is a good idea if it could manage it in an acceptable way.

For example, there might be something I intended to complete in one sitting, but took two sittings in the same day unexpectedly. Maybe it could just be a few cache delays per day or something, tagged in advance somehow.