ClaudeMods
☰
KO
● 0 명 접속 중 · 조회 0 회
후원프로젝트 제출
GitHub 저장소 · 작성자 mupamuc

cache-keepwarm

Claude Code용 모드로, 세션이 유휴 상태일 때 프롬프트 캐시가 만료되는 것을 방지합니다. 만료 몇 분 전에 짧은 서비스 핑을 보내 캐시를 다시 읽고 수명을 다시 시작합니다.

번역 완료

이 mod 소개

Claude Code용 모드로, 유휴 세션의 프롬프트 캐시 수명을 연장합니다. 만료 직전(구독의 경우 1시간, API 키의 경우 5분)에 짧은 서비스 프롬프트를 보냅니다. 모델은 입력 가격의 0.1배로 캐시에서 컨텍스트를 읽고 캐시 수명이 다시 시작됩니다. 기본적으로 비활성화되어 있으며, 유휴 상태일 때만 핑을 보내고, 만료 leadSeconds 전까지, 그리고 연속해서 maxPings(기본값 3)를 초과하지 않습니다. 사용자 메시지는 카운터를 재설정합니다. /keepwarm on|off|status를 통해 제어합니다. 설치: ~/.claude/skills/cache-keepwarm에 git clone합니다. Claude Code 2.1.259+ (기능 후크, 얼리 액세스)가 필요합니다.

설치

먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.

claude plugin marketplace add mupamuc/cache-keepwarm
claude plugin install cache-keepwarm
원문 / README

cache-keepwarm

Мод для Claude Code, который не дает кэшу промпта истечь, пока сессия простаивает. За пару минут до истечения кэша мод отправляет в чат короткое служебное сообщение. Модель читает контекст из кэша, и срок жизни кэша начинается заново.

English below

Зачем

Claude Code кэширует начало промпта: системные инструкции, файлы, историю разговора. На подписке Claude кэш живет 1 час, на API-ключе 5 минут, и каждый запрос, который его читает, продлевает срок. По документации Anthropic чтение из кэша стоит 0,1 цены обычного ввода, запись в кэш на 1 час стоит 2x, на 5 минут 1,25x.

Пример: контекст 150 тыс. токенов, вы ушли на обед. Без мода первое сообщение после перерыва заново запишет весь контекст, это 300 тыс. токенов в пересчете на обычный ввод. Пинг мода прочитает его из кэша за 15 тыс. и короткий ответ «ok». Один пинг примерно в 20 раз дешевле перезаписи.

Пинг выгоден, только если вы вернетесь. Поэтому мод выключен по умолчанию и делает не больше 3 пингов подряд, потом кэш истекает сам.

Установка

Нужен Claude Code 2.1.259 или новее: моды работают на функциональных хуках, это ранний доступ. Мод проверен в Claude Code 2.1.287, в настольном приложении флаг не понадобился. Если мод не загрузился, задайте переменную CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.

macOS, Linux, Git Bash:

git clone --depth 1 https://github.com/mupamuc/cache-keepwarm ~/.claude/skills/cache-keepwarm

Windows PowerShell:

git clone --depth 1 https://github.com/mupamuc/cache-keepwarm "$HOME\.claude\skills\cache-keepwarm"

Мод подключится в новой сессии. Обновление: git pull в этой папке. Удаление: удалить папку.

Как пользоваться

Над полем ввода мод рисует одну строку:

● cache 99% · 56m  [x] keepwarm 12:58 · 0/3

Слева состояние кэша: цвет точки (зеленый, желтый перед пингом, красный когда кэш истек), доля промпта из кэша в последнем запросе и сколько кэшу осталось жить. Справа галочка: щелчок включает и выключает мод. При включенном моде рядом видно время следующего пинга и сколько пингов подряд уже было.

То же самое делают команды:

| Команда | Что делает | | --- | --- | | /keepwarm on | включает мод, выбор сохраняется между сессиями | | /keepwarm off | выключает | | /keepwarm status | показывает, когда будет пинг и сколько пингов осталось |

Перед пингом приходит уведомление, сам пинг виден в чате как сообщение от мода.

Правила пинга

Мод отправляет пинг, только если выполнены все условия:

  • мод включен;
  • сессия простаивает, модель ничего не делает;
  • до истечения кэша осталось меньше leadSeconds, но кэш еще жив (пинг позже чем за 15 секунд до истечения может не успеть);
  • в кэше не меньше minTokens токенов;
  • после вашего последнего сообщения было меньше maxPings пингов.

Мод запоминает время последнего запроса вместе с id сессии. После перезапуска приложения или --resume той же сессии отсчет продолжается, ждать вашего сообщения не нужно.

Ваше сообщение, уведомление фоновой задачи или сообщение другой сессии сбрасывает счетчик пингов. Запросы субагентов мод не учитывает: у них свой кэш.

Настройки

| Параметр | По умолчанию | Смысл | | --- | --- | --- | | enabled | false | включен ли мод, если /keepwarm еще ни разу не вызывали | | ttl | 1h | срок кэша: 1h на подписке, 5m на API-ключе, у облачного провайдера, при оплате по использованию | | leadSeconds | 120 | за сколько секунд до истечения слать пинг, не больше половины срока | | maxPings | 3 | сколько пингов подряд без вашего сообщения | | minTokens | 20000 | кэш меньше этого дешево пересоздать, его мод не трогает | | message | пусто | свой текст пинга, пусто значит встроенный | | band | true | строка над полем ввода с галочкой | | status | false | короткая запись в строке состояния |

В терминальной версии параметры меняются через /config. В настольном приложении их задают в ~/.claude/settings.json:

{
  "pluginConfigs": {
    "cache-keepwarm@skills-dir": {
      "options": { "ttl": "5m", "maxPings": 2 }
    }
  }
}

Проверка

04.10.2026, Claude Code 2.1.286, настольное приложение для Windows, подписка Claude, контекст около 190 тыс. токенов. Мод отправил три пинга подряд примерно раз в час. Модель на каждый ответила одним «ok» без вызова инструментов. После третьего пинга мод остановился (3/3 wait). Доля попаданий в кэш после пингов была 100 %, то есть контекст ни разу не записывался заново.

Восстановление отсчета после перезапуска приложения в живой сессии пока не проверено.

Ограничения

  • Мод работает, пока сессия открыта. Закрытое приложение или спящий компьютер пинг не отправят.
  • Пинг и ответ «ok» остаются в истории разговора, по несколько десятков токенов на каждый пинг.
  • Мод работает только в Claude Code: моды используют API функциональных хуков Claude Code.
  • Мод не знает, когда вы вернетесь. Если не вернетесь, maxPings пингов потрачены зря.
  • API модов в раннем доступе и может измениться между версиями Claude Code.

Вместе с prompt-cache-control

Чтобы видеть состояние кэша, поставьте мод prompt-cache-control из каталога claude-code-templates. Он показывает над полем ввода долю попаданий в кэш и отсчет до истечения. Сам он ничего не отправляет, только показывает и напоминает. cache-keepwarm делает то, о чем тот напоминает.

npx claude-code-templates@latest --mod observability/prompt-cache-control

Команда ставит мод в папку текущего проекта. Чтобы он работал во всех проектах, перенесите папку .claude/skills/prompt-cache-control в ~/.claude/skills/.

Авторы и благодарности

English

cache-keepwarm is a Claude Code mod that keeps the prompt cache of an idle session warm. Shortly before the cache lapses (1 hour on a Claude subscription, 5 minutes on an API key) it submits a short service prompt; the model reads the context from the cache at 0.1x the input price, and the cache lifetime restarts. Without it, your next message would write the whole context again at 2x (1-hour cache) or 1.25x (5-minute cache).

Off by default. /keepwarm on|off|status. It pings only while the session is idle, only inside the last leadSeconds before expiry, never after the cache has lapsed, at most maxPings (default 3) times in a row; your own prompt resets the count.

Install: git clone --depth 1 https://github.com/mupamuc/cache-keepwarm ~/.claude/skills/cache-keepwarm, then start a new session. Requires Claude Code 2.1.259+ (function hooks, early access).

Companion mod for watching the cache: prompt-cache-control by davila7 and contributors, MIT.

Лицензия

MIT, см. LICENSE.

비슷한 프로젝트