Skip to content

Prompt cache and ping

Check prompt-cache retention in the terminal and use /ping to keep a supported lane warm while idle. Understand provider limits, costs and when to stop.

How it works3 minutes to read
Copy & share
On this page4 sections

Prompt caching lets a provider reuse an unchanged part of your request. It can reduce repeated input cost and latency. It does not save your conversation or replace sessions.

The terminal cache panel shows retention for the selected model.
The terminal cache panel shows retention for the selected model.

See the countdownLink to this section

Open /cache in the terminal for live cache information and retention controls. TTL means time to live: how long the provider is expected to retain cached context. Support and duration depend on the model and provider. A countdown is not a promise that the provider will serve a cache hit.

Keep a lane warmLink to this section

After a conversation, enable idle cache refresh for that tab:

text
/ping start

/ping also starts it. Stop it with:

text
/ping stop

Empryo refreshes supported lanes before their known cache lifetime expires. Normal work takes priority. A model change can reconfigure or stop keepalive if the new model does not support it.

Keepalive makes provider requests and can cost money. Use it when you expect to return soon, not as a way to keep every tab alive indefinitely. It cannot guarantee retention during sleep, disconnection or provider failure.

Ping confirms when idle cache refresh is enabled for the current lane.
Ping confirms when idle cache refresh is enabled for the current lane.

When the cache breaksLink to this section

Every request is compared with the previous one before it leaves. When the cached prefix cannot be reused, the tab shows a notice that names the cause and the exact edit, for example:

text
Cache broke · system prompt changed (block 3/3 text, −322 chars) · 290k re-written ≈ $1.09 · text after «callable by name with run_tool(…): advisor, »: −"computer, computer_act, …" · evidence 2026-10-01T00-45-39-120Z-system.json
Cache broke · system prompt changed (block 3/3 text, −30 chars) · 290k re-written ≈ $1.09 · text after «Key dependencies: react: 72»: −"4 files" +"3 files" · meanwhile: agent rebuild requested: live config change (taskRouter) (just now); genome map re-rendered (cold refresh) → epoch 3, 57,241 chars (just now) · evidence 2026-10-01T01-57-00-390Z-system.json
Cache broke · msg 178/199 EDITED (assistant: reasoning + tool call explore_script, part 1/2 reasoning, +2,978 chars) — history must be append-only · thinking after «…the user wants»: +"…" · flipped back to a version already sent (×2) — a per-request rewrite of this message is not stable · evidence 2026-10-01T00-51-02-004Z-messages.json
  • system prompt changed names the block (on the Claude subscription lane, block 3 is Empryo's own instructions; the first two are the lane's attestation). On OpenAI-shaped lanes the system prompt travels as message 1, so the same change reads msg 1/N EDITED (system …).
  • tool schema changed lists the tools added (+), removed (−) or changed (~).
  • msg N/M EDITED means an earlier message was rewritten in place. The field (text, thinking, signature, input) and a short excerpt follow. flipped back to a version already sent means the same message keeps alternating between two forms, which points at a per-request transform rather than a one-off edit.
  • meanwhile: lists what the engine did between the two requests, oldest first: agent rebuild requested: live config change (taskRouter), genome map re-rendered (cold refresh) → epoch 3, instruction files reloaded (project file changed). The step that explains the break is in that list.
  • The evidence file in ~/.empryo/logs/cache-breaks/ holds the full before and after of what changed, plus the same meanwhile list (the last 40 are kept).

A notice that starts with Cache re-written on purpose or Cache expired is expected: a compaction, a /clear, or an idle window longer than the provider's retention.

Choose the right controlLink to this section

You want toUse
Inspect retention and countdown/cache
Keep the current lane warm while idle/ping start
Stop idle refresh/ping stop
Check actual spend/usage
Recover an earlier conversationCtrl+P

Compare actual usage before and after enabling it. A warm cache is useful only when its savings exceed the refresh cost.