ワンクリックで
aider-1h-ttl
Aider uses 5min TTL by default and works around long pauses with keepalive pings. Wire up the 1h TTL beta instead.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Aider uses 5min TTL by default and works around long pauses with keepalive pings. Wire up the 1h TTL beta instead.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | aider-1h-ttl |
| description | Aider uses 5min TTL by default and works around long pauses with keepalive pings. Wire up the 1h TTL beta instead. |
| target_harness | Aider |
| target_repo | Aider-AI/aider |
| target_files | ["aider/coders/chat_chunks.py","aider/sendchat.py","aider/args.py"] |
| target_commit | 3ec8ec5a |
| estimated_savings | Eliminates --cache-keepalive-pings billing waste; preserves cache across multi-hour thinking pauses |
aider/coders/chat_chunks.py, aider/sendchat.py, aider/args.py in
Aider-AI/aider.
Aider uses the 5-minute default cache TTL. For chat-style sessions
where the user reads code, thinks for 10 minutes, then types — common
flow — the cache expires between turns. The current workaround is
--cache-keepalive-pings N which sends a trivial request every 5
minutes to refresh the cache, but you pay for those pings.
Anthropic's extended-cache-ttl-2025-04-11 beta extends the TTL to
1 hour for a 2x write premium (vs 1.25x for 5min). Break-even is ~4
reads, which any active chat session clears.
--- a/aider/args.py
+++ b/aider/args.py
@@
+ group.add_argument(
+ "--extended-cache-ttl",
+ action=argparse.BooleanOptionalAction,
+ default=False,
+ help="Use Anthropic's 1-hour cache TTL (beta). "
+ "Costs 2x to write vs 1.25x for default 5min, "
+ "but preserves cache across long thinking pauses. "
+ "Pays for itself after ~4 cache reads.",
+ )
--- a/aider/coders/chat_chunks.py
+++ b/aider/coders/chat_chunks.py
@@
- def add_cache_control(self, msg):
- msg["cache_control"] = {"type": "ephemeral"}
+ def add_cache_control(self, msg, extended_ttl: bool = False):
+ if extended_ttl:
+ msg["cache_control"] = {"type": "ephemeral", "ttl": "1h"}
+ else:
+ msg["cache_control"] = {"type": "ephemeral"}
@@
- def add_cache_control_headers(self):
+ def add_cache_control_headers(self, extended_ttl: bool = False):
for chunk in self.cacheable_chunks():
last = chunk[-1]
- self.add_cache_control(last)
+ self.add_cache_control(last, extended_ttl=extended_ttl)
--- a/aider/sendchat.py
+++ b/aider/sendchat.py
@@
-def send_completion(model_name, messages, ...):
+def send_completion(model_name, messages, *, extended_cache_ttl=False, ...):
@@
extra_headers = {}
+ if extended_cache_ttl:
+ extra_headers["anthropic-beta"] = "extended-cache-ttl-2025-04-11"
kwargs = {
"model": model_name,
"messages": messages,
+ "extra_headers": extra_headers,
...
}
return litellm.completion(**kwargs)
Wire args.extended_cache_ttl from the Coder constructor through
format_messages() and send_completion().
--cache-prompts --extended-cache-ttl --no-stream.anthropic-beta: extended-cache-ttl-2025-04-11.{"type": "ephemeral", "ttl": "1h"}.usage.cache_read_input_tokens should still cover the
prefix — proof the cache survived the >5min gap.The 1h TTL beta exists for exactly this use case: human-in-the-loop sessions with long thinking gaps. Trade-off: 2x write cost vs 1.25x. Worth it whenever the session has ≥4 turns within the hour.
Aider users who already use --cache-keepalive-pings 5 are paying
for both: keepalive pings AND repeated cache writes. The 1h TTL
beats this on both fronts.
See docs/concepts/anthropic.md § "TTL" and "Pricing".
Full audit: audits/aider.md.
Aider's --cache-prompts is off by default. Flip it on for supported models.
Stop Cline from burning a cache breakpoint on the volatile current user message every turn.
Cline OpenAI native provider sends no prompt_cache_key. Add a stable per-task key so cached_tokens stops being zero.
Cline's system prompt includes a timestamp that may be recomputed per request, invalidating the system-prompt cache.
Continue's prompt caching is opt-in via config and off by default. Flip the default to systemAndTools.
Continue inherits the Cline-family volatile-message cache bug. Same fix shape.