aider-1h-ttl
Aider uses 5min TTL by default and works around long pauses with keepalive pings. Wire up the 1h TTL beta instead.
Aider's --cache-prompts is off by default. Flip it on for supported models.
$ npx -y skills add OnlyTerp/prompt-cache-skills --skill aider-cache-default-on --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/aider-cache-default-onContext preview
The summary Claude sees to decide when to auto-load this skill.
Aider's --cache-prompts is off by default. Flip it on for supported models.
name: aider-cache-default-on description: Aider's --cache-prompts is off by default. Flip it on for supported models. target_harness: Aider target_repo: Aider-AI/aider target_files: - aider/args.py target_commit: 3ec8ec5a estimated_savings: 90% input discount for every user who didn't know to set the flag
`aider/args.py` in `Aider-AI/aider`. The `--cache-prompts` flag is defined here with `default=False`.
Aider implements the canonical 4-breakpoint Anthropic caching pattern correctly, but `--cache-prompts` is off by default. Users have to know to set it (in CLI args, `.aider.conf.yml`, or env var) to get any cache benefit. The result is that a well-implemented caching path goes unused by most users.
Flip the default to True, with a per-model gate so it only activates for models that support caching:
--- a/aider/args.py +++ b/aider/args.py @@ - group.add_argument( - "--cache-prompts", - action=argparse.BooleanOptionalAction, - default=False, - help="Enable caching of prompts (default: False)", - ) + group.add_argument( + "--cache-prompts", + action=argparse.BooleanOptionalAction, + default=True, + help="Enable caching of prompts on models that support it. " + "90%% input-token discount on cache hits. Pays for itself " + "after ~3 reads. Disable with --no-cache-prompts.", + )
The existing per-model `cache_control: true|false` gate in `aider/models.py` already prevents this from being sent to unsupporting models, so flipping the default is safe — it's just opt-out instead of opt-in.
Add a CHANGELOG note.
1. Run `aider --model claude-3-7-sonnet-20250219` with NO mention of `--cache-prompts` on the command line and no entry in `.aider.conf.yml`. 2. Capture wire. 3. Request body should contain `cache_control: {"type": "ephemeral"}` on the 4 breakpoint locations (system, repo-map, files, current). 4. Confirm 2nd-turn `usage.cache_read_input_tokens > 0`.
Defaults matter. The 1.25x cache-write premium is real but small, and it pays back after the second cache hit — which any multi-turn agent session clears trivially. A caching system that requires opt-in is a caching system most users won't use.
Cline / Roo / OpenCode all default-on caching. Aider being default-off is an anomaly more than a deliberate design choice.
Full audit: [audits/aider.md](../../audits/aider.md).
Drop-in prompt-caching fixes for the LLM agent harness you use. Point your AI coding agent at this repo and it ships the patches.
Aider uses 5min TTL by default and works around long pauses with keepalive pings. Wire up the 1h TTL beta instead.
Ladder-aware Cline Anthropic caching — verify the rolling read/write ladder on the wire, then add the tools breakpoint and tune…
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.
Ladder-aware Continue Anthropic caching — verify the rolling ladder on the wire, then enable it by default and add TTL coverage.